Skip to content

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

Open
@gilday

Description

@gilday

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions