View Source GitHub.Repos (GitHub REST API Client v0.1.1)
Provides API endpoints related to repos
Link to this section Summary
Functions
Accept a repository invitation
Add app access restrictions
Add a repository collaborator
Add status check contexts
Add team access restrictions
Add user access restrictions
Check if automated security fixes are enabled for a repository
Check if a user is a repository collaborator
Check if vulnerability alerts are enabled for a repository
List CODEOWNERS errors
Compare two commits
Create an autolink reference for a repository
Create a commit comment
Create commit signature protection
Create a commit status
Create a deploy key
Create a deployment
Create a deployment branch policy
Create a custom deployment protection rule on an environment
Create a deployment status
Create a repository dispatch event
Create a repository for the authenticated user
Create a fork
Create an organization repository
Create or update an environment
Create or update file contents
Create an organization repository ruleset
Create a GitHub Pages deployment
Create a GitHub Pages site
Create a release
Create a repository ruleset
Create a tag protection state for a repository
Create a repository using a template
Create a repository webhook
Decline a repository invitation
Delete a repository
Delete access restrictions
Delete admin branch protection
Delete an environment
Delete an autolink reference from a repository
Delete branch protection
Delete a commit comment
Delete commit signature protection
Delete a deploy key
Delete a deployment
Delete a deployment branch policy
Delete a file
Delete a repository invitation
Delete an organization repository ruleset
Delete a GitHub Pages site
Delete pull request review protection
Delete a release
Delete a release asset
Delete a repository ruleset
Delete a tag protection state for a repository
Delete a repository webhook
Disable automated security fixes
Disable a custom protection rule for an environment
Disable private vulnerability reporting for a repository
Disable vulnerability alerts
Download a repository archive (tar)
Download a repository archive (zip)
Enable automated security fixes
Enable private vulnerability reporting for a repository
Enable vulnerability alerts
Generate release notes content for a release
Get a repository
Get access restrictions
Get admin branch protection
Get all deployment protection rules for an environment
List environments
Get all status check contexts
Get all repository topics
Get apps with access to the protected branch
Get an autolink reference of a repository
Get a branch
Get branch protection
Get rules for a branch
Get repository clones
Get the weekly commit activity
Get repository permissions for a user
Get the combined status for a specific reference
Get a commit
Get the last year of commit activity
Get a commit comment
Get commit signature protection
Get community profile metrics
Get repository content
Get all contributor commit activity
Get a custom deployment protection rule
Get a deploy key
Get a deployment
Get a deployment branch policy
Get a deployment status
Get an environment
Get latest Pages build
Get the latest release
Get an organization rule suite
List organization rule suites
Get an organization repository ruleset
Get all organization repository rulesets
Get a GitHub Pages site
Get GitHub Pages build
Get a DNS health check for GitHub Pages
Get the weekly commit count
Get pull request review protection
Get the hourly commit count for each day
Get a repository README
Get a repository README for a directory
Get a release
Get a release asset
Get a release by tag name
Get a repository rule suite
List repository rule suites
Get a repository ruleset
Get all repository rulesets
Get status checks protection
Get teams with access to the protected branch
Get top referral paths
Get top referral sources
Get users with access to the protected branch
Get page views
Get a repository webhook
Get a webhook configuration for a repository
Get a delivery for a repository webhook
List repository activities
List all autolinks of a repository
List branches
List branches for HEAD commit
List repository collaborators
List commit comments
List commit comments for a repository
List commit statuses for a reference
List commits
List repository contributors
List custom deployment rule integrations available for an environment
List deploy keys
List deployment branch policies
List deployment statuses
List deployments
List repositories for the authenticated user
List organization repositories
List repositories for a user
List forks
List repository invitations
List repository invitations for the authenticated user
List repository languages
List GitHub Pages builds
List public repositories
List pull requests associated with a commit
List release assets
List releases
List tag protection states for a repository
List repository tags
List repository teams
List deliveries for a repository webhook
List repository webhooks
Merge a branch
Sync a fork branch with the upstream repository
Ping a repository webhook
Redeliver a delivery for a repository webhook
Remove app access restrictions
Remove a repository collaborator
Remove status check contexts
Remove status check protection
Remove team access restrictions
Remove user access restrictions
Rename a branch
Replace all repository topics
Request a GitHub Pages build
Set admin branch protection
Set app access restrictions
Set status check contexts
Set team access restrictions
Set user access restrictions
Test the push repository webhook
Transfer a repository
Update a repository
Update branch protection
Update a commit comment
Update a deployment branch policy
Update information about a GitHub Pages site
Update a repository invitation
Update an organization repository ruleset
Update pull request review protection
Update a release
Update a release asset
Update a repository ruleset
Update status check protection
Update a repository webhook
Update a webhook configuration for a repository
Upload a release asset
Link to this section Functions
accept_invitation_for_authenticated_user(invitation_id, opts \\ [])
View Source@spec accept_invitation_for_authenticated_user( integer(), keyword() ) :: :ok | {:error, GitHub.Error.t()}
Accept a repository invitation
resources
Resources
add_app_access_restrictions(owner, repo, branch, body, opts \\ [])
View Source@spec add_app_access_restrictions( String.t(), String.t(), String.t(), map() | [String.t()], keyword() ) :: {:ok, [GitHub.App.t()]} | {:error, GitHub.Error.t()}
Add app access restrictions
Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.
Grants the specified apps push access for this branch. Only installed GitHub Apps with write
access to the contents
permission can be added as authorized actors on a protected branch.
resources
Resources
@spec add_collaborator(String.t(), String.t(), String.t(), map(), keyword()) :: {:ok, GitHub.Repository.Invitation.t()} | {:error, GitHub.Error.t()}
Add a repository collaborator
This endpoint triggers notifications. Creating content too quickly using this endpoint may result in secondary rate limiting. See "Secondary rate limits" and "Dealing with secondary rate limits" for details.
Adding an outside collaborator may be restricted by enterprise administrators. For more information, see "Enforcing repository management policies in your enterprise."
For more information on permission levels, see "Repository permission levels for an organization". There are restrictions on which permissions can be granted to organization members when an organization base role is in place. In this case, the permission being given must be equal to or higher than the org base permission. Otherwise, the request will fail with:
Cannot assign {member} permission of {role name}
Note that, if you choose not to pass any parameters, you'll need to set Content-Length
to zero when calling out to this endpoint. For more information, see "HTTP verbs."
The invitee will receive a notification that they have been invited to the repository, which they must accept or decline. They may do this via the notifications page, the email they receive, or by using the API.
Updating an existing collaborator's permission level
The endpoint can also be used to change the permissions of an existing collaborator without first removing and re-adding the collaborator. To change the permissions, use the same endpoint and pass a different permission
parameter. The response will be a 204
, with no other indication that the permission level changed.
Rate limits
You are limited to sending 50 invitations to a repository per 24 hour period. Note there is no limit if you are inviting organization members to an organization repository.
resources
Resources
@spec add_status_check_contexts( String.t(), String.t(), String.t(), map() | [String.t()], keyword() ) :: {:ok, [String.t()]} | {:error, GitHub.Error.t()}
Add status check contexts
Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.
resources
Resources
add_team_access_restrictions(owner, repo, branch, body, opts \\ [])
View Source@spec add_team_access_restrictions( String.t(), String.t(), String.t(), map() | [String.t()], keyword() ) :: {:ok, [GitHub.Team.t()]} | {:error, GitHub.Error.t()}
Add team access restrictions
Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.
Grants the specified teams push access for this branch. You can also give push access to child teams.
resources
Resources
add_user_access_restrictions(owner, repo, branch, body, opts \\ [])
View Source@spec add_user_access_restrictions( String.t(), String.t(), String.t(), map() | [String.t()], keyword() ) :: {:ok, [GitHub.User.simple()]} | {:error, GitHub.Error.t()}
Add user access restrictions
Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.
Grants the specified people push access for this branch.
Type | Description |
---|---|
array | Usernames for people who can have push access. Note: The list of users, apps, and teams in total is limited to 100 items. |
resources
Resources
@spec check_automated_security_fixes(String.t(), String.t(), keyword()) :: {:ok, GitHub.Check.AutomatedSecurityFixes.t()} | {:error, GitHub.Error.t()}
Check if automated security fixes are enabled for a repository
Shows whether automated security fixes are enabled, disabled or paused for a repository. The authenticated user must have admin read access to the repository. For more information, see "Configuring automated security fixes".
resources
Resources
@spec check_collaborator(String.t(), String.t(), String.t(), keyword()) :: :ok | {:error, GitHub.Error.t()}
Check if a user is a repository collaborator
For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners.
Team members will include the members of child teams.
You must authenticate using an access token with the read:org
and repo
scopes with push access to use this
endpoint. GitHub Apps must have the members
organization permission and metadata
repository permission to use this
endpoint.
resources
Resources
@spec check_vulnerability_alerts(String.t(), String.t(), keyword()) :: :ok | {:error, GitHub.Error.t()}
Check if vulnerability alerts are enabled for a repository
Shows whether dependency alerts are enabled or disabled for a repository. The authenticated user must have admin read access to the repository. For more information, see "About security alerts for vulnerable dependencies".
resources
Resources
@spec codeowners_errors(String.t(), String.t(), keyword()) :: {:ok, GitHub.CodeownersErrors.t()} | {:error, GitHub.Error.t()}
List CODEOWNERS errors
List any syntax errors that are detected in the CODEOWNERS file.
For more information about the correct CODEOWNERS syntax, see "About code owners."
options
Options
ref
: A branch, tag or commit name used to determine which version of the CODEOWNERS file to use. Default: the repository's default branch (e.g.main
)
resources
Resources
@spec compare_commits(String.t(), String.t(), String.t(), keyword()) :: {:ok, GitHub.Commit.Comparison.t()} | {:error, GitHub.Error.t()}
Compare two commits
Compares two commits against one another. You can compare branches in the same repository, or you can compare branches that exist in different repositories within the same repository network, including fork branches. For more information about how to view a repository's network, see "Understanding connections between repositories."
This endpoint is equivalent to running the git log BASE..HEAD
command, but it returns commits in a different order. The git log BASE..HEAD
command returns commits in reverse chronological order, whereas the API returns commits in chronological order. You can pass the appropriate media type to fetch diff and patch formats.
The API response includes details about the files that were changed between the two commits. This includes the status of the change (if a file was added, removed, modified, or renamed), and details of the change itself. For example, files with a renamed
status have a previous_filename
field showing the previous filename of the file, and files with a modified
status have a patch
field showing the changes made to the file.
When calling this endpoint without any paging parameter (per_page
or page
), the returned list is limited to 250 commits, and the last commit in the list is the most recent of the entire comparison.
Working with large comparisons
To process a response with a large number of commits, use a query parameter (per_page
or page
) to paginate the results. When using pagination:
- The list of changed files is only shown on the first page of results, but it includes all changed files for the entire comparison.
- The results are returned in chronological order, but the last commit in the returned list may not be the most recent one in the entire set if there are more pages of results.
For more information on working with pagination, see "Using pagination in the REST API."
Signature verification object
The response will include a verification
object that describes the result of verifying the commit's signature. The verification
object includes the following fields:
Name | Type | Description |
---|---|---|
verified | boolean | Indicates whether GitHub considers the signature in this commit to be verified. |
reason | string | The reason for verified value. Possible values and their meanings are enumerated in table below. |
signature | string | The signature that was extracted from the commit. |
payload | string | The value that was signed. |
These are the possible values for reason
in the verification
object:
Value | Description |
---|---|
expired_key | The key that made the signature is expired. |
not_signing_key | The "signing" flag is not among the usage flags in the GPG key that made the signature. |
gpgverify_error | There was an error communicating with the signature verification service. |
gpgverify_unavailable | The signature verification service is currently unavailable. |
unsigned | The object does not include a signature. |
unknown_signature_type | A non-PGP signature was found in the commit. |
no_user | No user was associated with the committer email address in the commit. |
unverified_email | The committer email address in the commit was associated with a user, but the email address is not verified on their account. |
bad_email | The committer email address in the commit is not included in the identities of the PGP key that made the signature. |
unknown_key | The key that made the signature has not been registered with any user's account. |
malformed_signature | There was an error parsing the signature. |
invalid | The signature could not be cryptographically verified using the key whose key-id was found in the signature. |
valid | None of the above errors applied, so the signature is considered to be verified. |
options
Options
page
: Page number of the results to fetch.per_page
: The number of results per page (max 100).
resources
Resources
@spec create_autolink(String.t(), String.t(), map(), keyword()) :: {:ok, GitHub.Autolink.t()} | {:error, GitHub.Error.t()}
Create an autolink reference for a repository
Users with admin access to the repository can create an autolink.
resources
Resources
@spec create_commit_comment(String.t(), String.t(), String.t(), map(), keyword()) :: {:ok, GitHub.Commit.Comment.t()} | {:error, GitHub.Error.t()}
Create a commit comment
Create a comment for a commit using its :commit_sha
.
This endpoint triggers notifications. Creating content too quickly using this endpoint may result in secondary rate limiting. See "Secondary rate limits" and "Dealing with secondary rate limits" for details.
resources
Resources
create_commit_signature_protection(owner, repo, branch, opts \\ [])
View Source@spec create_commit_signature_protection( String.t(), String.t(), String.t(), keyword() ) :: {:ok, GitHub.ProtectedBranch.AdminEnforced.t()} | {:error, GitHub.Error.t()}
Create commit signature protection
Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.
When authenticated with admin or owner permissions to the repository, you can use this endpoint to require signed commits on a branch. You must enable branch protection to require signed commits.
resources
Resources
@spec create_commit_status(String.t(), String.t(), String.t(), map(), keyword()) :: {:ok, GitHub.Status.t()} | {:error, GitHub.Error.t()}
Create a commit status
Users with push access in a repository can create commit statuses for a given SHA.
Note: there is a limit of 1000 statuses per sha
and context
within a repository. Attempts to create more than 1000 statuses will result in a validation error.
resources
Resources
@spec create_deploy_key(String.t(), String.t(), map(), keyword()) :: {:ok, GitHub.DeployKey.t()} | {:error, GitHub.Error.t()}
Create a deploy key
You can create a read-only deploy key.
resources
Resources
@spec create_deployment(String.t(), String.t(), map(), keyword()) :: {:ok, map() | GitHub.Deployment.t()} | {:error, GitHub.Error.t()}
Create a deployment
Deployments offer a few configurable parameters with certain defaults.
The ref
parameter can be any named branch, tag, or SHA. At GitHub we often deploy branches and verify them
before we merge a pull request.
The environment
parameter allows deployments to be issued to different runtime environments. Teams often have
multiple environments for verifying their applications, such as production
, staging
, and qa
. This parameter
makes it easier to track which environments have requested deployments. The default environment is production
.
The auto_merge
parameter is used to ensure that the requested ref is not behind the repository's default branch. If
the ref is behind the default branch for the repository, we will attempt to merge it for you. If the merge succeeds,
the API will return a successful merge commit. If merge conflicts prevent the merge from succeeding, the API will
return a failure response.
By default, commit statuses for every submitted context must be in a success
state. The required_contexts
parameter allows you to specify a subset of contexts that must be success
, or to
specify contexts that have not yet been submitted. You are not required to use commit statuses to deploy. If you do
not require any contexts or create any commit statuses, the deployment will always succeed.
The payload
parameter is available for any extra information that a deployment system might need. It is a JSON text
field that will be passed on when a deployment event is dispatched.
The task
parameter is used by the deployment system to allow different execution paths. In the web world this might
be deploy:migrations
to run schema changes on the system. In the compiled world this could be a flag to compile an
application with debugging enabled.
Users with repo
or repo_deployment
scopes can create a deployment for a given ref.
Merged branch response:
You will see this response when GitHub automatically merges the base branch into the topic branch instead of creating a deployment. This auto-merge happens when:
- Auto-merge option is enabled in the repository
- Topic branch does not include the latest changes on the base branch, which is
master
in the response example - There are no merge conflicts
If there are no new commits in the base branch, a new request to create a deployment should give a successful response.
Merge conflict response:
This error happens when the auto_merge
option is enabled and when the default branch (in this case master
), can't
be merged into the branch that's being deployed (in this case topic-branch
), due to merge conflicts.
Failed commit status checks:
This error happens when the required_contexts
parameter indicates that one or more contexts need to have a success
status for the commit to be deployed, but one or more of the required contexts do not have a state of success
.
resources
Resources
create_deployment_branch_policy(owner, repo, environment_name, body, opts \\ [])
View Source@spec create_deployment_branch_policy( String.t(), String.t(), String.t(), GitHub.Deployment.BranchPolicyNamePatternWithType.t(), keyword() ) :: {:ok, GitHub.Deployment.BranchPolicy.t()} | {:error, GitHub.Error.t()}
Create a deployment branch policy
Creates a deployment branch policy for an environment.
You must authenticate using an access token with the repo
scope to use this endpoint. GitHub Apps must have the administration:write
permission for the repository to use this endpoint.
resources
Resources
create_deployment_protection_rule(environment_name, repo, owner, body, opts \\ [])
View Source@spec create_deployment_protection_rule( String.t(), String.t(), String.t(), map(), keyword() ) :: {:ok, GitHub.Deployment.ProtectionRule.t()} | {:error, GitHub.Error.t()}
Create a custom deployment protection rule on an environment
Enable a custom deployment protection rule for an environment.
You must authenticate using an access token with the repo
scope to use this endpoint. Enabling a custom protection rule requires admin or owner permissions to the repository. GitHub Apps must have the actions:write
permission to use this endpoint.
For more information about the app that is providing this custom deployment rule, see the documentation for the GET /apps/{app_slug}
endpoint.
resources
Resources
create_deployment_status(owner, repo, deployment_id, body, opts \\ [])
View Source@spec create_deployment_status(String.t(), String.t(), integer(), map(), keyword()) :: {:ok, GitHub.Deployment.Status.t()} | {:error, GitHub.Error.t()}
Create a deployment status
Users with push
access can create deployment statuses for a given deployment.
GitHub Apps require read & write
access to "Deployments" and read-only
access to "Repo contents" (for private repos). OAuth apps require the repo_deployment
scope.
resources
Resources
@spec create_dispatch_event(String.t(), String.t(), map(), keyword()) :: :ok | {:error, GitHub.Error.t()}
Create a repository dispatch event
You can use this endpoint to trigger a webhook event called repository_dispatch
when you want activity that happens outside of GitHub to trigger a GitHub Actions workflow or GitHub App webhook. You must configure your GitHub Actions workflow or GitHub App to run when the repository_dispatch
event occurs. For an example repository_dispatch
webhook payload, see "RepositoryDispatchEvent."
The client_payload
parameter is available for any extra information that your workflow might need. This parameter is a JSON payload that will be passed on when the webhook event is dispatched. For example, the client_payload
can include a message that a user would like to send using a GitHub Actions workflow. Or the client_payload
can be used as a test to debug your workflow.
This endpoint requires write access to the repository by providing either:
- Personal access tokens with
repo
scope. For more information, see "Creating a personal access token for the command line" in the GitHub Help documentation. - GitHub Apps with both
metadata:read
andcontents:read&write
permissions.
This input example shows how you can use the client_payload
as a test to debug your workflow.
resources
Resources
@spec create_for_authenticated_user( map(), keyword() ) :: {:ok, GitHub.Repository.t()} | {:error, GitHub.Error.t()}
Create a repository for the authenticated user
Creates a new repository for the authenticated user.
OAuth scope requirements
When using OAuth, authorizations must include:
-
public_repo
scope orrepo
scope to create a public repository. Note: For GitHub AE, userepo
scope to create an internal repository. -
repo
scope to create a private repository.
resources
Resources
@spec create_fork(String.t(), String.t(), map() | nil, keyword()) :: {:ok, GitHub.Repository.full()} | {:error, GitHub.Error.t()}
Create a fork
Create a fork for the authenticated user.
Note: Forking a Repository happens asynchronously. You may have to wait a short period of time before you can access the git objects. If this takes longer than 5 minutes, be sure to contact GitHub Support.
Note: Although this endpoint works with GitHub Apps, the GitHub App must be installed on the destination account with access to all repositories and on the source account with access to the source repository.
resources
Resources
@spec create_in_org(String.t(), map(), keyword()) :: {:ok, GitHub.Repository.t()} | {:error, GitHub.Error.t()}
Create an organization repository
Creates a new repository in the specified organization. The authenticated user must be a member of the organization.
OAuth scope requirements
When using OAuth, authorizations must include:
-
public_repo
scope orrepo
scope to create a public repository. Note: For GitHub AE, userepo
scope to create an internal repository. -
repo
scope to create a private repository
resources
Resources
create_or_update_environment(owner, repo, environment_name, body, opts \\ [])
View Source@spec create_or_update_environment( String.t(), String.t(), String.t(), map() | nil, keyword() ) :: {:ok, GitHub.Environment.t()} | {:error, GitHub.Error.t()}
Create or update an environment
Create or update an environment with protection rules, such as required reviewers. For more information about environment protection rules, see "Environments."
Note: To create or update name patterns that branches must match in order to deploy to this environment, see "Deployment branch policies."
Note: To create or update secrets for an environment, see "GitHub Actions secrets."
You must authenticate using an access token with the repo
scope to use this endpoint. GitHub Apps must have the administration:write
permission for the repository to use this endpoint.
resources
Resources
create_or_update_file_contents(owner, repo, path, body, opts \\ [])
View Source@spec create_or_update_file_contents( String.t(), String.t(), String.t(), map(), keyword() ) :: {:ok, GitHub.FileCommit.t()} | {:error, GitHub.Error.t()}
Create or update file contents
Creates a new file or replaces an existing file in a repository. You must authenticate using an access token with the repo
scope to use this endpoint. If you want to modify files in the .github/workflows
directory, you must authenticate using an access token with the workflow
scope.
Note: If you use this endpoint and the "Delete a file" endpoint in parallel, the concurrent requests will conflict and you will receive errors. You must use these endpoints serially instead.
resources
Resources
@spec create_org_ruleset(String.t(), map(), keyword()) :: {:ok, GitHub.Repository.Ruleset.t()} | {:error, GitHub.Error.t()}
Create an organization repository ruleset
Create a repository ruleset for an organization.
resources
Resources
@spec create_pages_deployment(String.t(), String.t(), map(), keyword()) :: {:ok, GitHub.Pages.Deployment.t()} | {:error, GitHub.Error.t()}
Create a GitHub Pages deployment
Create a GitHub Pages deployment for a repository.
Users must have write permissions. GitHub Apps must have the pages:write
permission to use this endpoint.
resources
Resources
@spec create_pages_site(String.t(), String.t(), map() | nil, keyword()) :: {:ok, GitHub.Page.t()} | {:error, GitHub.Error.t()}
Create a GitHub Pages site
Configures a GitHub Pages site. For more information, see "About GitHub Pages."
To use this endpoint, you must be a repository administrator, maintainer, or have the 'manage GitHub Pages settings' permission. A token with the repo
scope or Pages write permission is required. GitHub Apps must have the administration:write
and pages:write
permissions.
resources
Resources
@spec create_release(String.t(), String.t(), map(), keyword()) :: {:ok, GitHub.Release.t()} | {:error, GitHub.Error.t()}
Create a release
Users with push access to the repository can create a release.
This endpoint triggers notifications. Creating content too quickly using this endpoint may result in secondary rate limiting. See "Secondary rate limits" and "Dealing with secondary rate limits" for details.
resources
Resources
@spec create_repo_ruleset(String.t(), String.t(), map(), keyword()) :: {:ok, GitHub.Repository.Ruleset.t()} | {:error, GitHub.Error.t()}
Create a repository ruleset
Create a ruleset for a repository.
resources
Resources
@spec create_tag_protection(String.t(), String.t(), map(), keyword()) :: {:ok, GitHub.TagProtection.t()} | {:error, GitHub.Error.t()}
Create a tag protection state for a repository
This creates a tag protection state for a repository. This endpoint is only available to repository administrators.
resources
Resources
create_using_template(template_owner, template_repo, body, opts \\ [])
View Source@spec create_using_template(String.t(), String.t(), map(), keyword()) :: {:ok, GitHub.Repository.t()} | {:error, GitHub.Error.t()}
Create a repository using a template
Creates a new repository using a repository template. Use the template_owner
and template_repo
route parameters to specify the repository to use as the template. If the repository is not public, the authenticated user must own or be a member of an organization that owns the repository. To check if a repository is available to use as a template, get the repository's information using the Get a repository endpoint and check that the is_template
key is true
.
OAuth scope requirements
When using OAuth, authorizations must include:
-
public_repo
scope orrepo
scope to create a public repository. Note: For GitHub AE, userepo
scope to create an internal repository. -
repo
scope to create a private repository
resources
Resources
@spec create_webhook(String.t(), String.t(), map() | nil, keyword()) :: {:ok, GitHub.Hook.t()} | {:error, GitHub.Error.t()}
Create a repository webhook
Repositories can have multiple webhooks installed. Each webhook should have a unique config
. Multiple webhooks can
share the same config
as long as those webhooks do not have any events
that overlap.
resources
Resources
decline_invitation_for_authenticated_user(invitation_id, opts \\ [])
View Source@spec decline_invitation_for_authenticated_user( integer(), keyword() ) :: :ok | {:error, GitHub.Error.t()}
Decline a repository invitation
resources
Resources
@spec delete(String.t(), String.t(), keyword()) :: :ok | {:error, GitHub.Error.t()}
Delete a repository
Deleting a repository requires admin access. If OAuth is used, the delete_repo
scope is required.
If an organization owner has configured the organization to prevent members from deleting organization-owned
repositories, you will get a 403 Forbidden
response.
resources
Resources
@spec delete_access_restrictions(String.t(), String.t(), String.t(), keyword()) :: :ok | {:error, GitHub.Error.t()}
Delete access restrictions
Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.
Disables the ability to restrict who can push to this branch.
resources
Resources
@spec delete_admin_branch_protection(String.t(), String.t(), String.t(), keyword()) :: :ok | {:error, GitHub.Error.t()}
Delete admin branch protection
Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.
Removing admin enforcement requires admin or owner permissions to the repository and branch protection to be enabled.
resources
Resources
@spec delete_an_environment(String.t(), String.t(), String.t(), keyword()) :: :ok | {:error, GitHub.Error.t()}
Delete an environment
You must authenticate using an access token with the repo scope to use this endpoint.
resources
Resources
@spec delete_autolink(String.t(), String.t(), integer(), keyword()) :: :ok | {:error, GitHub.Error.t()}
Delete an autolink reference from a repository
This deletes a single autolink reference by ID that was configured for the given repository.
Information about autolinks are only available to repository administrators.
resources
Resources
@spec delete_branch_protection(String.t(), String.t(), String.t(), keyword()) :: :ok | {:error, GitHub.Error.t()}
Delete branch protection
Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.
resources
Resources
@spec delete_commit_comment(String.t(), String.t(), integer(), keyword()) :: :ok | {:error, GitHub.Error.t()}
Delete a commit comment
resources
Resources
delete_commit_signature_protection(owner, repo, branch, opts \\ [])
View Source@spec delete_commit_signature_protection( String.t(), String.t(), String.t(), keyword() ) :: :ok | {:error, GitHub.Error.t()}
Delete commit signature protection
Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.
When authenticated with admin or owner permissions to the repository, you can use this endpoint to disable required signed commits on a branch. You must enable branch protection to require signed commits.
resources
Resources
@spec delete_deploy_key(String.t(), String.t(), integer(), keyword()) :: :ok | {:error, GitHub.Error.t()}
Delete a deploy key
Deploy keys are immutable. If you need to update a key, remove the key and create a new one instead.
resources
Resources
@spec delete_deployment(String.t(), String.t(), integer(), keyword()) :: :ok | {:error, GitHub.Error.t()}
Delete a deployment
If the repository only has one deployment, you can delete the deployment regardless of its status. If the repository has more than one deployment, you can only delete inactive deployments. This ensures that repositories with multiple deployments will always have an active deployment. Anyone with repo
or repo_deployment
scopes can delete a deployment.
To set a deployment as inactive, you must:
- Create a new deployment that is active so that the system has a record of the current state, then delete the previously active deployment.
- Mark the active deployment as inactive by adding any non-successful deployment status.
For more information, see "Create a deployment" and "Create a deployment status."
resources
Resources
delete_deployment_branch_policy(owner, repo, environment_name, branch_policy_id, opts \\ [])
View Source@spec delete_deployment_branch_policy( String.t(), String.t(), String.t(), integer(), keyword() ) :: :ok | {:error, GitHub.Error.t()}
Delete a deployment branch policy
Deletes a deployment branch policy for an environment.
You must authenticate using an access token with the repo
scope to use this endpoint. GitHub Apps must have the administration:write
permission for the repository to use this endpoint.
resources
Resources
@spec delete_file(String.t(), String.t(), String.t(), map(), keyword()) :: {:ok, GitHub.FileCommit.t()} | {:error, GitHub.Error.t()}
Delete a file
Deletes a file in a repository.
You can provide an additional committer
parameter, which is an object containing information about the committer. Or, you can provide an author
parameter, which is an object containing information about the author.
The author
section is optional and is filled in with the committer
information if omitted. If the committer
information is omitted, the authenticated user's information is used.
You must provide values for both name
and email
, whether you choose to use author
or committer
. Otherwise, you'll receive a 422
status code.
Note: If you use this endpoint and the "Create or update file contents" endpoint in parallel, the concurrent requests will conflict and you will receive errors. You must use these endpoints serially instead.
resources
Resources
@spec delete_invitation(String.t(), String.t(), integer(), keyword()) :: :ok | {:error, GitHub.Error.t()}
Delete a repository invitation
resources
Resources
@spec delete_org_ruleset(String.t(), integer(), keyword()) :: :ok | {:error, GitHub.Error.t()}
Delete an organization repository ruleset
Delete a ruleset for an organization.
resources
Resources
@spec delete_pages_site(String.t(), String.t(), keyword()) :: :ok | {:error, GitHub.Error.t()}
Delete a GitHub Pages site
Deletes a GitHub Pages site. For more information, see "About GitHub Pages.
To use this endpoint, you must be a repository administrator, maintainer, or have the 'manage GitHub Pages settings' permission. A token with the repo
scope or Pages write permission is required. GitHub Apps must have the administration:write
and pages:write
permissions.
resources
Resources
delete_pull_request_review_protection(owner, repo, branch, opts \\ [])
View Source@spec delete_pull_request_review_protection( String.t(), String.t(), String.t(), keyword() ) :: :ok | {:error, GitHub.Error.t()}
Delete pull request review protection
Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.
resources
Resources
@spec delete_release(String.t(), String.t(), integer(), keyword()) :: :ok | {:error, GitHub.Error.t()}
Delete a release
Users with push access to the repository can delete a release.
resources
Resources
@spec delete_release_asset(String.t(), String.t(), integer(), keyword()) :: :ok | {:error, GitHub.Error.t()}
Delete a release asset
resources
Resources
@spec delete_repo_ruleset(String.t(), String.t(), integer(), keyword()) :: :ok | {:error, GitHub.Error.t()}
Delete a repository ruleset
Delete a ruleset for a repository.
resources
Resources
@spec delete_tag_protection(String.t(), String.t(), integer(), keyword()) :: :ok | {:error, GitHub.Error.t()}
Delete a tag protection state for a repository
This deletes a tag protection state for a repository. This endpoint is only available to repository administrators.
resources
Resources
@spec delete_webhook(String.t(), String.t(), integer(), keyword()) :: :ok | {:error, GitHub.Error.t()}
Delete a repository webhook
resources
Resources
@spec disable_automated_security_fixes(String.t(), String.t(), keyword()) :: :ok | {:error, GitHub.Error.t()}
Disable automated security fixes
Disables automated security fixes for a repository. The authenticated user must have admin access to the repository. For more information, see "Configuring automated security fixes".
resources
Resources
disable_deployment_protection_rule(environment_name, repo, owner, protection_rule_id, opts \\ [])
View Source@spec disable_deployment_protection_rule( String.t(), String.t(), String.t(), integer(), keyword() ) :: :ok | {:error, GitHub.Error.t()}
Disable a custom protection rule for an environment
Disables a custom deployment protection rule for an environment.
You must authenticate using an access token with the repo
scope to use this endpoint. Removing a custom protection rule requires admin or owner permissions to the repository. GitHub Apps must have the actions:write
permission to use this endpoint. For more information, see "Get an app".
resources
Resources
@spec disable_private_vulnerability_reporting(String.t(), String.t(), keyword()) :: :ok | {:error, GitHub.Error.t()}
Disable private vulnerability reporting for a repository
Disables private vulnerability reporting for a repository. The authenticated user must have admin access to the repository. For more information, see "Privately reporting a security vulnerability".
resources
Resources
@spec disable_vulnerability_alerts(String.t(), String.t(), keyword()) :: :ok | {:error, GitHub.Error.t()}
Disable vulnerability alerts
Disables dependency alerts and the dependency graph for a repository. The authenticated user must have admin access to the repository. For more information, see "About security alerts for vulnerable dependencies".
resources
Resources
@spec download_tarball_archive(String.t(), String.t(), String.t(), keyword()) :: :ok | {:error, GitHub.Error.t()}
Download a repository archive (tar)
Gets a redirect URL to download a tar archive for a repository. If you omit :ref
, the repository’s default branch (usually
main
) will be used. Please make sure your HTTP framework is configured to follow redirects or you will need to use
the Location
header to make a second GET
request.
Note: For private repositories, these links are temporary and expire after five minutes.
resources
Resources
@spec download_zipball_archive(String.t(), String.t(), String.t(), keyword()) :: :ok | {:error, GitHub.Error.t()}
Download a repository archive (zip)
Gets a redirect URL to download a zip archive for a repository. If you omit :ref
, the repository’s default branch (usually
main
) will be used. Please make sure your HTTP framework is configured to follow redirects or you will need to use
the Location
header to make a second GET
request.
Note: For private repositories, these links are temporary and expire after five minutes. If the repository is empty, you will receive a 404 when you follow the redirect.
resources
Resources
@spec enable_automated_security_fixes(String.t(), String.t(), keyword()) :: :ok | {:error, GitHub.Error.t()}
Enable automated security fixes
Enables automated security fixes for a repository. The authenticated user must have admin access to the repository. For more information, see "Configuring automated security fixes".
resources
Resources
@spec enable_private_vulnerability_reporting(String.t(), String.t(), keyword()) :: :ok | {:error, GitHub.Error.t()}
Enable private vulnerability reporting for a repository
Enables private vulnerability reporting for a repository. The authenticated user must have admin access to the repository. For more information, see "Privately reporting a security vulnerability."
resources
Resources
@spec enable_vulnerability_alerts(String.t(), String.t(), keyword()) :: :ok | {:error, GitHub.Error.t()}
Enable vulnerability alerts
Enables dependency alerts and the dependency graph for a repository. The authenticated user must have admin access to the repository. For more information, see "About security alerts for vulnerable dependencies".
resources
Resources
@spec generate_release_notes(String.t(), String.t(), map(), keyword()) :: {:ok, GitHub.Release.NotesContent.t()} | {:error, GitHub.Error.t()}
Generate release notes content for a release
Generate a name and body describing a release. The body content will be markdown formatted and contain information like the changes since last release and users who contributed. The generated release notes are not saved anywhere. They are intended to be generated and used when creating a new release.
resources
Resources
@spec get(String.t(), String.t(), keyword()) :: {:ok, GitHub.Repository.full()} | {:error, GitHub.Error.t()}
Get a repository
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."
resources
Resources
@spec get_access_restrictions(String.t(), String.t(), String.t(), keyword()) :: {:ok, GitHub.Branch.RestrictionPolicy.t()} | {:error, GitHub.Error.t()}
Get access restrictions
Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.
Lists who has access to this protected branch.
Note: Users, apps, and teams restrictions
are only available for organization-owned repositories.
resources
Resources
@spec get_admin_branch_protection(String.t(), String.t(), String.t(), keyword()) :: {:ok, GitHub.ProtectedBranch.AdminEnforced.t()} | {:error, GitHub.Error.t()}
Get admin branch protection
Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.
resources
Resources
get_all_deployment_protection_rules(environment_name, repo, owner, opts \\ [])
View Source@spec get_all_deployment_protection_rules( String.t(), String.t(), String.t(), keyword() ) :: {:ok, map()} | {:error, GitHub.Error.t()}
Get all deployment protection rules for an environment
Gets all custom deployment protection rules that are enabled for an environment. Anyone with read access to the repository can use this endpoint. If the repository is private and you want to use a personal access token (classic), you must use an access token with the repo
scope. GitHub Apps and fine-grained personal access tokens must have the actions:read
permission to use this endpoint. For more information about environments, see "Using environments for deployment."
For more information about the app that is providing this custom deployment rule, see the documentation for the GET /apps/{app_slug}
endpoint.
resources
Resources
@spec get_all_environments(String.t(), String.t(), keyword()) :: {:ok, map()} | {:error, GitHub.Error.t()}
List environments
Lists the environments for a repository.
Anyone with read access to the repository can use this endpoint. If the repository is private, you must use an access token with the repo
scope. GitHub Apps must have the actions:read
permission to use this endpoint.
options
Options
per_page
: The number of results per page (max 100).page
: Page number of the results to fetch.
resources
Resources
@spec get_all_status_check_contexts(String.t(), String.t(), String.t(), keyword()) :: {:ok, [String.t()]} | {:error, GitHub.Error.t()}
Get all status check contexts
Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.
resources
Resources
@spec get_all_topics(String.t(), String.t(), keyword()) :: {:ok, GitHub.Topic.t()} | {:error, GitHub.Error.t()}
Get all repository topics
options
Options
page
: Page number of the results to fetch.per_page
: The number of results per page (max 100).
resources
Resources
get_apps_with_access_to_protected_branch(owner, repo, branch, opts \\ [])
View Source@spec get_apps_with_access_to_protected_branch( String.t(), String.t(), String.t(), keyword() ) :: {:ok, [GitHub.App.t()]} | {:error, GitHub.Error.t()}
Get apps with access to the protected branch
Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.
Lists the GitHub Apps that have push access to this branch. Only installed GitHub Apps with write
access to the contents
permission can be added as authorized actors on a protected branch.
resources
Resources
@spec get_autolink(String.t(), String.t(), integer(), keyword()) :: {:ok, GitHub.Autolink.t()} | {:error, GitHub.Error.t()}
Get an autolink reference of a repository
This returns a single autolink reference by ID that was configured for the given repository.
Information about autolinks are only available to repository administrators.
resources
Resources
@spec get_branch(String.t(), String.t(), String.t(), keyword()) :: {:ok, GitHub.Branch.WithProtection.t()} | {:error, GitHub.Error.t()}
Get a branch
resources
Resources
@spec get_branch_protection(String.t(), String.t(), String.t(), keyword()) :: {:ok, GitHub.Branch.Protection.t()} | {:error, GitHub.Error.t()}
Get branch protection
Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.
resources
Resources
@spec get_branch_rules(String.t(), String.t(), String.t(), keyword()) :: {:ok, [map()]} | {:error, GitHub.Error.t()}
Get rules for a branch
Returns all active rules that apply to the specified branch. The branch does not need to exist; rules that would apply to a branch with that name will be returned. All active rules that apply will be returned, regardless of the level at which they are configured (e.g. repository or organization). Rules in rulesets with "evaluate" or "disabled" enforcement statuses are not returned.
options
Options
per_page
: The number of results per page (max 100).page
: Page number of the results to fetch.
resources
Resources
@spec get_clones(String.t(), String.t(), keyword()) :: {:ok, GitHub.CloneTraffic.t()} | {:error, GitHub.Error.t()}
Get repository clones
Get the total number of clones and breakdown per day or week for the last 14 days. Timestamps are aligned to UTC midnight of the beginning of the day or week. Week begins on Monday.
options
Options
per
: The time frame to display results for.
resources
Resources
@spec get_code_frequency_stats(String.t(), String.t(), keyword()) :: {:ok, map() | [[integer()]]} | {:error, GitHub.Error.t()}
Get the weekly commit activity
Returns a weekly aggregate of the number of additions and deletions pushed to a repository.
resources
Resources
get_collaborator_permission_level(owner, repo, username, opts \\ [])
View Source@spec get_collaborator_permission_level(String.t(), String.t(), String.t(), keyword()) :: {:ok, GitHub.Repository.CollaboratorPermission.t()} | {:error, GitHub.Error.t()}
Get repository permissions for a user
Checks the repository permission of a collaborator. The possible repository
permissions are admin
, write
, read
, and none
.
Note: The permission
attribute provides the legacy base roles of admin
, write
, read
, and none
, where the
maintain
role is mapped to write
and the triage
role is mapped to read
. To determine the role assigned to the
collaborator, see the role_name
attribute, which will provide the full role name, including custom roles. The
permissions
hash can also be used to determine which base level of access the collaborator has to the repository.
resources
Resources
@spec get_combined_status_for_ref(String.t(), String.t(), String.t(), keyword()) :: {:ok, GitHub.CombinedCommitStatus.t()} | {:error, GitHub.Error.t()}
Get the combined status for a specific reference
Users with pull access in a repository can access a combined view of commit statuses for a given ref. The ref can be a SHA, a branch name, or a tag name.
Additionally, a combined state
is returned. The state
is one of:
- failure if any of the contexts report as
error
orfailure
- pending if there are no statuses or a context is
pending
- success if the latest status for all contexts is
success
options
Options
per_page
: The number of results per page (max 100).page
: Page number of the results to fetch.
resources
Resources
@spec get_commit(String.t(), String.t(), String.t(), keyword()) :: {:ok, GitHub.Commit.t()} | {:error, GitHub.Error.t()}
Get a commit
Returns the contents of a single commit reference. You must have read
access for the repository to use this endpoint.
Note: If there are more than 300 files in the commit diff, the response will include pagination link headers for the remaining files, up to a limit of 3000 files. Each page contains the static commit information, and the only changes are to the file listing.
You can pass the appropriate media type to fetch diff
and patch
formats. Diffs with binary data will have no patch
property.
To return only the SHA-1 hash of the commit reference, you can provide the sha
custom media type in the Accept
header. You can use this endpoint to check if a remote reference's SHA-1 hash is the same as your local reference's SHA-1 hash by providing the local SHA-1 reference as the ETag.
Signature verification object
The response will include a verification
object that describes the result of verifying the commit's signature. The following fields are included in the verification
object:
Name | Type | Description |
---|---|---|
verified | boolean | Indicates whether GitHub considers the signature in this commit to be verified. |
reason | string | The reason for verified value. Possible values and their meanings are enumerated in table below. |
signature | string | The signature that was extracted from the commit. |
payload | string | The value that was signed. |
These are the possible values for reason
in the verification
object:
Value | Description |
---|---|
expired_key | The key that made the signature is expired. |
not_signing_key | The "signing" flag is not among the usage flags in the GPG key that made the signature. |
gpgverify_error | There was an error communicating with the signature verification service. |
gpgverify_unavailable | The signature verification service is currently unavailable. |
unsigned | The object does not include a signature. |
unknown_signature_type | A non-PGP signature was found in the commit. |
no_user | No user was associated with the committer email address in the commit. |
unverified_email | The committer email address in the commit was associated with a user, but the email address is not verified on their account. |
bad_email | The committer email address in the commit is not included in the identities of the PGP key that made the signature. |
unknown_key | The key that made the signature has not been registered with any user's account. |
malformed_signature | There was an error parsing the signature. |
invalid | The signature could not be cryptographically verified using the key whose key-id was found in the signature. |
valid | None of the above errors applied, so the signature is considered to be verified. |
options
Options
page
: Page number of the results to fetch.per_page
: The number of results per page (max 100).
resources
Resources
@spec get_commit_activity_stats(String.t(), String.t(), keyword()) :: {:ok, map() | [GitHub.Commit.Activity.t()]} | {:error, GitHub.Error.t()}
Get the last year of commit activity
Returns the last year of commit activity grouped by week. The days
array is a group of commits per day, starting on Sunday
.
resources
Resources
@spec get_commit_comment(String.t(), String.t(), integer(), keyword()) :: {:ok, GitHub.Commit.Comment.t()} | {:error, GitHub.Error.t()}
Get a commit comment
resources
Resources
@spec get_commit_signature_protection(String.t(), String.t(), String.t(), keyword()) :: {:ok, GitHub.ProtectedBranch.AdminEnforced.t()} | {:error, GitHub.Error.t()}
Get commit signature protection
Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.
When authenticated with admin or owner permissions to the repository, you can use this endpoint to check whether a branch requires signed commits. An enabled status of true
indicates you must sign commits on this branch. For more information, see Signing commits with GPG in GitHub Help.
Note: You must enable branch protection to require signed commits.
resources
Resources
@spec get_community_profile_metrics(String.t(), String.t(), keyword()) :: {:ok, GitHub.CommunityProfile.t()} | {:error, GitHub.Error.t()}
Get community profile metrics
Returns all community profile metrics for a repository. The repository cannot be a fork.
The returned metrics include an overall health score, the repository description, the presence of documentation, the detected code of conduct, the detected license, and the presence of ISSUE_TEMPLATE, PULL_REQUEST_TEMPLATE, README, and CONTRIBUTING files.
The health_percentage
score is defined as a percentage of how many of
the recommended community health files are present. For more information, see
"About community profiles for public repositories."
content_reports_enabled
is only returned for organization-owned repositories.
resources
Resources
@spec get_content(String.t(), String.t(), String.t(), keyword()) :: {:ok, GitHub.Content.File.t() | GitHub.Content.Submodule.t() | GitHub.Content.Symlink.t() | GitHub.Content.Tree.t() | [map()]} | {:error, GitHub.Error.t()}
Get repository content
Gets the contents of a file or directory in a repository. Specify the file path or directory in :path
. If you omit
:path
, you will receive the contents of the repository's root directory. See the description below regarding what the API response includes for directories.
Files and symlinks support a custom media type for retrieving the raw content or rendered HTML (when supported). All content types support a custom media type to ensure the content is returned in a consistent object format.
Notes:
- To get a repository's contents recursively, you can recursively get the tree.
- This API has an upper limit of 1,000 files for a directory. If you need to retrieve more files, use the Git Trees API.
- Download URLs expire and are meant to be used just once. To ensure the download URL does not expire, please use the contents API to obtain a fresh download URL for each download. Size limits: If the requested file's size is:
- 1 MB or smaller: All features of this endpoint are supported.
- Between 1-100 MB: Only the
raw
orobject
custom media types are supported. Both will work as normal, except that when using theobject
media type, thecontent
field will be an empty string and theencoding
field will be"none"
. To get the contents of these larger files, use theraw
media type. - Greater than 100 MB: This endpoint is not supported.
If the content is a directory: The response will be an array of objects, one object for each item in the directory. When listing the contents of a directory, submodules have their "type" specified as "file". Logically, the value should be "submodule". This behavior exists in API v3 for backwards compatibility purposes. In the next major version of the API, the type will be returned as "submodule".
If the content is a symlink:
If the requested :path
points to a symlink, and the symlink's target is a normal file in the repository, then the
API responds with the content of the file (in the format shown in the example. Otherwise, the API responds with an object
describing the symlink itself.
If the content is a submodule:
The submodule_git_url
identifies the location of the submodule repository, and the sha
identifies a specific
commit within the submodule repository. Git uses the given URL when cloning the submodule repository, and checks out
the submodule at that specific commit.
If the submodule repository is not hosted on github.com, the Git URLs (git_url
and _links["git"]
) and the
github.com URLs (html_url
and _links["html"]
) will have null values.
options
Options
ref
: The name of the commit/branch/tag. Default: the repository’s default branch.
resources
Resources
@spec get_contributors_stats(String.t(), String.t(), keyword()) :: {:ok, map() | [GitHub.ContributorActivity.t()]} | {:error, GitHub.Error.t()}
Get all contributor commit activity
Returns the total
number of commits authored by the contributor. In addition, the response includes a Weekly Hash (weeks
array) with the following information:
-
w
- Start of the week, given as a Unix timestamp. -
a
- Number of additions -
d
- Number of deletions -
c
- Number of commits
resources
Resources
get_custom_deployment_protection_rule(owner, repo, environment_name, protection_rule_id, opts \\ [])
View Source@spec get_custom_deployment_protection_rule( String.t(), String.t(), String.t(), integer(), keyword() ) :: {:ok, GitHub.Deployment.ProtectionRule.t()} | {:error, GitHub.Error.t()}
Get a custom deployment protection rule
Gets an enabled custom deployment protection rule for an environment. Anyone with read access to the repository can use this endpoint. If the repository is private and you want to use a personal access token (classic), you must use an access token with the repo
scope. GitHub Apps and fine-grained personal access tokens must have the actions:read
permission to use this endpoint. For more information about environments, see "Using environments for deployment."
For more information about the app that is providing this custom deployment rule, see GET /apps/{app_slug}
.
resources
Resources
@spec get_deploy_key(String.t(), String.t(), integer(), keyword()) :: {:ok, GitHub.DeployKey.t()} | {:error, GitHub.Error.t()}
Get a deploy key
resources
Resources
@spec get_deployment(String.t(), String.t(), integer(), keyword()) :: {:ok, GitHub.Deployment.t()} | {:error, GitHub.Error.t()}
Get a deployment
resources
Resources
get_deployment_branch_policy(owner, repo, environment_name, branch_policy_id, opts \\ [])
View Source@spec get_deployment_branch_policy( String.t(), String.t(), String.t(), integer(), keyword() ) :: {:ok, GitHub.Deployment.BranchPolicy.t()} | {:error, GitHub.Error.t()}
Get a deployment branch policy
Gets a deployment branch policy for an environment.
Anyone with read access to the repository can use this endpoint. If the repository is private, you must use an access token with the repo
scope. GitHub Apps must have the actions:read
permission to use this endpoint.
resources
Resources
get_deployment_status(owner, repo, deployment_id, status_id, opts \\ [])
View Source@spec get_deployment_status(String.t(), String.t(), integer(), integer(), keyword()) :: {:ok, GitHub.Deployment.Status.t()} | {:error, GitHub.Error.t()}
Get a deployment status
Users with pull access can view a deployment status for a deployment:
resources
Resources
@spec get_environment(String.t(), String.t(), String.t(), keyword()) :: {:ok, GitHub.Environment.t()} | {:error, GitHub.Error.t()}
Get an environment
Note: To get information about name patterns that branches must match in order to deploy to this environment, see "Get a deployment branch policy."
Anyone with read access to the repository can use this endpoint. If the
repository is private, you must use an access token with the repo
scope. GitHub
Apps must have the actions:read
permission to use this endpoint.
resources
Resources
@spec get_latest_pages_build(String.t(), String.t(), keyword()) :: {:ok, GitHub.Pages.Build.t()} | {:error, GitHub.Error.t()}
Get latest Pages build
Gets information about the single most recent build of a GitHub Pages site.
A token with the repo
scope is required. GitHub Apps must have the pages:read
permission.
resources
Resources
@spec get_latest_release(String.t(), String.t(), keyword()) :: {:ok, GitHub.Release.t()} | {:error, GitHub.Error.t()}
Get the latest release
View the latest published full release for the repository.
The latest release is the most recent non-prerelease, non-draft release, sorted by the created_at
attribute. The created_at
attribute is the date of the commit used for the release, and not the date when the release was drafted or published.
resources
Resources
@spec get_org_rule_suite(String.t(), integer(), keyword()) :: {:ok, GitHub.RuleSuite.t()} | {:error, GitHub.Error.t()}
Get an organization rule suite
Gets information about a suite of rule evaluations from within an organization. For more information, see "Managing rulesets for repositories in your organization."
resources
Resources
@spec get_org_rule_suites( String.t(), keyword() ) :: {:ok, [map()]} | {:error, GitHub.Error.t()}
List organization rule suites
Lists suites of rule evaluations at the organization level. For more information, see "Managing rulesets for repositories in your organization."
options
Options
repository_name
: The name of the repository to filter on. When specified, only rule evaluations from this repository will be returned.time_period
: The time period to filter by.For example,
day
will filter for rule suites that occurred in the past 24 hours, andweek
will filter for insights that occurred in the past 7 days (168 hours).actor_name
: The handle for the GitHub user account to filter on. When specified, only rule evaluations triggered by this actor will be returned.rule_suite_result
: The rule results to filter on. When specified, only suites with this result will be returned.per_page
: The number of results per page (max 100).page
: Page number of the results to fetch.
resources
Resources
@spec get_org_ruleset(String.t(), integer(), keyword()) :: {:ok, GitHub.Repository.Ruleset.t()} | {:error, GitHub.Error.t()}
Get an organization repository ruleset
Get a repository ruleset for an organization.
resources
Resources
@spec get_org_rulesets( String.t(), keyword() ) :: {:ok, [GitHub.Repository.Ruleset.t()]} | {:error, GitHub.Error.t()}
Get all organization repository rulesets
Get all the repository rulesets for an organization.
options
Options
per_page
: The number of results per page (max 100).page
: Page number of the results to fetch.
resources
Resources
@spec get_pages(String.t(), String.t(), keyword()) :: {:ok, GitHub.Page.t()} | {:error, GitHub.Error.t()}
Get a GitHub Pages site
Gets information about a GitHub Pages site.
A token with the repo
scope is required. GitHub Apps must have the pages:read
permission.
resources
Resources
@spec get_pages_build(String.t(), String.t(), integer(), keyword()) :: {:ok, GitHub.Pages.Build.t()} | {:error, GitHub.Error.t()}
Get GitHub Pages build
Gets information about a GitHub Pages build.
A token with the repo
scope is required. GitHub Apps must have the pages:read
permission.
resources
Resources
@spec get_pages_health_check(String.t(), String.t(), keyword()) :: {:ok, GitHub.EmptyObject.t() | GitHub.Pages.HealthCheck.t()} | {:error, GitHub.Error.t()}
Get a DNS health check for GitHub Pages
Gets a health check of the DNS settings for the CNAME
record configured for a repository's GitHub Pages.
The first request to this endpoint returns a 202 Accepted
status and starts an asynchronous background task to get the results for the domain. After the background task completes, subsequent requests to this endpoint return a 200 OK
status with the health check results in the response.
To use this endpoint, you must be a repository administrator, maintainer, or have the 'manage GitHub Pages settings' permission. A token with the repo
scope or Pages write permission is required. GitHub Apps must have the administrative:write
and pages:write
permissions.
resources
Resources
@spec get_participation_stats(String.t(), String.t(), keyword()) :: {:ok, GitHub.ParticipationStats.t()} | {:error, GitHub.Error.t()}
Get the weekly commit count
Returns the total commit counts for the owner
and total commit counts in all
. all
is everyone combined, including the owner
in the last 52 weeks. If you'd like to get the commit counts for non-owners, you can subtract owner
from all
.
The array order is oldest week (index 0) to most recent week.
The most recent week is seven days ago at UTC midnight to today at UTC midnight.
resources
Resources
get_pull_request_review_protection(owner, repo, branch, opts \\ [])
View Source@spec get_pull_request_review_protection( String.t(), String.t(), String.t(), keyword() ) :: {:ok, GitHub.ProtectedBranch.PullRequestReview.t()} | {:error, GitHub.Error.t()}
Get pull request review protection
Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.
resources
Resources
@spec get_punch_card_stats(String.t(), String.t(), keyword()) :: {:ok, [[integer()]]} | {:error, GitHub.Error.t()}
Get the hourly commit count for each day
Each array contains the day number, hour number, and number of commits:
-
0-6
: Sunday - Saturday -
0-23
: Hour of day - Number of commits
For example, [2, 14, 25]
indicates that there were 25 total commits, during the 2:00pm hour on Tuesdays. All times are based on the time zone of individual commits.
resources
Resources
@spec get_readme(String.t(), String.t(), keyword()) :: {:ok, GitHub.Content.File.t()} | {:error, GitHub.Error.t()}
Get a repository README
Gets the preferred README for a repository.
READMEs support custom media types for retrieving the raw content or rendered HTML.
options
Options
ref
: The name of the commit/branch/tag. Default: the repository’s default branch.
resources
Resources
@spec get_readme_in_directory(String.t(), String.t(), String.t(), keyword()) :: {:ok, GitHub.Content.File.t()} | {:error, GitHub.Error.t()}
Get a repository README for a directory
Gets the README from a repository directory.
READMEs support custom media types for retrieving the raw content or rendered HTML.
options
Options
ref
: The name of the commit/branch/tag. Default: the repository’s default branch.
resources
Resources
@spec get_release(String.t(), String.t(), integer(), keyword()) :: {:ok, GitHub.Release.t()} | {:error, GitHub.Error.t()}
Get a release
Note: This returns an upload_url
key corresponding to the endpoint for uploading release assets. This key is a hypermedia resource.
resources
Resources
@spec get_release_asset(String.t(), String.t(), integer(), keyword()) :: {:ok, GitHub.Release.Asset.t()} | {:error, GitHub.Error.t()}
Get a release asset
To download the asset's binary content, set the Accept
header of the request to application/octet-stream
. The API will either redirect the client to the location, or stream it directly if possible. API clients should handle both a 200
or 302
response.
resources
Resources
@spec get_release_by_tag(String.t(), String.t(), String.t(), keyword()) :: {:ok, GitHub.Release.t()} | {:error, GitHub.Error.t()}
Get a release by tag name
Get a published release with the specified tag.
resources
Resources
@spec get_repo_rule_suite(String.t(), String.t(), integer(), keyword()) :: {:ok, GitHub.RuleSuite.t()} | {:error, GitHub.Error.t()}
Get a repository rule suite
Gets information about a suite of rule evaluations from within a repository. For more information, see "Managing rulesets for a repository."
resources
Resources
@spec get_repo_rule_suites(String.t(), String.t(), keyword()) :: {:ok, [map()]} | {:error, GitHub.Error.t()}
List repository rule suites
Lists suites of rule evaluations at the repository level. For more information, see "Managing rulesets for a repository."
options
Options
ref
: The name of the ref. Cannot contain wildcard characters. When specified, only rule evaluations triggered for this ref will be returned.time_period
: The time period to filter by.For example,
day
will filter for rule suites that occurred in the past 24 hours, andweek
will filter for insights that occurred in the past 7 days (168 hours).actor_name
: The handle for the GitHub user account to filter on. When specified, only rule evaluations triggered by this actor will be returned.rule_suite_result
: The rule results to filter on. When specified, only suites with this result will be returned.per_page
: The number of results per page (max 100).page
: Page number of the results to fetch.
resources
Resources
@spec get_repo_ruleset(String.t(), String.t(), integer(), keyword()) :: {:ok, GitHub.Repository.Ruleset.t()} | {:error, GitHub.Error.t()}
Get a repository ruleset
Get a ruleset for a repository.
options
Options
includes_parents
: Include rulesets configured at higher levels that apply to this repository
resources
Resources
@spec get_repo_rulesets(String.t(), String.t(), keyword()) :: {:ok, [GitHub.Repository.Ruleset.t()]} | {:error, GitHub.Error.t()}
Get all repository rulesets
Get all the rulesets for a repository.
options
Options
per_page
: The number of results per page (max 100).page
: Page number of the results to fetch.includes_parents
: Include rulesets configured at higher levels that apply to this repository
resources
Resources
@spec get_status_checks_protection(String.t(), String.t(), String.t(), keyword()) :: {:ok, GitHub.StatusCheckPolicy.t()} | {:error, GitHub.Error.t()}
Get status checks protection
Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.
resources
Resources
get_teams_with_access_to_protected_branch(owner, repo, branch, opts \\ [])
View Source@spec get_teams_with_access_to_protected_branch( String.t(), String.t(), String.t(), keyword() ) :: {:ok, [GitHub.Team.t()]} | {:error, GitHub.Error.t()}
Get teams with access to the protected branch
Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.
Lists the teams who have push access to this branch. The list includes child teams.
resources
Resources
@spec get_top_paths(String.t(), String.t(), keyword()) :: {:ok, [GitHub.Content.Traffic.t()]} | {:error, GitHub.Error.t()}
Get top referral paths
Get the top 10 popular contents over the last 14 days.
resources
Resources
@spec get_top_referrers(String.t(), String.t(), keyword()) :: {:ok, [GitHub.ReferrerTraffic.t()]} | {:error, GitHub.Error.t()}
Get top referral sources
Get the top 10 referrers over the last 14 days.
resources
Resources
get_users_with_access_to_protected_branch(owner, repo, branch, opts \\ [])
View Source@spec get_users_with_access_to_protected_branch( String.t(), String.t(), String.t(), keyword() ) :: {:ok, [GitHub.User.simple()]} | {:error, GitHub.Error.t()}
Get users with access to the protected branch
Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.
Lists the people who have push access to this branch.
resources
Resources
@spec get_views(String.t(), String.t(), keyword()) :: {:ok, GitHub.ViewTraffic.t()} | {:error, GitHub.Error.t()}
Get page views
Get the total number of views and breakdown per day or week for the last 14 days. Timestamps are aligned to UTC midnight of the beginning of the day or week. Week begins on Monday.
options
Options
per
: The time frame to display results for.
resources
Resources
@spec get_webhook(String.t(), String.t(), integer(), keyword()) :: {:ok, GitHub.Hook.t()} | {:error, GitHub.Error.t()}
Get a repository webhook
Returns a webhook configured in a repository. To get only the webhook config
properties, see "Get a webhook configuration for a repository."
resources
Resources
@spec get_webhook_config_for_repo(String.t(), String.t(), integer(), keyword()) :: {:ok, GitHub.Webhook.Config.t()} | {:error, GitHub.Error.t()}
Get a webhook configuration for a repository
Returns the webhook configuration for a repository. To get more information about the webhook, including the active
state and events
, use "Get a repository webhook."
Access tokens must have the read:repo_hook
or repo
scope, and GitHub Apps must have the repository_hooks:read
permission.
resources
Resources
get_webhook_delivery(owner, repo, hook_id, delivery_id, opts \\ [])
View Source@spec get_webhook_delivery(String.t(), String.t(), integer(), integer(), keyword()) :: {:ok, GitHub.Hook.Delivery.t()} | {:error, GitHub.Error.t()}
Get a delivery for a repository webhook
Returns a delivery for a webhook configured in a repository.
resources
Resources
@spec list_activities(String.t(), String.t(), keyword()) :: {:ok, [GitHub.Activity.t()]} | {:error, GitHub.Error.t()}
List repository activities
Lists a detailed history of changes to a repository, such as pushes, merges, force pushes, and branch changes, and associates these changes with commits and users.
For more information about viewing repository activity, see "Viewing repository activity."
options
Options
direction
: The direction to sort the results by.per_page
: The number of results per page (max 100).before
: A cursor, as given in the Link header. If specified, the query only searches for results before this cursor.after
: A cursor, as given in the Link header. If specified, the query only searches for results after this cursor.ref
: The Git reference for the activities you want to list.The
ref
for a branch can be formatted either asrefs/heads/BRANCH_NAME
orBRANCH_NAME
, whereBRANCH_NAME
is the name of your branch.actor
: The GitHub username to use to filter by the actor who performed the activity.time_period
: The time period to filter by.For example,
day
will filter for activity that occurred in the past 24 hours, andweek
will filter for activity that occurred in the past 7 days (168 hours).activity_type
: The activity type to filter by.For example, you can choose to filter by "force_push", to see all force pushes to the repository.
resources
Resources
@spec list_autolinks(String.t(), String.t(), keyword()) :: {:ok, [GitHub.Autolink.t()]} | {:error, GitHub.Error.t()}
List all autolinks of a repository
This returns a list of autolinks configured for the given repository.
Information about autolinks are only available to repository administrators.
options
Options
page
: Page number of the results to fetch.
resources
Resources
@spec list_branches(String.t(), String.t(), keyword()) :: {:ok, [GitHub.ShortBranch.t()]} | {:error, GitHub.Error.t()}
List branches
options
Options
protected
: Setting totrue
returns only protected branches. When set tofalse
, only unprotected branches are returned. Omitting this parameter returns all branches.per_page
: The number of results per page (max 100).page
: Page number of the results to fetch.
resources
Resources
list_branches_for_head_commit(owner, repo, commit_sha, opts \\ [])
View Source@spec list_branches_for_head_commit(String.t(), String.t(), String.t(), keyword()) :: {:ok, [GitHub.Branch.Short.t()]} | {:error, GitHub.Error.t()}
List branches for HEAD commit
Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.
Returns all branches where the given commit SHA is the HEAD, or latest commit for the branch.
resources
Resources
@spec list_collaborators(String.t(), String.t(), keyword()) :: {:ok, [GitHub.Collaborator.t()]} | {:error, GitHub.Error.t()}
List repository collaborators
For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners. Organization members with write, maintain, or admin privileges on the organization-owned repository can use this endpoint.
Team members will include the members of child teams.
You must authenticate using an access token with the read:org
and repo
scopes with push access to use this
endpoint. GitHub Apps must have the members
organization permission and metadata
repository permission to use this
endpoint.
options
Options
affiliation
: Filter collaborators returned by their affiliation.outside
means all outside collaborators of an organization-owned repository.direct
means all collaborators with permissions to an organization-owned repository, regardless of organization membership status.all
means all collaborators the authenticated user can see.permission
: Filter collaborators by the permissions they have on the repository. If not specified, all collaborators will be returned.per_page
: The number of results per page (max 100).page
: Page number of the results to fetch.
resources
Resources
@spec list_comments_for_commit(String.t(), String.t(), String.t(), keyword()) :: {:ok, [GitHub.Commit.Comment.t()]} | {:error, GitHub.Error.t()}
List commit comments
Use the :commit_sha
to specify the commit that will have its comments listed.
options
Options
per_page
: The number of results per page (max 100).page
: Page number of the results to fetch.
resources
Resources
@spec list_commit_comments_for_repo(String.t(), String.t(), keyword()) :: {:ok, [GitHub.Commit.Comment.t()]} | {:error, GitHub.Error.t()}
List commit comments for a repository
Commit Comments use these custom media types. You can read more about the use of media types in the API here.
Comments are ordered by ascending ID.
options
Options
per_page
: The number of results per page (max 100).page
: Page number of the results to fetch.
resources
Resources
@spec list_commit_statuses_for_ref(String.t(), String.t(), String.t(), keyword()) :: {:ok, [GitHub.Status.t()]} | {:error, GitHub.Error.t()}
List commit statuses for a reference
Users with pull access in a repository can view commit statuses for a given ref. The ref can be a SHA, a branch name, or a tag name. Statuses are returned in reverse chronological order. The first status in the list will be the latest one.
This resource is also available via a legacy route: GET /repos/:owner/:repo/statuses/:ref
.
options
Options
per_page
: The number of results per page (max 100).page
: Page number of the results to fetch.
resources
Resources
@spec list_commits(String.t(), String.t(), keyword()) :: {:ok, [GitHub.Commit.t()]} | {:error, GitHub.Error.t()}
List commits
Signature verification object
The response will include a verification
object that describes the result of verifying the commit's signature. The following fields are included in the verification
object:
Name | Type | Description |
---|---|---|
verified | boolean | Indicates whether GitHub considers the signature in this commit to be verified. |
reason | string | The reason for verified value. Possible values and their meanings are enumerated in table below. |
signature | string | The signature that was extracted from the commit. |
payload | string | The value that was signed. |
These are the possible values for reason
in the verification
object:
Value | Description |
---|---|
expired_key | The key that made the signature is expired. |
not_signing_key | The "signing" flag is not among the usage flags in the GPG key that made the signature. |
gpgverify_error | There was an error communicating with the signature verification service. |
gpgverify_unavailable | The signature verification service is currently unavailable. |
unsigned | The object does not include a signature. |
unknown_signature_type | A non-PGP signature was found in the commit. |
no_user | No user was associated with the committer email address in the commit. |
unverified_email | The committer email address in the commit was associated with a user, but the email address is not verified on their account. |
bad_email | The committer email address in the commit is not included in the identities of the PGP key that made the signature. |
unknown_key | The key that made the signature has not been registered with any user's account. |
malformed_signature | There was an error parsing the signature. |
invalid | The signature could not be cryptographically verified using the key whose key-id was found in the signature. |
valid | None of the above errors applied, so the signature is considered to be verified. |
options
Options
sha
: SHA or branch to start listing commits from. Default: the repository’s default branch (usuallymain
).path
: Only commits containing this file path will be returned.author
: GitHub username or email address to use to filter by commit author.committer
: GitHub username or email address to use to filter by commit committer.since
: Only show results that were last updated after the given time. This is a timestamp in ISO 8601 format:YYYY-MM-DDTHH:MM:SSZ
.until
: Only commits before this date will be returned. This is a timestamp in ISO 8601 format:YYYY-MM-DDTHH:MM:SSZ
.per_page
: The number of results per page (max 100).page
: Page number of the results to fetch.
resources
Resources
@spec list_contributors(String.t(), String.t(), keyword()) :: {:ok, [GitHub.Contributor.t()]} | {:error, GitHub.Error.t()}
List repository contributors
Lists contributors to the specified repository and sorts them by the number of commits per contributor in descending order. This endpoint may return information that is a few hours old because the GitHub REST API caches contributor data to improve performance.
GitHub identifies contributors by author email address. This endpoint groups contribution counts by GitHub user, which includes all associated email addresses. To improve performance, only the first 500 author email addresses in the repository link to GitHub users. The rest will appear as anonymous contributors without associated GitHub user information.
options
Options
anon
: Set to1
ortrue
to include anonymous contributors in results.per_page
: The number of results per page (max 100).page
: Page number of the results to fetch.
resources
Resources
list_custom_deployment_rule_integrations(environment_name, repo, owner, opts \\ [])
View Source@spec list_custom_deployment_rule_integrations( String.t(), String.t(), String.t(), keyword() ) :: {:ok, map()} | {:error, GitHub.Error.t()}
List custom deployment rule integrations available for an environment
Gets all custom deployment protection rule integrations that are available for an environment. Anyone with read access to the repository can use this endpoint. If the repository is private and you want to use a personal access token (classic), you must use an access token with the repo
scope. GitHub Apps and fine-grained personal access tokens must have the actions:read
permission to use this endpoint.
For more information about environments, see "Using environments for deployment."
For more information about the app that is providing this custom deployment rule, see "GET an app".
options
Options
page
: Page number of the results to fetch.per_page
: The number of results per page (max 100).
resources
Resources
@spec list_deploy_keys(String.t(), String.t(), keyword()) :: {:ok, [GitHub.DeployKey.t()]} | {:error, GitHub.Error.t()}
List deploy keys
options
Options
per_page
: The number of results per page (max 100).page
: Page number of the results to fetch.
resources
Resources
list_deployment_branch_policies(owner, repo, environment_name, opts \\ [])
View Source@spec list_deployment_branch_policies(String.t(), String.t(), String.t(), keyword()) :: {:ok, map()} | {:error, GitHub.Error.t()}
List deployment branch policies
Lists the deployment branch policies for an environment.
Anyone with read access to the repository can use this endpoint. If the repository is private, you must use an access token with the repo
scope. GitHub Apps must have the actions:read
permission to use this endpoint.
options
Options
per_page
: The number of results per page (max 100).page
: Page number of the results to fetch.
resources
Resources
@spec list_deployment_statuses(String.t(), String.t(), integer(), keyword()) :: {:ok, [GitHub.Deployment.Status.t()]} | {:error, GitHub.Error.t()}
List deployment statuses
Users with pull access can view deployment statuses for a deployment:
options
Options
per_page
: The number of results per page (max 100).page
: Page number of the results to fetch.
resources
Resources
@spec list_deployments(String.t(), String.t(), keyword()) :: {:ok, [GitHub.Deployment.t()]} | {:error, GitHub.Error.t()}
List deployments
Simple filtering of deployments is available via query parameters:
options
Options
sha
: The SHA recorded at creation time.ref
: The name of the ref. This can be a branch, tag, or SHA.task
: The name of the task for the deployment (e.g.,deploy
ordeploy:migrations
).environment
: The name of the environment that was deployed to (e.g.,staging
orproduction
).per_page
: The number of results per page (max 100).page
: Page number of the results to fetch.
resources
Resources
@spec list_for_authenticated_user(keyword()) :: {:ok, [GitHub.Repository.t()]} | {:error, GitHub.Error.t()}
List repositories for the authenticated user
Lists repositories that the authenticated user has explicit permission (:read
, :write
, or :admin
) to access.
The authenticated user has explicit permission to access repositories they own, repositories where they are a collaborator, and repositories that they can access through an organization membership.
options
Options
visibility
: Limit results to repositories with the specified visibility.affiliation
: Comma-separated list of values. Can include:owner
: Repositories that are owned by the authenticated user.collaborator
: Repositories that the user has been added to as a collaborator.organization_member
: Repositories that the user has access to through being a member of an organization. This includes every repository on every team that the user is on.
type
: Limit results to repositories of the specified type. Will cause a422
error if used in the same request as visibility or affiliation.sort
: The property to sort the results by.direction
: The order to sort by. Default:asc
when usingfull_name
, otherwisedesc
.per_page
: The number of results per page (max 100).page
: Page number of the results to fetch.since
: Only show repositories updated after the given time. This is a timestamp in ISO 8601 format:YYYY-MM-DDTHH:MM:SSZ
.before
: Only show repositories updated before the given time. This is a timestamp in ISO 8601 format:YYYY-MM-DDTHH:MM:SSZ
.
resources
Resources
@spec list_for_org( String.t(), keyword() ) :: {:ok, [GitHub.Repository.minimal()]} | {:error, GitHub.Error.t()}
List organization repositories
Lists repositories for the specified organization.
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."
options
Options
type
: Specifies the types of repositories you want returned.sort
: The property to sort the results by.direction
: The order to sort by. Default:asc
when usingfull_name
, otherwisedesc
.per_page
: The number of results per page (max 100).page
: Page number of the results to fetch.
resources
Resources
@spec list_for_user( String.t(), keyword() ) :: {:ok, [GitHub.Repository.minimal()]} | {:error, GitHub.Error.t()}
List repositories for a user
Lists public repositories for the specified user. Note: For GitHub AE, this endpoint will list internal repositories for the specified user.
options
Options
type
: Limit results to repositories of the specified type.sort
: The property to sort the results by.direction
: The order to sort by. Default:asc
when usingfull_name
, otherwisedesc
.per_page
: The number of results per page (max 100).page
: Page number of the results to fetch.
resources
Resources
@spec list_forks(String.t(), String.t(), keyword()) :: {:ok, [GitHub.Repository.minimal()]} | {:error, GitHub.Error.t()}
List forks
options
Options
sort
: The sort order.stargazers
will sort by star count.per_page
: The number of results per page (max 100).page
: Page number of the results to fetch.
resources
Resources
@spec list_invitations(String.t(), String.t(), keyword()) :: {:ok, [GitHub.Repository.Invitation.t()]} | {:error, GitHub.Error.t()}
List repository invitations
When authenticating as a user with admin rights to a repository, this endpoint will list all currently open repository invitations.
options
Options
per_page
: The number of results per page (max 100).page
: Page number of the results to fetch.
resources
Resources
@spec list_invitations_for_authenticated_user(keyword()) :: {:ok, [GitHub.Repository.Invitation.t()]} | {:error, GitHub.Error.t()}
List repository invitations for the authenticated user
When authenticating as a user, this endpoint will list all currently open repository invitations for that user.
options
Options
per_page
: The number of results per page (max 100).page
: Page number of the results to fetch.
resources
Resources
@spec list_languages(String.t(), String.t(), keyword()) :: {:ok, GitHub.Language.t()} | {:error, GitHub.Error.t()}
List repository languages
Lists languages for the specified repository. The value shown for each language is the number of bytes of code written in that language.
resources
Resources
@spec list_pages_builds(String.t(), String.t(), keyword()) :: {:ok, [GitHub.Pages.Build.t()]} | {:error, GitHub.Error.t()}
List GitHub Pages builds
Lists builts of a GitHub Pages site.
A token with the repo
scope is required. GitHub Apps must have the pages:read
permission.
options
Options
per_page
: The number of results per page (max 100).page
: Page number of the results to fetch.
resources
Resources
@spec list_public(keyword()) :: {:ok, [GitHub.Repository.minimal()]} | {:error, GitHub.Error.t()}
List public repositories
Lists all public repositories in the order that they were created.
Note:
- For GitHub Enterprise Server, this endpoint will only list repositories available to all users on the enterprise.
- Pagination is powered exclusively by the
since
parameter. Use the Link header to get the URL for the next page of repositories.
options
Options
since
: A repository ID. Only return repositories with an ID greater than this ID.
resources
Resources
list_pull_requests_associated_with_commit(owner, repo, commit_sha, opts \\ [])
View Source@spec list_pull_requests_associated_with_commit( String.t(), String.t(), String.t(), keyword() ) :: {:ok, [GitHub.PullRequest.simple()]} | {:error, GitHub.Error.t()}
List pull requests associated with a commit
Lists the merged pull request that introduced the commit to the repository. If the commit is not present in the default branch, will only return open pull requests associated with the commit.
To list the open or merged pull requests associated with a branch, you can set the commit_sha
parameter to the branch name.
options
Options
per_page
: The number of results per page (max 100).page
: Page number of the results to fetch.
resources
Resources
@spec list_release_assets(String.t(), String.t(), integer(), keyword()) :: {:ok, [GitHub.Release.Asset.t()]} | {:error, GitHub.Error.t()}
List release assets
options
Options
per_page
: The number of results per page (max 100).page
: Page number of the results to fetch.
resources
Resources
@spec list_releases(String.t(), String.t(), keyword()) :: {:ok, [GitHub.Release.t()]} | {:error, GitHub.Error.t()}
List releases
This returns a list of releases, which does not include regular Git tags that have not been associated with a release. To get a list of Git tags, use the Repository Tags API.
Information about published releases are available to everyone. Only users with push access will receive listings for draft releases.
options
Options
per_page
: The number of results per page (max 100).page
: Page number of the results to fetch.
resources
Resources
@spec list_tag_protection(String.t(), String.t(), keyword()) :: {:ok, [GitHub.TagProtection.t()]} | {:error, GitHub.Error.t()}
List tag protection states for a repository
This returns the tag protection states of a repository.
This information is only available to repository administrators.
resources
Resources
@spec list_tags(String.t(), String.t(), keyword()) :: {:ok, [GitHub.Tag.t()]} | {:error, GitHub.Error.t()}
List repository tags
options
Options
per_page
: The number of results per page (max 100).page
: Page number of the results to fetch.
resources
Resources
@spec list_teams(String.t(), String.t(), keyword()) :: {:ok, [GitHub.Team.t()]} | {:error, GitHub.Error.t()}
List repository teams
Lists the teams that have access to the specified repository and that are also visible to the authenticated user.
For a public repository, a team is listed only if that team added the public repository explicitly.
Personal access tokens require the following scopes:
public_repo
to call this endpoint on a public repositoryrepo
to call this endpoint on a private repository (this scope also includes public repositories)
This endpoint is not compatible with fine-grained personal access tokens.
options
Options
per_page
: The number of results per page (max 100).page
: Page number of the results to fetch.
resources
Resources
@spec list_webhook_deliveries(String.t(), String.t(), integer(), keyword()) :: {:ok, [GitHub.Hook.DeliveryItem.t()]} | {:error, GitHub.Error.t()}
List deliveries for a repository webhook
Returns a list of webhook deliveries for a webhook configured in a repository.
options
Options
per_page
: The number of results per page (max 100).cursor
: Used for pagination: the starting delivery from which the page of deliveries is fetched. Refer to thelink
header for the next and previous page cursors.redelivery
resources
Resources
@spec list_webhooks(String.t(), String.t(), keyword()) :: {:ok, [GitHub.Hook.t()]} | {:error, GitHub.Error.t()}
List repository webhooks
Lists webhooks for a repository. last response
may return null if there have not been any deliveries within 30 days.
options
Options
per_page
: The number of results per page (max 100).page
: Page number of the results to fetch.
resources
Resources
@spec merge(String.t(), String.t(), map(), keyword()) :: {:ok, GitHub.Commit.t()} | {:error, GitHub.Error.t()}
Merge a branch
resources
Resources
@spec merge_upstream(String.t(), String.t(), map(), keyword()) :: {:ok, GitHub.MergedUpstream.t()} | {:error, GitHub.Error.t()}
Sync a fork branch with the upstream repository
Sync a branch of a forked repository to keep it up-to-date with the upstream repository.
resources
Resources
@spec ping_webhook(String.t(), String.t(), integer(), keyword()) :: :ok | {:error, GitHub.Error.t()}
Ping a repository webhook
This will trigger a ping event to be sent to the hook.
resources
Resources
redeliver_webhook_delivery(owner, repo, hook_id, delivery_id, opts \\ [])
View Source@spec redeliver_webhook_delivery( String.t(), String.t(), integer(), integer(), keyword() ) :: {:ok, map()} | {:error, GitHub.Error.t()}
Redeliver a delivery for a repository webhook
Redeliver a webhook delivery for a webhook configured in a repository.
resources
Resources
remove_app_access_restrictions(owner, repo, branch, body, opts \\ [])
View Source@spec remove_app_access_restrictions( String.t(), String.t(), String.t(), map() | [String.t()], keyword() ) :: {:ok, [GitHub.App.t()]} | {:error, GitHub.Error.t()}
Remove app access restrictions
Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.
Removes the ability of an app to push to this branch. Only installed GitHub Apps with write
access to the contents
permission can be added as authorized actors on a protected branch.
resources
Resources
@spec remove_collaborator(String.t(), String.t(), String.t(), keyword()) :: :ok | {:error, GitHub.Error.t()}
Remove a repository collaborator
Removes a collaborator from a repository.
To use this endpoint, the authenticated user must either be an administrator of the repository or target themselves for removal.
This endpoint also:
- Cancels any outstanding invitations
- Unasigns the user from any issues
- Removes access to organization projects if the user is not an organization member and is not a collaborator on any other organization repositories.
- Unstars the repository
- Updates access permissions to packages
Removing a user as a collaborator has the following effects on forks:
- If the user had access to a fork through their membership to this repository, the user will also be removed from the fork.
- If the user had their own fork of the repository, the fork will be deleted.
- If the user still has read access to the repository, open pull requests by this user from a fork will be denied.
Note: A user can still have access to the repository through organization permissions like base repository permissions.
Although the API responds immediately, the additional permission updates might take some extra time to complete in the background.
For more information on fork permissions, see "About permissions and visibility of forks".
resources
Resources
remove_status_check_contexts(owner, repo, branch, body, opts \\ [])
View Source@spec remove_status_check_contexts( String.t(), String.t(), String.t(), map() | [String.t()], keyword() ) :: {:ok, [String.t()]} | {:error, GitHub.Error.t()}
Remove status check contexts
Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.
resources
Resources
@spec remove_status_check_protection(String.t(), String.t(), String.t(), keyword()) :: :ok | {:error, GitHub.Error.t()}
Remove status check protection
Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.
resources
Resources
remove_team_access_restrictions(owner, repo, branch, body, opts \\ [])
View Source@spec remove_team_access_restrictions( String.t(), String.t(), String.t(), map() | [String.t()], keyword() ) :: {:ok, [GitHub.Team.t()]} | {:error, GitHub.Error.t()}
Remove team access restrictions
Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.
Removes the ability of a team to push to this branch. You can also remove push access for child teams.
resources
Resources
remove_user_access_restrictions(owner, repo, branch, body, opts \\ [])
View Source@spec remove_user_access_restrictions( String.t(), String.t(), String.t(), map() | [String.t()], keyword() ) :: {:ok, [GitHub.User.simple()]} | {:error, GitHub.Error.t()}
Remove user access restrictions
Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.
Removes the ability of a user to push to this branch.
Type | Description |
---|---|
array | Usernames of the people who should no longer have push access. Note: The list of users, apps, and teams in total is limited to 100 items. |
resources
Resources
@spec rename_branch(String.t(), String.t(), String.t(), map(), keyword()) :: {:ok, GitHub.Branch.WithProtection.t()} | {:error, GitHub.Error.t()}
Rename a branch
Renames a branch in a repository.
Note: Although the API responds immediately, the branch rename process might take some extra time to complete in the background. You won't be able to push to the old branch name while the rename process is in progress. For more information, see "Renaming a branch".
The permissions required to use this endpoint depends on whether you are renaming the default branch.
To rename a non-default branch:
- Users must have push access.
- GitHub Apps must have the
contents:write
repository permission.
To rename the default branch:
- Users must have admin or owner permissions.
- GitHub Apps must have the
administration:write
repository permission.
resources
Resources
@spec replace_all_topics(String.t(), String.t(), map(), keyword()) :: {:ok, GitHub.Topic.t()} | {:error, GitHub.Error.t()}
Replace all repository topics
resources
Resources
@spec request_pages_build(String.t(), String.t(), keyword()) :: {:ok, GitHub.Pages.BuildStatus.t()} | {:error, GitHub.Error.t()}
Request a GitHub Pages build
You can request that your site be built from the latest revision on the default branch. This has the same effect as pushing a commit to your default branch, but does not require an additional commit. Manually triggering page builds can be helpful when diagnosing build warnings and failures.
Build requests are limited to one concurrent build per repository and one concurrent build per requester. If you request a build while another is still in progress, the second request will be queued until the first completes.
resources
Resources
@spec set_admin_branch_protection(String.t(), String.t(), String.t(), keyword()) :: {:ok, GitHub.ProtectedBranch.AdminEnforced.t()} | {:error, GitHub.Error.t()}
Set admin branch protection
Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.
Adding admin enforcement requires admin or owner permissions to the repository and branch protection to be enabled.
resources
Resources
set_app_access_restrictions(owner, repo, branch, body, opts \\ [])
View Source@spec set_app_access_restrictions( String.t(), String.t(), String.t(), map() | [String.t()], keyword() ) :: {:ok, [GitHub.App.t()]} | {:error, GitHub.Error.t()}
Set app access restrictions
Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.
Replaces the list of apps that have push access to this branch. This removes all apps that previously had push access and grants push access to the new list of apps. Only installed GitHub Apps with write
access to the contents
permission can be added as authorized actors on a protected branch.
resources
Resources
@spec set_status_check_contexts( String.t(), String.t(), String.t(), map() | [String.t()], keyword() ) :: {:ok, [String.t()]} | {:error, GitHub.Error.t()}
Set status check contexts
Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.
resources
Resources
set_team_access_restrictions(owner, repo, branch, body, opts \\ [])
View Source@spec set_team_access_restrictions( String.t(), String.t(), String.t(), map() | [String.t()], keyword() ) :: {:ok, [GitHub.Team.t()]} | {:error, GitHub.Error.t()}
Set team access restrictions
Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.
Replaces the list of teams that have push access to this branch. This removes all teams that previously had push access and grants push access to the new list of teams. Team restrictions include child teams.
resources
Resources
set_user_access_restrictions(owner, repo, branch, body, opts \\ [])
View Source@spec set_user_access_restrictions( String.t(), String.t(), String.t(), map() | [String.t()], keyword() ) :: {:ok, [GitHub.User.simple()]} | {:error, GitHub.Error.t()}
Set user access restrictions
Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.
Replaces the list of people that have push access to this branch. This removes all people that previously had push access and grants push access to the new list of people.
Type | Description |
---|---|
array | Usernames for people who can have push access. Note: The list of users, apps, and teams in total is limited to 100 items. |
resources
Resources
@spec test_push_webhook(String.t(), String.t(), integer(), keyword()) :: :ok | {:error, GitHub.Error.t()}
Test the push repository webhook
This will trigger the hook with the latest push to the current repository if the hook is subscribed to push
events. If the hook is not subscribed to push
events, the server will respond with 204 but no test POST will be generated.
Note: Previously /repos/:owner/:repo/hooks/:hook_id/test
resources
Resources
@spec transfer(String.t(), String.t(), map(), keyword()) :: {:ok, GitHub.Repository.minimal()} | {:error, GitHub.Error.t()}
Transfer a repository
A transfer request will need to be accepted by the new owner when transferring a personal repository to another user. The response will contain the original owner
, and the transfer will continue asynchronously. For more details on the requirements to transfer personal and organization-owned repositories, see about repository transfers.
You must use a personal access token (classic) or an OAuth token for this endpoint. An installation access token or a fine-grained personal access token cannot be used because they are only granted access to a single account.
resources
Resources
@spec update(String.t(), String.t(), map(), keyword()) :: {:ok, GitHub.Repository.full()} | {:error, GitHub.Error.t()}
Update a repository
Note: To edit a repository's topics, use the Replace all repository topics endpoint.
resources
Resources
@spec update_branch_protection(String.t(), String.t(), String.t(), map(), keyword()) :: {:ok, GitHub.ProtectedBranch.t()} | {:error, GitHub.Error.t()}
Update branch protection
Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.
Protecting a branch requires admin or owner permissions to the repository.
Note: Passing new arrays of users
and teams
replaces their previous values.
Note: The list of users, apps, and teams in total is limited to 100 items.
resources
Resources
@spec update_commit_comment(String.t(), String.t(), integer(), map(), keyword()) :: {:ok, GitHub.Commit.Comment.t()} | {:error, GitHub.Error.t()}
Update a commit comment
resources
Resources
update_deployment_branch_policy(owner, repo, environment_name, branch_policy_id, body, opts \\ [])
View Source@spec update_deployment_branch_policy( String.t(), String.t(), String.t(), integer(), GitHub.Deployment.BranchPolicyNamePattern.t(), keyword() ) :: {:ok, GitHub.Deployment.BranchPolicy.t()} | {:error, GitHub.Error.t()}
Update a deployment branch policy
Updates a deployment branch policy for an environment.
You must authenticate using an access token with the repo
scope to use this endpoint. GitHub Apps must have the administration:write
permission for the repository to use this endpoint.
resources
Resources
update_information_about_pages_site(owner, repo, body, opts \\ [])
View Source@spec update_information_about_pages_site(String.t(), String.t(), map(), keyword()) :: :ok | {:error, GitHub.Error.t()}
Update information about a GitHub Pages site
Updates information for a GitHub Pages site. For more information, see "About GitHub Pages.
To use this endpoint, you must be a repository administrator, maintainer, or have the 'manage GitHub Pages settings' permission. A token with the repo
scope or Pages write permission is required. GitHub Apps must have the administration:write
and pages:write
permissions.
resources
Resources
@spec update_invitation(String.t(), String.t(), integer(), map(), keyword()) :: {:ok, GitHub.Repository.Invitation.t()} | {:error, GitHub.Error.t()}
Update a repository invitation
resources
Resources
@spec update_org_ruleset(String.t(), integer(), map(), keyword()) :: {:ok, GitHub.Repository.Ruleset.t()} | {:error, GitHub.Error.t()}
Update an organization repository ruleset
Update a ruleset for an organization.
resources
Resources
update_pull_request_review_protection(owner, repo, branch, body, opts \\ [])
View Source@spec update_pull_request_review_protection( String.t(), String.t(), String.t(), map(), keyword() ) :: {:ok, GitHub.ProtectedBranch.PullRequestReview.t()} | {:error, GitHub.Error.t()}
Update pull request review protection
Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.
Updating pull request review enforcement requires admin or owner permissions to the repository and branch protection to be enabled.
Note: Passing new arrays of users
and teams
replaces their previous values.
resources
Resources
@spec update_release(String.t(), String.t(), integer(), map(), keyword()) :: {:ok, GitHub.Release.t()} | {:error, GitHub.Error.t()}
Update a release
Users with push access to the repository can edit a release.
resources
Resources
@spec update_release_asset(String.t(), String.t(), integer(), map(), keyword()) :: {:ok, GitHub.Release.Asset.t()} | {:error, GitHub.Error.t()}
Update a release asset
Users with push access to the repository can edit a release asset.
resources
Resources
@spec update_repo_ruleset(String.t(), String.t(), integer(), map(), keyword()) :: {:ok, GitHub.Repository.Ruleset.t()} | {:error, GitHub.Error.t()}
Update a repository ruleset
Update a ruleset for a repository.
resources
Resources
update_status_check_protection(owner, repo, branch, body, opts \\ [])
View Source@spec update_status_check_protection( String.t(), String.t(), String.t(), map(), keyword() ) :: {:ok, GitHub.StatusCheckPolicy.t()} | {:error, GitHub.Error.t()}
Update status check protection
Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see GitHub's products in the GitHub Help documentation.
Updating required status checks requires admin or owner permissions to the repository and branch protection to be enabled.
resources
Resources
@spec update_webhook(String.t(), String.t(), integer(), map(), keyword()) :: {:ok, GitHub.Hook.t()} | {:error, GitHub.Error.t()}
Update a repository webhook
Updates a webhook configured in a repository. If you previously had a secret
set, you must provide the same secret
or set a new secret
or the secret will be removed. If you are only updating individual webhook config
properties, use "Update a webhook configuration for a repository."
resources
Resources
update_webhook_config_for_repo(owner, repo, hook_id, body, opts \\ [])
View Source@spec update_webhook_config_for_repo( String.t(), String.t(), integer(), map(), keyword() ) :: {:ok, GitHub.Webhook.Config.t()} | {:error, GitHub.Error.t()}
Update a webhook configuration for a repository
Updates the webhook configuration for a repository. To update more information about the webhook, including the active
state and events
, use "Update a repository webhook."
Access tokens must have the write:repo_hook
or repo
scope, and GitHub Apps must have the repository_hooks:write
permission.
resources
Resources
@spec upload_release_asset(String.t(), String.t(), integer(), String.t(), keyword()) :: {:ok, GitHub.Release.Asset.t()} | {:error, GitHub.Error.t()}
Upload a release asset
This endpoint makes use of a Hypermedia relation to determine which URL to access. The endpoint you call to upload release assets is specific to your release. Use the upload_url
returned in
the response of the Create a release endpoint to upload a release asset.
You need to use an HTTP client which supports SNI to make calls to this endpoint.
Most libraries will set the required Content-Length
header automatically. Use the required Content-Type
header to provide the media type of the asset. For a list of media types, see Media Types. For example:
application/zip
GitHub expects the asset data in its raw binary form, rather than JSON. You will send the raw binary content of the asset as the request body. Everything else about the endpoint is the same as the rest of the API. For example, you'll still need to pass your authentication to be able to upload an asset.
When an upstream failure occurs, you will receive a 502 Bad Gateway
status. This may leave an empty asset with a state of starter
. It can be safely deleted.
Notes:
- GitHub renames asset filenames that have special characters, non-alphanumeric characters, and leading or trailing periods. The "List release assets" endpoint lists the renamed filenames. For more information and help, contact GitHub Support.
- To find the
release_id
query theGET /repos/{owner}/{repo}/releases/latest
endpoint. - If you upload an asset with the same filename as another uploaded asset, you'll receive an error and must delete the old file before you can re-upload the new asset.
options
Options
name
label