Open Context Protocol is live! 🚀 Read the launch post
reposGetAccessRestrictions

reposGetAccessRestrictions

Get access restrictions

Details

  • Method: GET
  • Path: /repos/{owner}/{repo}/branches/{branch}/protection/restrictions
  • Operation ID: repos/get-access-restrictions

Parameters

{
  "owner": {
    "description": "The account owner of the repository. The name is not case sensitive.",
    "required": true,
    "location": "path",
    "type": "string"
  },
  "repo": {
    "description": "The name of the repository without the `.git` extension. The name is not case sensitive.",
    "required": true,
    "location": "path",
    "type": "string"
  },
  "branch": {
    "description": "The name of the branch. Cannot contain wildcard characters. To use wildcard characters in branch names, use [the GraphQL API](https://docs.github.com/graphql).",
    "required": true,
    "location": "path",
    "type": "string"
  }
}

Response Schema

{
  "title": "Branch Restriction Policy",
  "description": "Branch Restriction Policy",
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "format": "uri"
    },
    "users_url": {
      "type": "string",
      "format": "uri"
    },
    "teams_url": {
      "type": "string",
      "format": "uri"
    },
    "apps_url": {
      "type": "string",
      "format": "uri"
    },
    "users": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "login": {
            "type": "string"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "node_id": {
            "type": "string"
          },
          "avatar_url": {
            "type": "string"
          },
          "gravatar_id": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "html_url": {
            "type": "string"
          },
          "followers_url": {
            "type": "string"
          },
          "following_url": {
            "type": "string"
          },
          "gists_url": {
            "type": "string"
          },
          "starred_url": {
            "type": "string"
          },
          "subscriptions_url": {
            "type": "string"
          },
          "organizations_url": {
            "type": "string"
          },
          "repos_url": {
            "type": "string"
          },
          "events_url": {
            "type": "string"
          },
          "received_events_url": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "site_admin": {
            "type": "boolean"
          },
          "user_view_type": {
            "type": "string"
          }
        }
      }
    },
    "teams": {
      "type": "array",
      "items": {
        "title": "Team",
        "description": "Groups of organization members that gives permissions on specified repositories.",
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "node_id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "privacy": {
            "type": "string"
          },
          "notification_setting": {
            "type": "string"
          },
          "permission": {
            "type": "string"
          },
          "permissions": {
            "type": "object",
            "properties": {
              "pull": {
                "type": "boolean"
              },
              "triage": {
                "type": "boolean"
              },
              "push": {
                "type": "boolean"
              },
              "maintain": {
                "type": "boolean"
              },
              "admin": {
                "type": "boolean"
              }
            },
            "required": [
              "pull",
              "triage",
              "push",
              "maintain",
              "admin"
            ]
          },
          "url": {
            "type": "string",
            "format": "uri"
          },
          "html_url": {
            "type": "string",
            "format": "uri",
            "example": "https://github.com/orgs/rails/teams/core"
          },
          "members_url": {
            "type": "string"
          },
          "repositories_url": {
            "type": "string",
            "format": "uri"
          },
          "type": {
            "description": "The ownership type of the team",
            "type": "string",
            "enum": [
              "enterprise",
              "organization"
            ]
          },
          "organization_id": {
            "type": "integer",
            "description": "Unique identifier of the organization to which this team belongs",
            "example": 37
          },
          "enterprise_id": {
            "type": "integer",
            "description": "Unique identifier of the enterprise to which this team belongs",
            "example": 42
          },
          "parent": {
            "title": "Team Simple",
            "description": "Groups of organization members that gives permissions on specified repositories.",
            "type": "object",
            "properties": {
              "id": {
                "description": "Unique identifier of the team",
                "type": "integer",
                "example": 1
              },
              "node_id": {
                "type": "string",
                "example": "MDQ6VGVhbTE="
              },
              "url": {
                "description": "URL for the team",
                "type": "string",
                "format": "uri",
                "example": "https://api.github.com/organizations/1/team/1"
              },
              "members_url": {
                "type": "string",
                "example": "https://api.github.com/organizations/1/team/1/members{/member}"
              },
              "name": {
                "description": "Name of the team",
                "type": "string",
                "example": "Justice League"
              },
              "description": {
                "description": "Description of the team",
                "type": "string",
                "nullable": true,
                "example": "A great team."
              },
              "permission": {
                "description": "Permission that the team will have for its repositories",
                "type": "string",
                "example": "admin"
              },
              "privacy": {
                "description": "The level of privacy this team should have",
                "type": "string",
                "example": "closed"
              },
              "notification_setting": {
                "description": "The notification setting the team has set",
                "type": "string",
                "example": "notifications_enabled"
              },
              "html_url": {
                "type": "string",
                "format": "uri",
                "example": "https://github.com/orgs/rails/teams/core"
              },
              "repositories_url": {
                "type": "string",
                "format": "uri",
                "example": "https://api.github.com/organizations/1/team/1/repos"
              },
              "slug": {
                "type": "string",
                "example": "justice-league"
              },
              "ldap_dn": {
                "description": "Distinguished Name (DN) that team maps to within LDAP environment",
                "example": "uid=example,ou=users,dc=github,dc=com",
                "type": "string"
              },
              "type": {
                "description": "The ownership type of the team",
                "type": "string",
                "enum": [
                  "enterprise",
                  "organization"
                ]
              },
              "organization_id": {
                "type": "integer",
                "description": "Unique identifier of the organization to which this team belongs",
                "example": 37
              },
              "enterprise_id": {
                "type": "integer",
                "description": "Unique identifier of the enterprise to which this team belongs",
                "example": 42
              }
            },
            "required": [
              "id",
              "node_id",
              "url",
              "members_url",
              "name",
              "description",
              "permission",
              "html_url",
              "repositories_url",
              "slug",
              "type"
            ],
            "nullable": true
          }
        },
        "required": [
          "id",
          "node_id",
          "url",
          "members_url",
          "name",
          "description",
          "permission",
          "html_url",
          "repositories_url",
          "slug",
          "parent",
          "type"
        ]
      }
    },
    "apps": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "slug": {
            "type": "string"
          },
          "node_id": {
            "type": "string"
          },
          "owner": {
            "type": "object",
            "properties": {
              "login": {
                "type": "string"
              },
              "id": {
                "type": "integer"
              },
              "node_id": {
                "type": "string"
              },
              "url": {
                "type": "string"
              },
              "repos_url": {
                "type": "string"
              },
              "events_url": {
                "type": "string"
              },
              "hooks_url": {
                "type": "string"
              },
              "issues_url": {
                "type": "string"
              },
              "members_url": {
                "type": "string"
              },
              "public_members_url": {
                "type": "string"
              },
              "avatar_url": {
                "type": "string"
              },
              "description": {
                "type": "string"
              },
              "gravatar_id": {
                "type": "string",
                "example": "\"\""
              },
              "html_url": {
                "type": "string",
                "example": "\"https://github.com/testorg-ea8ec76d71c3af4b\""
              },
              "followers_url": {
                "type": "string",
                "example": "\"https://api.github.com/users/testorg-ea8ec76d71c3af4b/followers\""
              },
              "following_url": {
                "type": "string",
                "example": "\"https://api.github.com/users/testorg-ea8ec76d71c3af4b/following{/other_user}\""
              },
              "gists_url": {
                "type": "string",
                "example": "\"https://api.github.com/users/testorg-ea8ec76d71c3af4b/gists{/gist_id}\""
              },
              "starred_url": {
                "type": "string",
                "example": "\"https://api.github.com/users/testorg-ea8ec76d71c3af4b/starred{/owner}{/repo}\""
              },
              "subscriptions_url": {
                "type": "string",
                "example": "\"https://api.github.com/users/testorg-ea8ec76d71c3af4b/subscriptions\""
              },
              "organizations_url": {
                "type": "string",
                "example": "\"https://api.github.com/users/testorg-ea8ec76d71c3af4b/orgs\""
              },
              "received_events_url": {
                "type": "string",
                "example": "\"https://api.github.com/users/testorg-ea8ec76d71c3af4b/received_events\""
              },
              "type": {
                "type": "string",
                "example": "\"Organization\""
              },
              "site_admin": {
                "type": "boolean",
                "example": false
              },
              "user_view_type": {
                "type": "string",
                "example": "public"
              }
            }
          },
          "name": {
            "type": "string"
          },
          "client_id": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "external_url": {
            "type": "string"
          },
          "html_url": {
            "type": "string"
          },
          "created_at": {
            "type": "string"
          },
          "updated_at": {
            "type": "string"
          },
          "permissions": {
            "type": "object",
            "properties": {
              "metadata": {
                "type": "string"
              },
              "contents": {
                "type": "string"
              },
              "issues": {
                "type": "string"
              },
              "single_file": {
                "type": "string"
              }
            }
          },
          "events": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      }
    }
  },
  "required": [
    "url",
    "users_url",
    "teams_url",
    "apps_url",
    "users",
    "teams",
    "apps"
  ]
}

Usage

from ocp_agent import OCPAgent

agent = OCPAgent()
await agent.register_api('github')

# Call this tool
result = await agent.call_tool('reposGetAccessRestrictions', {
    # Add required parameters here
})