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

reposAddTeamAccessRestrictions

Add team access restrictions

Details

  • Method: POST
  • Path: /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams
  • Operation ID: repos/add-team-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

{
  "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"
    ]
  }
}

Usage

from ocp_agent import OCPAgent

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

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