Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Schema Inaccuracy] Get Repository Unavailable for Legal Reasons #3314

Open
gilday opened this issue Jan 17, 2024 · 0 comments
Open

[Schema Inaccuracy] Get Repository Unavailable for Legal Reasons #3314

gilday opened this issue Jan 17, 2024 · 0 comments

Comments

@gilday
Copy link

gilday commented Jan 17, 2024

Schema Inaccuracy

When retrieving a repository that is unavailable for legal reasons (e.g. a DMCA takedown request), the GitHub API responds with an HTTP status "451 Unavailable For Legal Reasons" and a response body such as:

{
    "message": "Repository access blocked",
    "block": {
        "reason": "dmca",
        "created_at": "2021-04-22T17:53:56Z",
        "html_url": "https://github.com/github/dmca/blob/master/2021/04/2021-04-20-ultimate-character-controller.md"
    }
}

This response code and error body are not described in the schema.

Relevant schema excerpt:

  "/repos/{owner}/{repo}":
    get:
      summary: Get a repository
      description: |-
        The `parent` and `source` objects are present when the repository is a fork. `parent` is the repository this repository was forked from, `source` is the ultimate source for the network.

        **Note:** In order to see the `security_and_analysis` block for a repository you must have admin permissions for the repository or be an owner or security manager for the organization that owns the repository. For more information, see "[Managing security managers in your organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/managing-security-managers-in-your-organization)."
      tags:
      - repos
      operationId: repos/get
      externalDocs:
        description: API method documentation
        url: https://docs.github.com/rest/repos/repos#get-a-repository
      parameters:
      - "$ref": "#/components/parameters/owner"
      - "$ref": "#/components/parameters/repo"
      responses:
        '200':
          description: Response
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/full-repository"
              examples:
                default-response:
                  "$ref": "#/components/examples/full-repository-default-response"
        '403':
          "$ref": "#/components/responses/forbidden"
        '404':
          "$ref": "#/components/responses/not_found"
        '301':
          "$ref": "#/components/responses/moved_permanently"

Expected

Expected a 451 response description for "Get a repository".

Reproduction Steps

gh api --verbose /repositories/239386228
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants