GitHub Enterprise Repos API

Interact with GitHub Repos.

Operations 211

POST /enterprises/{enterprise}/rulesets Create an enterprise repository ruleset #
GET /enterprises/{enterprise}/rulesets/{ruleset_id} Get an enterprise repository ruleset #
PUT /enterprises/{enterprise}/rulesets/{ruleset_id} Update an enterprise repository ruleset #
DELETE /enterprises/{enterprise}/rulesets/{ruleset_id} Delete an enterprise repository ruleset #
GET /orgs/{org}/repos List organization repositories #
POST /orgs/{org}/repos Create an organization repository #
GET /orgs/{org}/rulesets Get all organization repository rulesets #
POST /orgs/{org}/rulesets Create an organization repository ruleset #
GET /orgs/{org}/rulesets/rule-suites List organization rule suites #
GET /orgs/{org}/rulesets/rule-suites/{rule_suite_id} Get an organization rule suite #
GET /orgs/{org}/rulesets/{ruleset_id} Get an organization repository ruleset #
PUT /orgs/{org}/rulesets/{ruleset_id} Update an organization repository ruleset #
DELETE /orgs/{org}/rulesets/{ruleset_id} Delete an organization repository ruleset #
GET /repos/{owner}/{repo} Get a repository #
PATCH /repos/{owner}/{repo} Update a repository #
DELETE /repos/{owner}/{repo} Delete a repository #
GET /repos/{owner}/{repo}/activity List repository activities #
POST /repos/{owner}/{repo}/attestations Create an attestation #
GET /repos/{owner}/{repo}/attestations/{subject_digest} List attestations #
GET /repos/{owner}/{repo}/automated-security-fixes Check if Dependabot security updates are enabled for a repository #
PUT /repos/{owner}/{repo}/automated-security-fixes Enable Dependabot security updates #
DELETE /repos/{owner}/{repo}/automated-security-fixes Disable Dependabot security updates #
GET /repos/{owner}/{repo}/branches List branches #
GET /repos/{owner}/{repo}/branches/{branch} Get a branch #
GET /repos/{owner}/{repo}/branches/{branch}/protection Get branch protection #
PUT /repos/{owner}/{repo}/branches/{branch}/protection Update branch protection #
DELETE /repos/{owner}/{repo}/branches/{branch}/protection Delete branch protection #
GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins Get admin branch protection #
POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins Set admin branch protection #
DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins Delete admin branch protection #
GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews Get pull request review protection #
PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews Update pull request review protection #
DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews Delete pull request review protection #
GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures Get commit signature protection #
POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures Create commit signature protection #
DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures Delete commit signature protection #
GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks Get status checks protection #
PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks Update status check protection #
DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks Remove status check protection #
GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts Get all status check contexts #
POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts Add status check contexts #
PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts Set status check contexts #
DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts Remove status check contexts #
GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions Get access restrictions #
DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions Delete access restrictions #
GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps Get apps with access to the protected branch #
POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps Add app access restrictions #
PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps Set app access restrictions #
DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps Remove app access restrictions #
GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams Get teams with access to the protected branch #
POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams Add team access restrictions #
PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams Set team access restrictions #
DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams Remove team access restrictions #
GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users Get users with access to the protected branch #
POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users Add user access restrictions #
PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users Set user access restrictions #
DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users Remove user access restrictions #
POST /repos/{owner}/{repo}/branches/{branch}/rename Rename a branch #
GET /repos/{owner}/{repo}/bypass-requests/push-rules List repository push rule bypass requests #
GET /repos/{owner}/{repo}/bypass-requests/push-rules/{bypass_request_number} Get a repository push bypass request #
GET /repos/{owner}/{repo}/codeowners/errors List CODEOWNERS errors #
GET /repos/{owner}/{repo}/collaborators List repository collaborators #
GET /repos/{owner}/{repo}/collaborators/{username} Check if a user is a repository collaborator #
PUT /repos/{owner}/{repo}/collaborators/{username} Add a repository collaborator #
DELETE /repos/{owner}/{repo}/collaborators/{username} Remove a repository collaborator #
GET /repos/{owner}/{repo}/collaborators/{username}/permission Get repository permissions for a user #
GET /repos/{owner}/{repo}/comments List commit comments for a repository #
GET /repos/{owner}/{repo}/comments/{comment_id} Get a commit comment #
PATCH /repos/{owner}/{repo}/comments/{comment_id} Update a commit comment #
DELETE /repos/{owner}/{repo}/comments/{comment_id} Delete a commit comment #
GET /repos/{owner}/{repo}/commits List commits #
GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head List branches for HEAD commit #
GET /repos/{owner}/{repo}/commits/{commit_sha}/comments List commit comments #
POST /repos/{owner}/{repo}/commits/{commit_sha}/comments Create a commit comment #
GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls List pull requests associated with a commit #
GET /repos/{owner}/{repo}/commits/{ref} Get a commit #
GET /repos/{owner}/{repo}/commits/{ref}/status Get the combined status for a specific reference #
GET /repos/{owner}/{repo}/commits/{ref}/statuses List commit statuses for a reference #
GET /repos/{owner}/{repo}/community/profile Get community profile metrics #
GET /repos/{owner}/{repo}/compare/{basehead} Compare two commits #
GET /repos/{owner}/{repo}/contents/{path} Get repository content #
PUT /repos/{owner}/{repo}/contents/{path} Create or update file contents #
DELETE /repos/{owner}/{repo}/contents/{path} Delete a file #
GET /repos/{owner}/{repo}/contributors List repository contributors #
GET /repos/{owner}/{repo}/deployments List deployments #
POST /repos/{owner}/{repo}/deployments Create a deployment #
GET /repos/{owner}/{repo}/deployments/{deployment_id} Get a deployment #
DELETE /repos/{owner}/{repo}/deployments/{deployment_id} Delete a deployment #
GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses List deployment statuses #
POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses Create a deployment status #
GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id} Get a deployment status #
POST /repos/{owner}/{repo}/dispatches Create a repository dispatch event #
GET /repos/{owner}/{repo}/environments List environments #
GET /repos/{owner}/{repo}/environments/{environment_name} Get an environment #
PUT /repos/{owner}/{repo}/environments/{environment_name} Create or update an environment #
DELETE /repos/{owner}/{repo}/environments/{environment_name} Delete an environment #
GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies List deployment branch policies #
POST /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies Create a deployment branch policy #
GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id} Get a deployment branch policy #
PUT /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id} Update a deployment branch policy #
DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id} Delete a deployment branch policy #
GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules Get all deployment protection rules for an environment #
POST /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules Create a custom deployment protection rule on an environment #
GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps List custom deployment rule integrations available for an environment #
GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id} Get a custom deployment protection rule #
DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id} Disable a custom protection rule for an environment #
GET /repos/{owner}/{repo}/forks List forks #
POST /repos/{owner}/{repo}/forks Create a fork #
GET /repos/{owner}/{repo}/hash-algorithm Get the hash algorithm for a repository #
GET /repos/{owner}/{repo}/hooks List repository webhooks #
POST /repos/{owner}/{repo}/hooks Create a repository webhook #
GET /repos/{owner}/{repo}/hooks/{hook_id} Get a repository webhook #
PATCH /repos/{owner}/{repo}/hooks/{hook_id} Update a repository webhook #
DELETE /repos/{owner}/{repo}/hooks/{hook_id} Delete a repository webhook #
GET /repos/{owner}/{repo}/hooks/{hook_id}/config Get a webhook configuration for a repository #
PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config Update a webhook configuration for a repository #
GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries List deliveries for a repository webhook #
GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id} Get a delivery for a repository webhook #
POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts Redeliver a delivery for a repository webhook #
POST /repos/{owner}/{repo}/hooks/{hook_id}/pings Ping a repository webhook #
POST /repos/{owner}/{repo}/hooks/{hook_id}/tests Test the push repository webhook #
GET /repos/{owner}/{repo}/immutable-releases Check if immutable releases are enabled for a repository #
PUT /repos/{owner}/{repo}/immutable-releases Enable immutable releases #
DELETE /repos/{owner}/{repo}/immutable-releases Disable immutable releases #
GET /repos/{owner}/{repo}/invitations List repository invitations #
PATCH /repos/{owner}/{repo}/invitations/{invitation_id} Update a repository invitation #
DELETE /repos/{owner}/{repo}/invitations/{invitation_id} Delete a repository invitation #
GET /repos/{owner}/{repo}/issue-types List issue types for a repository #
GET /repos/{owner}/{repo}/keys List deploy keys #
POST /repos/{owner}/{repo}/keys Create a deploy key #
GET /repos/{owner}/{repo}/keys/{key_id} Get a deploy key #
DELETE /repos/{owner}/{repo}/keys/{key_id} Delete a deploy key #
GET /repos/{owner}/{repo}/languages List repository languages #
PUT /repos/{owner}/{repo}/lfs Enable Git LFS for a repository #
DELETE /repos/{owner}/{repo}/lfs Disable Git LFS for a repository #
POST /repos/{owner}/{repo}/merge-upstream Sync a fork branch with the upstream repository #
POST /repos/{owner}/{repo}/merges Merge a branch #
GET /repos/{owner}/{repo}/pages Get a GitHub Enterprise Cloud Pages site #
POST /repos/{owner}/{repo}/pages Create a GitHub Enterprise Cloud Pages site #
PUT /repos/{owner}/{repo}/pages Update information about a GitHub Enterprise Cloud Pages site #
DELETE /repos/{owner}/{repo}/pages Delete a GitHub Enterprise Cloud Pages site #
GET /repos/{owner}/{repo}/pages/builds List GitHub Enterprise Cloud Pages builds #
POST /repos/{owner}/{repo}/pages/builds Request a GitHub Enterprise Cloud Pages build #
GET /repos/{owner}/{repo}/pages/builds/latest Get latest Pages build #
GET /repos/{owner}/{repo}/pages/builds/{build_id} Get GitHub Enterprise Cloud Pages build #
POST /repos/{owner}/{repo}/pages/deployments Create a GitHub Pages deployment #
GET /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id} Get the status of a GitHub Pages deployment #
POST /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}/cancel Cancel a GitHub Pages deployment #
GET /repos/{owner}/{repo}/pages/health Get a DNS health check for GitHub Pages #
GET /repos/{owner}/{repo}/private-vulnerability-reporting Check if private vulnerability reporting is enabled for a repository #
PUT /repos/{owner}/{repo}/private-vulnerability-reporting Enable private vulnerability reporting for a repository #
DELETE /repos/{owner}/{repo}/private-vulnerability-reporting Disable private vulnerability reporting for a repository #
GET /repos/{owner}/{repo}/properties/values Get all custom property values for a repository #
PATCH /repos/{owner}/{repo}/properties/values Create or update custom property values for a repository #
GET /repos/{owner}/{repo}/readme Get a repository README #
GET /repos/{owner}/{repo}/readme/{dir} Get a repository README for a directory #
GET /repos/{owner}/{repo}/releases List releases #
POST /repos/{owner}/{repo}/releases Create a release #
GET /repos/{owner}/{repo}/releases/assets/{asset_id} Get a release asset #
PATCH /repos/{owner}/{repo}/releases/assets/{asset_id} Update a release asset #
DELETE /repos/{owner}/{repo}/releases/assets/{asset_id} Delete a release asset #
POST /repos/{owner}/{repo}/releases/generate-notes Generate release notes content for a release #
GET /repos/{owner}/{repo}/releases/latest Get the latest release #
GET /repos/{owner}/{repo}/releases/tags/{tag} Get a release by tag name #
GET /repos/{owner}/{repo}/releases/{release_id} Get a release #
PATCH /repos/{owner}/{repo}/releases/{release_id} Update a release #
DELETE /repos/{owner}/{repo}/releases/{release_id} Delete a release #
GET /repos/{owner}/{repo}/releases/{release_id}/assets List release assets #
POST /repos/{owner}/{repo}/releases/{release_id}/assets Upload a release asset #
GET /repos/{owner}/{repo}/rules/branches/{branch} Get rules for a branch #
GET /repos/{owner}/{repo}/rulesets Get all repository rulesets #
POST /repos/{owner}/{repo}/rulesets Create a repository ruleset #
GET /repos/{owner}/{repo}/rulesets/rule-suites List repository rule suites #
GET /repos/{owner}/{repo}/rulesets/rule-suites/{rule_suite_id} Get a repository rule suite #
GET /repos/{owner}/{repo}/rulesets/{ruleset_id} Get a repository ruleset #
PUT /repos/{owner}/{repo}/rulesets/{ruleset_id} Update a repository ruleset #
DELETE /repos/{owner}/{repo}/rulesets/{ruleset_id} Delete a repository ruleset #
GET /repos/{owner}/{repo}/rulesets/{ruleset_id}/history Get repository ruleset history #
GET /repos/{owner}/{repo}/rulesets/{ruleset_id}/history/{version_id} Get repository ruleset version #
GET /repos/{owner}/{repo}/stats/code_frequency Get the weekly commit activity #
GET /repos/{owner}/{repo}/stats/commit_activity Get the last year of commit activity #
GET /repos/{owner}/{repo}/stats/contributors Get all contributor commit activity #
GET /repos/{owner}/{repo}/stats/participation Get the weekly commit count #
GET /repos/{owner}/{repo}/stats/punch_card Get the hourly commit count for each day #
POST /repos/{owner}/{repo}/statuses/{sha} Create a commit status #
GET /repos/{owner}/{repo}/tags List repository tags #
GET /repos/{owner}/{repo}/tarball/{ref} Download a repository archive (tar) #
GET /repos/{owner}/{repo}/teams List repository teams #
GET /repos/{owner}/{repo}/topics Get all repository topics #
PUT /repos/{owner}/{repo}/topics Replace all repository topics #
GET /repos/{owner}/{repo}/traffic/clones Get repository clones #
GET /repos/{owner}/{repo}/traffic/popular/paths Get top referral paths #
GET /repos/{owner}/{repo}/traffic/popular/referrers Get top referral sources #
GET /repos/{owner}/{repo}/traffic/views Get page views #
POST /repos/{owner}/{repo}/transfer Transfer a repository #
GET /repos/{owner}/{repo}/vulnerability-alerts Check if vulnerability alerts are enabled for a repository #
PUT /repos/{owner}/{repo}/vulnerability-alerts Enable vulnerability alerts #
DELETE /repos/{owner}/{repo}/vulnerability-alerts Disable vulnerability alerts #
GET /repos/{owner}/{repo}/zipball/{ref} Download a repository archive (zip) #
POST /repos/{template_owner}/{template_repo}/generate Create a repository using a template #
GET /repositories List public repositories #
GET /user/repos List repositories for the authenticated user #
POST /user/repos Create a repository for the authenticated user #
GET /user/repository_invitations List repository invitations for the authenticated user #
PATCH /user/repository_invitations/{invitation_id} Accept a repository invitation #
DELETE /user/repository_invitations/{invitation_id} Decline a repository invitation #
GET /users/{username}/repos List repositories for a user #

Documentation

Specifications

Schemas & Data

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/github-enterprise:github-enterprise-repos-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

github-enterprise-repos-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Github Enterprise Repos API
  version: 1.1.4
  contact:
    name: Support
    url: https://support.github.com/contact?tags=dotcom-rest-api
  license:
    name: MIT
    url: https://spdx.org/licenses/MIT
  termsOfService: https://docs.github.com/articles/github-terms-of-service
  x-github-plan: ghec
  description: 'Operations tagged repos across 2 of this provider''s published API definitions: github-enterprise-ghec-openapi.json, github-enterprise-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.github.com
tags:


# --- truncated at 32 KB (1025 KB total) ---
# Full source: https://artifacts.apis.io/github-enterprise/openapi/github-enterprise-repos-api-openapi.yml