Struct Caller

Source
pub struct Caller<Sleep>
where Sleep: Fn(Duration),
{ /* private fields */ }

Implementations§

Source§

impl<Sleep> Caller<Sleep>
where Sleep: Fn(Duration),

Source

pub fn new(client: Client, config: Configuration, sleep: Sleep) -> Caller<Sleep>

Source

pub fn meta_root(&self) -> Result<Response, ApiError>

GitHub API Root

Get Hypermedia links to resources accessible in GitHub’s REST API

API method documentation

Source

pub fn apps_get_authenticated(&self) -> Result<Response, ApiError>

Get the authenticated app

Returns the GitHub App associated with the authentication credentials used. To see how many app installations are associated with this GitHub App, see the installations_count in the response. For more details about your app’s installations, see the “List installations for the authenticated app” endpoint.

You must use a JWT to access this endpoint.

API method documentation

Source

pub fn apps_create_from_manifest( &self, code: &str, ) -> Result<Response, ApiError>

Create a GitHub App from a manifest

Use this endpoint to complete the handshake necessary when implementing the GitHub App Manifest flow. When you create a GitHub App with the manifest flow, you receive a temporary code used to retrieve the GitHub App’s id, pem (private key), and webhook_secret.

API method documentation

Source

pub fn apps_get_webhook_config_for_app(&self) -> Result<Response, ApiError>

Get a webhook configuration for an app

Returns the webhook configuration for a GitHub App. For more information about configuring a webhook for your app, see “Creating a GitHub App.”

You must use a JWT to access this endpoint.

API method documentation

Source

pub fn apps_update_webhook_config_for_app<Content>( &self, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Update a webhook configuration for an app

Updates the webhook configuration for a GitHub App. For more information about configuring a webhook for your app, see “Creating a GitHub App.”

You must use a JWT to access this endpoint.

API method documentation

§Content
Source

pub fn apps_list_webhook_deliveries( &self, per_page: Option<i64>, cursor: Option<&str>, ) -> Result<Response, ApiError>

List deliveries for an app webhook

Returns a list of webhook deliveries for the webhook configured for a GitHub App.

You must use a JWT to access this endpoint.

API method documentation

Source

pub fn apps_get_webhook_delivery( &self, delivery_id: i64, ) -> Result<Response, ApiError>

Get a delivery for an app webhook

Returns a delivery for the webhook configured for a GitHub App.

You must use a JWT to access this endpoint.

API method documentation

Source

pub fn apps_redeliver_webhook_delivery( &self, delivery_id: i64, ) -> Result<Response, ApiError>

Redeliver a delivery for an app webhook

Redeliver a delivery for the webhook configured for a GitHub App.

You must use a JWT to access this endpoint.

API method documentation

Source

pub fn apps_list_installations( &self, per_page: Option<i64>, page: Option<i64>, since: Option<&str>, outdated: Option<&str>, ) -> Result<Response, ApiError>

List installations for the authenticated app

You must use a JWT to access this endpoint.

The permissions the installation has are included under the permissions key.

API method documentation

Source

pub fn apps_get_installation( &self, installation_id: i64, ) -> Result<Response, ApiError>

Get an installation for the authenticated app

Enables an authenticated GitHub App to find an installation’s information using the installation id.

You must use a JWT to access this endpoint.

API method documentation

Source

pub fn apps_delete_installation( &self, installation_id: i64, ) -> Result<Response, ApiError>

Delete an installation for the authenticated app

Uninstalls a GitHub App on a user, organization, or business account. If you prefer to temporarily suspend an app’s access to your account’s resources, then we recommend the “Suspend an app installation” endpoint.

You must use a JWT to access this endpoint.

API method documentation

Source

pub fn apps_create_installation_access_token<Content>( &self, installation_id: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Create an installation access token for an app

Creates an installation access token that enables a GitHub App to make authenticated API requests for the app’s installation on an organization or individual account. Installation tokens expire one hour from the time you create them. Using an expired token produces a status code of 401 - Unauthorized, and requires creating a new installation token. By default the installation token has access to all repositories that the installation can access. To restrict the access to specific repositories, you can provide the repository_ids when creating the token. When you omit repository_ids, the response does not contain the repositories key.

You must use a JWT to access this endpoint.

API method documentation

§Content
Source

pub fn apps_suspend_installation( &self, installation_id: i64, ) -> Result<Response, ApiError>

Suspend an app installation

Suspends a GitHub App on a user, organization, or business account, which blocks the app from accessing the account’s resources. When a GitHub App is suspended, the app’s access to the GitHub API or webhook events is blocked for that account.

You must use a JWT to access this endpoint.

API method documentation

Source

pub fn apps_unsuspend_installation( &self, installation_id: i64, ) -> Result<Response, ApiError>

Unsuspend an app installation

Removes a GitHub App installation suspension.

You must use a JWT to access this endpoint.

API method documentation

Source

pub fn oauth_authorizations_list_grants( &self, per_page: Option<i64>, page: Option<i64>, client_id: Option<&str>, ) -> Result<Response, ApiError>

List your grants

Deprecation Notice: GitHub will discontinue the OAuth Authorizations API, which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our web application flow. The OAuth Authorizations API will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the blog post.

You can use this API to list the set of OAuth applications that have been granted access to your account. Unlike the list your authorizations API, this API does not manage individual tokens. This API will return one entry for each OAuth application that has been granted access to your account, regardless of the number of tokens an application has generated for your user. The list of OAuth applications returned matches what is shown on the application authorizations settings screen within GitHub. The scopes returned are the union of scopes authorized for the application. For example, if an application has one token with repo scope and another token with user scope, the grant will return ["repo", "user"].

API method documentation

Source

pub fn oauth_authorizations_get_grant( &self, grant_id: i64, ) -> Result<Response, ApiError>

Get a single grant

Deprecation Notice: GitHub will discontinue the OAuth Authorizations API, which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our web application flow. The OAuth Authorizations API will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the blog post.

API method documentation

Source

pub fn oauth_authorizations_delete_grant( &self, grant_id: i64, ) -> Result<Response, ApiError>

Delete a grant

Deprecation Notice: GitHub will discontinue the OAuth Authorizations API, which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our web application flow. The OAuth Authorizations API will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the blog post.

Deleting an OAuth application’s grant will also delete all OAuth tokens associated with the application for your user. Once deleted, the application has no access to your account and is no longer listed on the application authorizations settings screen within GitHub.

API method documentation

Source

pub fn apps_delete_authorization<Content>( &self, client_id: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Delete an app authorization

OAuth application owners can revoke a grant for their OAuth application and a specific user. You must use Basic Authentication when accessing this endpoint, using the OAuth application’s client_id and client_secret as the username and password. You must also provide a valid OAuth access_token as an input parameter and the grant for the token’s owner will be deleted. Deleting an OAuth application’s grant will also delete all OAuth tokens associated with the application for the user. Once deleted, the application will have no access to the user’s account and will no longer be listed on the application authorizations settings screen within GitHub.

API method documentation

§Content
Source

pub fn apps_check_token<Content>( &self, client_id: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Check a token

OAuth applications can use a special API method for checking OAuth token validity without exceeding the normal rate limits for failed login attempts. Authentication works differently with this particular endpoint. You must use Basic Authentication to use this endpoint, where the username is the OAuth application client_id and the password is its client_secret. Invalid tokens will return 404 NOT FOUND.

API method documentation

§Content
Source

pub fn apps_delete_token<Content>( &self, client_id: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Delete an app token

OAuth application owners can revoke a single token for an OAuth application. You must use Basic Authentication when accessing this endpoint, using the OAuth application’s client_id and client_secret as the username and password.

API method documentation

§Content
Source

pub fn apps_reset_token<Content>( &self, client_id: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Reset a token

OAuth applications can use this API method to reset a valid OAuth token without end-user involvement. Applications must save the “token” property in the response because changes take effect immediately. You must use Basic Authentication when accessing this endpoint, using the OAuth application’s client_id and client_secret as the username and password. Invalid tokens will return 404 NOT FOUND.

API method documentation

§Content
Source

pub fn apps_scope_token<Content>( &self, client_id: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Create a scoped access token

Use a non-scoped user-to-server OAuth access token to create a repository scoped and/or permission scoped user-to-server OAuth access token. You can specify which repositories the token can access and which permissions are granted to the token. You must use Basic Authentication when accessing this endpoint, using the OAuth application’s client_id and client_secret as the username and password. Invalid tokens will return 404 NOT FOUND.

API method documentation

§Content
Source

pub fn apps_get_by_slug(&self, app_slug: &str) -> Result<Response, ApiError>

Get an app

Note: The :app_slug is just the URL-friendly name of your GitHub App. You can find this on the settings page for your GitHub App (e.g., https://github.com/settings/apps/:app_slug).

If the GitHub App you specify is public, you can access this endpoint without authenticating. If the GitHub App you specify is private, you must authenticate with a personal access token or an installation access token to access this endpoint.

API method documentation

Source

pub fn oauth_authorizations_list_authorizations( &self, per_page: Option<i64>, page: Option<i64>, client_id: Option<&str>, ) -> Result<Response, ApiError>

List your authorizations

Deprecation Notice: GitHub will discontinue the OAuth Authorizations API, which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our web application flow. The OAuth Authorizations API will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the blog post.

API method documentation

Source

pub fn oauth_authorizations_create_authorization<Content>( &self, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Create a new authorization

Deprecation Notice: GitHub will discontinue the OAuth Authorizations API, which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our web application flow. The OAuth Authorizations API will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the blog post.

Warning: Apps must use the web application flow to obtain OAuth tokens that work with GitHub SAML organizations. OAuth tokens created using the Authorizations API will be unable to access GitHub SAML organizations. For more information, see the blog post.

Creates OAuth tokens using Basic Authentication. If you have two-factor authentication setup, Basic Authentication for this endpoint requires that you use a one-time password (OTP) and your username and password instead of tokens. For more information, see “Working with two-factor authentication.”

To create tokens for a particular OAuth application using this endpoint, you must authenticate as the user you want to create an authorization for and provide the app’s client ID and secret, found on your OAuth application’s settings page. If your OAuth application intends to create multiple tokens for one user, use fingerprint to differentiate between them.

You can also create tokens on GitHub from the personal access tokens settings page. Read more about these tokens in the GitHub Help documentation.

Organizations that enforce SAML SSO require personal access tokens to be allowed. Read more about allowing tokens in the GitHub Help documentation.

API method documentation

§Content
Source

pub fn oauth_authorizations_get_or_create_authorization_for_app<Content>( &self, client_id: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Get-or-create an authorization for a specific app

Deprecation Notice: GitHub will discontinue the OAuth Authorizations API, which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our web application flow. The OAuth Authorizations API will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the blog post.

Warning: Apps must use the web application flow to obtain OAuth tokens that work with GitHub SAML organizations. OAuth tokens created using the Authorizations API will be unable to access GitHub SAML organizations. For more information, see the blog post.

Creates a new authorization for the specified OAuth application, only if an authorization for that application doesn’t already exist for the user. The URL includes the 20 character client ID for the OAuth app that is requesting the token. It returns the user’s existing authorization for the application if one is present. Otherwise, it creates and returns a new one.

If you have two-factor authentication setup, Basic Authentication for this endpoint requires that you use a one-time password (OTP) and your username and password instead of tokens. For more information, see “Working with two-factor authentication.”

Deprecation Notice: GitHub will discontinue the OAuth Authorizations API, which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our web application flow. The OAuth Authorizations API will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the blog post.

API method documentation

§Content
Source

pub fn oauth_authorizations_get_or_create_authorization_for_app_and_fingerprint<Content>( &self, client_id: &str, fingerprint: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Get-or-create an authorization for a specific app and fingerprint

Deprecation Notice: GitHub will discontinue the OAuth Authorizations API, which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our web application flow. The OAuth Authorizations API will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the blog post.

Warning: Apps must use the web application flow to obtain OAuth tokens that work with GitHub SAML organizations. OAuth tokens created using the Authorizations API will be unable to access GitHub SAML organizations. For more information, see the blog post.

This method will create a new authorization for the specified OAuth application, only if an authorization for that application and fingerprint do not already exist for the user. The URL includes the 20 character client ID for the OAuth app that is requesting the token. fingerprint is a unique string to distinguish an authorization from others created for the same client ID and user. It returns the user’s existing authorization for the application if one is present. Otherwise, it creates and returns a new one.

If you have two-factor authentication setup, Basic Authentication for this endpoint requires that you use a one-time password (OTP) and your username and password instead of tokens. For more information, see “Working with two-factor authentication.”

API method documentation

§Content
Source

pub fn oauth_authorizations_get_authorization( &self, authorization_id: i64, ) -> Result<Response, ApiError>

Get a single authorization

Deprecation Notice: GitHub will discontinue the OAuth Authorizations API, which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our web application flow. The OAuth Authorizations API will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the blog post.

API method documentation

Source

pub fn oauth_authorizations_delete_authorization( &self, authorization_id: i64, ) -> Result<Response, ApiError>

Delete an authorization

Deprecation Notice: GitHub will discontinue the OAuth Authorizations API, which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our web application flow. The OAuth Authorizations API will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the blog post.

API method documentation

Source

pub fn oauth_authorizations_update_authorization<Content>( &self, authorization_id: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Update an existing authorization

Deprecation Notice: GitHub will discontinue the OAuth Authorizations API, which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our web application flow. The OAuth Authorizations API will be removed on November, 13, 2020. For more information, including scheduled brownouts, see the blog post.

If you have two-factor authentication setup, Basic Authentication for this endpoint requires that you use a one-time password (OTP) and your username and password instead of tokens. For more information, see “Working with two-factor authentication.”

You can only send one of these scope keys at a time.

API method documentation

§Content
Source

pub fn codes_of_conduct_get_all_codes_of_conduct( &self, ) -> Result<Response, ApiError>

Get all codes of conduct

API method documentation

Source

pub fn codes_of_conduct_get_conduct_code( &self, key: &str, ) -> Result<Response, ApiError>

Get a code of conduct

API method documentation

Source

pub fn emojis_get(&self) -> Result<Response, ApiError>

Get emojis

Lists all the emojis available to use on GitHub.

API method documentation

Source

pub fn actions_get_actions_cache_usage_for_enterprise( &self, enterprise: &str, ) -> Result<Response, ApiError>

Get GitHub Actions cache usage for an enterprise

Gets the total GitHub Actions cache usage for an enterprise. The data fetched using this API is refreshed approximately every 5 minutes, so values returned from this endpoint may take at least 5 minutes to get updated. You must authenticate using an access token with the admin:enterprise scope to use this endpoint.

API method documentation

Source

pub fn enterprise_admin_get_github_actions_permissions_enterprise( &self, enterprise: &str, ) -> Result<Response, ApiError>

Get GitHub Actions permissions for an enterprise

Gets the GitHub Actions permissions policy for organizations and allowed actions and reusable workflows in an enterprise.

You must authenticate using an access token with the admin:enterprise scope to use this endpoint.

API method documentation

Source

pub fn enterprise_admin_set_github_actions_permissions_enterprise<Content>( &self, enterprise: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Set GitHub Actions permissions for an enterprise

Sets the GitHub Actions permissions policy for organizations and allowed actions and reusable workflows in an enterprise.

You must authenticate using an access token with the admin:enterprise scope to use this endpoint.

API method documentation

§Content
Source

pub fn enterprise_admin_list_selected_organizations_enabled_github_actions_enterprise( &self, enterprise: &str, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List selected organizations enabled for GitHub Actions in an enterprise

Lists the organizations that are selected to have GitHub Actions enabled in an enterprise. To use this endpoint, the enterprise permission policy for enabled_organizations must be configured to selected. For more information, see “Set GitHub Actions permissions for an enterprise.”

You must authenticate using an access token with the admin:enterprise scope to use this endpoint.

API method documentation

Source

pub fn enterprise_admin_set_selected_organizations_enabled_github_actions_enterprise<Content>( &self, enterprise: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Set selected organizations enabled for GitHub Actions in an enterprise

Replaces the list of selected organizations that are enabled for GitHub Actions in an enterprise. To use this endpoint, the enterprise permission policy for enabled_organizations must be configured to selected. For more information, see “Set GitHub Actions permissions for an enterprise.”

You must authenticate using an access token with the admin:enterprise scope to use this endpoint.

API method documentation

§Content
Source

pub fn enterprise_admin_enable_selected_organization_github_actions_enterprise( &self, enterprise: &str, org_id: i64, ) -> Result<Response, ApiError>

Enable a selected organization for GitHub Actions in an enterprise

Adds an organization to the list of selected organizations that are enabled for GitHub Actions in an enterprise. To use this endpoint, the enterprise permission policy for enabled_organizations must be configured to selected. For more information, see “Set GitHub Actions permissions for an enterprise.”

You must authenticate using an access token with the admin:enterprise scope to use this endpoint.

API method documentation

Source

pub fn enterprise_admin_disable_selected_organization_github_actions_enterprise( &self, enterprise: &str, org_id: i64, ) -> Result<Response, ApiError>

Disable a selected organization for GitHub Actions in an enterprise

Removes an organization from the list of selected organizations that are enabled for GitHub Actions in an enterprise. To use this endpoint, the enterprise permission policy for enabled_organizations must be configured to selected. For more information, see “Set GitHub Actions permissions for an enterprise.”

You must authenticate using an access token with the admin:enterprise scope to use this endpoint.

API method documentation

Source

pub fn enterprise_admin_get_allowed_actions_enterprise( &self, enterprise: &str, ) -> Result<Response, ApiError>

Get allowed actions and reusable workflows for an enterprise

Gets the selected actions and reusable workflows that are allowed in an enterprise. To use this endpoint, the enterprise permission policy for allowed_actions must be configured to selected. For more information, see “Set GitHub Actions permissions for an enterprise.”

You must authenticate using an access token with the admin:enterprise scope to use this endpoint.

API method documentation

Source

pub fn enterprise_admin_set_allowed_actions_enterprise<Content>( &self, enterprise: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Set allowed actions and reusable workflows for an enterprise

Sets the actions and reusable workflows that are allowed in an enterprise. To use this endpoint, the enterprise permission policy for allowed_actions must be configured to selected. For more information, see “Set GitHub Actions permissions for an enterprise.”

You must authenticate using an access token with the admin:enterprise scope to use this endpoint.

API method documentation

§Content
Source

pub fn actions_get_github_actions_default_workflow_permissions_enterprise( &self, enterprise: &str, ) -> Result<Response, ApiError>

Get default workflow permissions for an enterprise

Gets the default workflow permissions granted to the GITHUB_TOKEN when running workflows in an enterprise, as well as whether GitHub Actions can submit approving pull request reviews. For more information, see “Enforcing a policy for workflow permissions in your enterprise.”

You must authenticate using an access token with the admin:enterprise scope to use this endpoint. GitHub Apps must have the enterprise_administration:write permission to use this endpoint.

API method documentation

Source

pub fn actions_set_github_actions_default_workflow_permissions_enterprise<Content>( &self, enterprise: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Set default workflow permissions for an enterprise

Sets the default workflow permissions granted to the GITHUB_TOKEN when running workflows in an enterprise, and sets whether GitHub Actions can submit approving pull request reviews. For more information, see “Enforcing a policy for workflow permissions in your enterprise.”

You must authenticate using an access token with the admin:enterprise scope to use this endpoint. GitHub Apps must have the enterprise_administration:write permission to use this endpoint.

API method documentation

§Content
Source

pub fn enterprise_admin_list_self_hosted_runner_groups_for_enterprise( &self, enterprise: &str, per_page: Option<i64>, page: Option<i64>, visible_to_organization: Option<&str>, ) -> Result<Response, ApiError>

List self-hosted runner groups for an enterprise

Lists all self-hosted runner groups for an enterprise.

You must authenticate using an access token with the manage_runners:enterprise scope to use this endpoint.

API method documentation

Source

pub fn enterprise_admin_create_self_hosted_runner_group_for_enterprise<Content>( &self, enterprise: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Create a self-hosted runner group for an enterprise

Creates a new self-hosted runner group for an enterprise.

You must authenticate using an access token with the manage_runners:enterprise scope to use this endpoint.

API method documentation

§Content
Source

pub fn enterprise_admin_get_self_hosted_runner_group_for_enterprise( &self, enterprise: &str, runner_group_id: i64, ) -> Result<Response, ApiError>

Get a self-hosted runner group for an enterprise

Gets a specific self-hosted runner group for an enterprise.

You must authenticate using an access token with the manage_runners:enterprise scope to use this endpoint.

API method documentation

Source

pub fn enterprise_admin_delete_self_hosted_runner_group_from_enterprise( &self, enterprise: &str, runner_group_id: i64, ) -> Result<Response, ApiError>

Delete a self-hosted runner group from an enterprise

Deletes a self-hosted runner group for an enterprise.

You must authenticate using an access token with the manage_runners:enterprise scope to use this endpoint.

API method documentation

Source

pub fn enterprise_admin_update_self_hosted_runner_group_for_enterprise<Content>( &self, enterprise: &str, runner_group_id: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Update a self-hosted runner group for an enterprise

Updates the name and visibility of a self-hosted runner group in an enterprise.

You must authenticate using an access token with the manage_runners:enterprise scope to use this endpoint.

API method documentation

§Content
Source

pub fn enterprise_admin_list_org_access_to_self_hosted_runner_group_in_enterprise( &self, enterprise: &str, runner_group_id: i64, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List organization access to a self-hosted runner group in an enterprise

Lists the organizations with access to a self-hosted runner group.

You must authenticate using an access token with the manage_runners:enterprise scope to use this endpoint.

API method documentation

Source

pub fn enterprise_admin_set_org_access_to_self_hosted_runner_group_in_enterprise<Content>( &self, enterprise: &str, runner_group_id: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Set organization access for a self-hosted runner group in an enterprise

Replaces the list of organizations that have access to a self-hosted runner configured in an enterprise.

You must authenticate using an access token with the manage_runners:enterprise scope to use this endpoint.

API method documentation

§Content
Source

pub fn enterprise_admin_add_org_access_to_self_hosted_runner_group_in_enterprise( &self, enterprise: &str, runner_group_id: i64, org_id: i64, ) -> Result<Response, ApiError>

Add organization access to a self-hosted runner group in an enterprise

Adds an organization to the list of selected organizations that can access a self-hosted runner group. The runner group must have visibility set to selected. For more information, see “Create a self-hosted runner group for an enterprise.”

You must authenticate using an access token with the manage_runners:enterprise scope to use this endpoint.

API method documentation

Source

pub fn enterprise_admin_remove_org_access_to_self_hosted_runner_group_in_enterprise( &self, enterprise: &str, runner_group_id: i64, org_id: i64, ) -> Result<Response, ApiError>

Remove organization access to a self-hosted runner group in an enterprise

Removes an organization from the list of selected organizations that can access a self-hosted runner group. The runner group must have visibility set to selected. For more information, see “Create a self-hosted runner group for an enterprise.”

You must authenticate using an access token with the manage_runners:enterprise scope to use this endpoint.

API method documentation

Source

pub fn enterprise_admin_list_self_hosted_runners_in_group_for_enterprise( &self, enterprise: &str, runner_group_id: i64, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List self-hosted runners in a group for an enterprise

Lists the self-hosted runners that are in a specific enterprise group.

You must authenticate using an access token with the manage_runners:enterprise scope to use this endpoint.

API method documentation

Source

pub fn enterprise_admin_set_self_hosted_runners_in_group_for_enterprise<Content>( &self, enterprise: &str, runner_group_id: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Set self-hosted runners in a group for an enterprise

Replaces the list of self-hosted runners that are part of an enterprise runner group.

You must authenticate using an access token with the manage_runners:enterprise scope to use this endpoint.

API method documentation

§Content
Source

pub fn enterprise_admin_add_self_hosted_runner_to_group_for_enterprise( &self, enterprise: &str, runner_group_id: i64, runner_id: i64, ) -> Result<Response, ApiError>

Add a self-hosted runner to a group for an enterprise

Adds a self-hosted runner to a runner group configured in an enterprise.

You must authenticate using an access token with the manage_runners:enterprise scope to use this endpoint.

API method documentation

Source

pub fn enterprise_admin_remove_self_hosted_runner_from_group_for_enterprise( &self, enterprise: &str, runner_group_id: i64, runner_id: i64, ) -> Result<Response, ApiError>

Remove a self-hosted runner from a group for an enterprise

Removes a self-hosted runner from a group configured in an enterprise. The runner is then returned to the default group.

You must authenticate using an access token with the manage_runners:enterprise scope to use this endpoint.

API method documentation

Source

pub fn enterprise_admin_list_self_hosted_runners_for_enterprise( &self, enterprise: &str, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List self-hosted runners for an enterprise

Lists all self-hosted runners configured for an enterprise.

You must authenticate using an access token with the manage_runners:enterprise scope to use this endpoint.

API method documentation

Source

pub fn enterprise_admin_list_runner_applications_for_enterprise( &self, enterprise: &str, ) -> Result<Response, ApiError>

List runner applications for an enterprise

Lists binaries for the runner application that you can download and run.

You must authenticate using an access token with the manage_runners:enterprise scope to use this endpoint.

API method documentation

Source

pub fn enterprise_admin_create_registration_token_for_enterprise( &self, enterprise: &str, ) -> Result<Response, ApiError>

Create a registration token for an enterprise

Returns a token that you can pass to the config script. The token expires after one hour.

You must authenticate using an access token with the manage_runners:enterprise scope to use this endpoint.

§Example using registration token

Configure your self-hosted runner, replacing TOKEN with the registration token provided by this endpoint.

./config.sh --url https://github.com/enterprises/octo-enterprise --token TOKEN

API method documentation

Source

pub fn enterprise_admin_create_remove_token_for_enterprise( &self, enterprise: &str, ) -> Result<Response, ApiError>

Create a remove token for an enterprise

Returns a token that you can pass to the config script to remove a self-hosted runner from an enterprise. The token expires after one hour.

You must authenticate using an access token with the manage_runners:enterprise scope to use this endpoint.

§Example using remove token

To remove your self-hosted runner from an enterprise, replace TOKEN with the remove token provided by this endpoint.

./config.sh remove --token TOKEN

API method documentation

Source

pub fn enterprise_admin_get_self_hosted_runner_for_enterprise( &self, enterprise: &str, runner_id: i64, ) -> Result<Response, ApiError>

Get a self-hosted runner for an enterprise

Gets a specific self-hosted runner configured in an enterprise.

You must authenticate using an access token with the manage_runners:enterprise scope to use this endpoint.

API method documentation

Source

pub fn enterprise_admin_delete_self_hosted_runner_from_enterprise( &self, enterprise: &str, runner_id: i64, ) -> Result<Response, ApiError>

Delete a self-hosted runner from an enterprise

Forces the removal of a self-hosted runner from an enterprise. You can use this endpoint to completely remove the runner when the machine you were using no longer exists.

You must authenticate using an access token with the manage_runners:enterprise scope to use this endpoint.

API method documentation

Source

pub fn enterprise_admin_list_labels_for_self_hosted_runner_for_enterprise( &self, enterprise: &str, runner_id: i64, ) -> Result<Response, ApiError>

List labels for a self-hosted runner for an enterprise

Lists all labels for a self-hosted runner configured in an enterprise.

You must authenticate using an access token with the manage_runners:enterprise scope to use this endpoint.

API method documentation

Source

pub fn enterprise_admin_set_custom_labels_for_self_hosted_runner_for_enterprise<Content>( &self, enterprise: &str, runner_id: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Set custom labels for a self-hosted runner for an enterprise

Remove all previous custom labels and set the new custom labels for a specific self-hosted runner configured in an enterprise.

You must authenticate using an access token with the manage_runners:enterprise scope to use this endpoint.

API method documentation

§Content
Source

pub fn enterprise_admin_add_custom_labels_to_self_hosted_runner_for_enterprise<Content>( &self, enterprise: &str, runner_id: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Add custom labels to a self-hosted runner for an enterprise

Add custom labels to a self-hosted runner configured in an enterprise.

You must authenticate using an access token with the manage_runners:enterprise scope to use this endpoint.

API method documentation

§Content
Source

pub fn enterprise_admin_remove_all_custom_labels_from_self_hosted_runner_for_enterprise( &self, enterprise: &str, runner_id: i64, ) -> Result<Response, ApiError>

Remove all custom labels from a self-hosted runner for an enterprise

Remove all custom labels from a self-hosted runner configured in an enterprise. Returns the remaining read-only labels from the runner.

You must authenticate using an access token with the manage_runners:enterprise scope to use this endpoint.

API method documentation

Source

pub fn enterprise_admin_remove_custom_label_from_self_hosted_runner_for_enterprise( &self, enterprise: &str, runner_id: i64, name: &str, ) -> Result<Response, ApiError>

Remove a custom label from a self-hosted runner for an enterprise

Remove a custom label from a self-hosted runner configured in an enterprise. Returns the remaining labels from the runner.

This endpoint returns a 404 Not Found status if the custom label is not present on the runner.

You must authenticate using an access token with the manage_runners:enterprise scope to use this endpoint.

API method documentation

Source

pub fn enterprise_admin_get_audit_log( &self, enterprise: &str, phrase: Option<&str>, include: Option<&str>, after: Option<&str>, before: Option<&str>, order: Option<&str>, page: Option<i64>, per_page: Option<i64>, ) -> Result<Response, ApiError>

Get the audit log for an enterprise

Gets the audit log for an enterprise. To use this endpoint, you must be an enterprise admin, and you must use an access token with the admin:enterprise scope.

API method documentation

Source

pub fn secret_scanning_list_alerts_for_enterprise( &self, enterprise: &str, state: Option<&str>, secret_type: Option<&str>, resolution: Option<&str>, per_page: Option<i64>, before: Option<&str>, after: Option<&str>, ) -> Result<Response, ApiError>

List secret scanning alerts for an enterprise

Lists secret scanning alerts for eligible repositories in an enterprise, from newest to oldest. To use this endpoint, you must be a member of the enterprise, and you must use an access token with the repo scope or security_events scope. Alerts are only returned for organizations in the enterprise for which you are an organization owner or a security manager.

API method documentation

Source

pub fn billing_get_github_actions_billing_ghe( &self, enterprise: &str, ) -> Result<Response, ApiError>

Get GitHub Actions billing for an enterprise

Gets the summary of the free and paid GitHub Actions minutes used.

Paid minutes only apply to workflows in private repositories that use GitHub-hosted runners. Minutes used is listed for each GitHub-hosted runner operating system. Any job re-runs are also included in the usage. The usage does not include the multiplier for macOS and Windows runners and is not rounded up to the nearest whole minute. For more information, see “Managing billing for GitHub Actions”.

The authenticated user must be an enterprise admin.

API method documentation

Source

pub fn billing_get_github_advanced_security_billing_ghe( &self, enterprise: &str, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

Get GitHub Advanced Security active committers for an enterprise

Gets the GitHub Advanced Security active committers for an enterprise per repository. Each distinct user login across all repositories is counted as a single Advanced Security seat, so the total_advanced_security_committers is not the sum of active_users for each repository.

API method documentation

Source

pub fn billing_get_github_packages_billing_ghe( &self, enterprise: &str, ) -> Result<Response, ApiError>

Get GitHub Packages billing for an enterprise

Gets the free and paid storage used for GitHub Packages in gigabytes.

Paid minutes only apply to packages stored for private repositories. For more information, see “Managing billing for GitHub Packages.”

The authenticated user must be an enterprise admin.

API method documentation

Source

pub fn billing_get_shared_storage_billing_ghe( &self, enterprise: &str, ) -> Result<Response, ApiError>

Get shared storage billing for an enterprise

Gets the estimated paid and estimated total storage used for GitHub Actions and GitHub Packages.

Paid minutes only apply to packages stored for private repositories. For more information, see “Managing billing for GitHub Packages.”

The authenticated user must be an enterprise admin.

API method documentation

Source

pub fn activity_list_public_events( &self, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List public events

We delay the public events feed by five minutes, which means the most recent event returned by the public events API actually occurred at least five minutes ago.

API method documentation

Source

pub fn activity_get_feeds(&self) -> Result<Response, ApiError>

Get feeds

GitHub provides several timeline resources in Atom format. The Feeds API lists all the feeds available to the authenticated user:

  • Timeline: The GitHub global public timeline
  • User: The public timeline for any user, using URI template
  • Current user public: The public timeline for the authenticated user
  • Current user: The private timeline for the authenticated user
  • Current user actor: The private timeline for activity created by the authenticated user
  • Current user organizations: The private timeline for the organizations the authenticated user is a member of.
  • Security advisories: A collection of public announcements that provide information about security-related vulnerabilities in software on GitHub.

Note: Private feeds are only returned when authenticating via Basic Auth since current feed URIs use the older, non revocable auth tokens.

API method documentation

Source

pub fn gists_list( &self, since: Option<&str>, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List gists for the authenticated user

Lists the authenticated user’s gists or if called anonymously, this endpoint returns all public gists:

API method documentation

Source

pub fn gists_create<Content>( &self, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Create a gist

Allows you to add a new gist with one or more files.

Note: Don’t name your files “gistfile” with a numerical suffix. This is the format of the automatic naming scheme that Gist uses internally.

API method documentation

§Content
Source

pub fn gists_list_public( &self, since: Option<&str>, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List public gists

List public gists sorted by most recently updated to least recently updated.

Note: With pagination, you can fetch up to 3000 gists. For example, you can fetch 100 pages with 30 gists per page or 30 pages with 100 gists per page.

API method documentation

Source

pub fn gists_list_starred( &self, since: Option<&str>, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List starred gists

List the authenticated user’s starred gists:

API method documentation

Source

pub fn gists_get(&self, gist_id: &str) -> Result<Response, ApiError>

Source

pub fn gists_delete(&self, gist_id: &str) -> Result<Response, ApiError>

Source

pub fn gists_update<Content>( &self, gist_id: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Update a gist

Allows you to update or delete a gist file and rename gist files. Files from the previous version of the gist that aren’t explicitly changed during an edit are unchanged.

API method documentation

§Content
Source

pub fn gists_list_comments( &self, gist_id: &str, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List gist comments

API method documentation

Source

pub fn gists_create_comment<Content>( &self, gist_id: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Source

pub fn gists_get_comment( &self, gist_id: &str, comment_id: i64, ) -> Result<Response, ApiError>

Get a gist comment

API method documentation

Source

pub fn gists_delete_comment( &self, gist_id: &str, comment_id: i64, ) -> Result<Response, ApiError>

Delete a gist comment

API method documentation

Source

pub fn gists_update_comment<Content>( &self, gist_id: &str, comment_id: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Source

pub fn gists_list_commits( &self, gist_id: &str, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List gist commits

API method documentation

Source

pub fn gists_list_forks( &self, gist_id: &str, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List gist forks

API method documentation

Source

pub fn gists_fork(&self, gist_id: &str) -> Result<Response, ApiError>

Fork a gist

Note: This was previously /gists/:gist_id/fork.

API method documentation

Source

pub fn gists_check_is_starred( &self, gist_id: &str, ) -> Result<Response, ApiError>

Check if a gist is starred

API method documentation

Source

pub fn gists_star(&self, gist_id: &str) -> Result<Response, ApiError>

Star a gist

Note that you’ll need to set Content-Length to zero when calling out to this endpoint. For more information, see “HTTP verbs.”

API method documentation

Source

pub fn gists_unstar(&self, gist_id: &str) -> Result<Response, ApiError>

Source

pub fn gists_get_revision( &self, gist_id: &str, sha: &str, ) -> Result<Response, ApiError>

Get a gist revision

API method documentation

Source

pub fn gitignore_get_all_templates(&self) -> Result<Response, ApiError>

Get all gitignore templates

List all templates available to pass as an option when creating a repository.

API method documentation

Source

pub fn gitignore_get_template(&self, name: &str) -> Result<Response, ApiError>

Get a gitignore template

The API also allows fetching the source of a single template. Use the raw media type to get the raw contents.

API method documentation

Source

pub fn apps_list_repos_accessible_to_installation( &self, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List repositories accessible to the app installation

List repositories that an app installation can access.

You must use an installation access token to access this endpoint.

API method documentation

Source

pub fn apps_revoke_installation_access_token( &self, ) -> Result<Response, ApiError>

Revoke an installation access token

Revokes the installation token you’re using to authenticate as an installation and access this endpoint.

Once an installation token is revoked, the token is invalidated and cannot be used. Other endpoints that require the revoked installation token must have a new installation token to work. You can create a new token using the “Create an installation access token for an app” endpoint.

You must use an installation access token to access this endpoint.

API method documentation

Source

pub fn issues_list( &self, filter: &IssueFilter<'_>, sort: &Sort<'_>, collab: Option<bool>, orgs: Option<bool>, owned: Option<bool>, pulls: Option<bool>, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List issues assigned to the authenticated user

List issues assigned to the authenticated user across all visible repositories including owned repositories, member repositories, and organization repositories. You can use the filter query parameter to fetch issues that are not necessarily assigned to you.

Note: GitHub’s REST API v3 considers every pull request an issue, but not every issue is a pull request. For this reason, “Issues” endpoints may return both issues and pull requests in the response. You can identify pull requests by the pull_request key. Be aware that the id of a pull request returned from “Issues” endpoints will be an issue id. To find out the pull request id, use the “List pull requests” endpoint.

API method documentation

Source

pub fn licenses_get_all_commonly_used( &self, featured: Option<bool>, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

Get all commonly used licenses

API method documentation

Source

pub fn licenses_get(&self, license: &str) -> Result<Response, ApiError>

Source

pub fn markdown_render<Content>( &self, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Source

pub fn markdown_render_raw<Content>( &self, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Render a Markdown document in raw mode

You must send Markdown as plain text (using a Content-Type header of text/plain or text/x-markdown) to this endpoint, rather than using JSON format. In raw mode, GitHub Flavored Markdown is not supported and Markdown will be rendered in plain format like a README.md file. Markdown content must be 400 KB or less.

API method documentation

§Content
Source

pub fn apps_get_subscription_plan_for_account( &self, account_id: i64, ) -> Result<Response, ApiError>

Get a subscription plan for an account

Shows whether the user or organization account actively subscribes to a plan listed by the authenticated GitHub App. When someone submits a plan change that won’t be processed until the end of their billing cycle, you will also see the upcoming pending change.

GitHub Apps must use a JWT to access this endpoint. OAuth Apps must use basic authentication with their client ID and client secret to access this endpoint.

API method documentation

Source

pub fn apps_list_plans( &self, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List plans

Lists all plans that are part of your GitHub Marketplace listing.

GitHub Apps must use a JWT to access this endpoint. OAuth Apps must use basic authentication with their client ID and client secret to access this endpoint.

API method documentation

Source

pub fn apps_list_accounts_for_plan( &self, plan_id: i64, sort: &Sort<'_>, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List accounts for a plan

Returns user and organization accounts associated with the specified plan, including free plans. For per-seat pricing, you see the list of accounts that have purchased the plan, including the number of seats purchased. When someone submits a plan change that won’t be processed until the end of their billing cycle, you will also see the upcoming pending change.

GitHub Apps must use a JWT to access this endpoint. OAuth Apps must use basic authentication with their client ID and client secret to access this endpoint.

API method documentation

Source

pub fn apps_get_subscription_plan_for_account_stubbed( &self, account_id: i64, ) -> Result<Response, ApiError>

Get a subscription plan for an account (stubbed)

Shows whether the user or organization account actively subscribes to a plan listed by the authenticated GitHub App. When someone submits a plan change that won’t be processed until the end of their billing cycle, you will also see the upcoming pending change.

GitHub Apps must use a JWT to access this endpoint. OAuth Apps must use basic authentication with their client ID and client secret to access this endpoint.

API method documentation

Source

pub fn apps_list_plans_stubbed( &self, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List plans (stubbed)

Lists all plans that are part of your GitHub Marketplace listing.

GitHub Apps must use a JWT to access this endpoint. OAuth Apps must use basic authentication with their client ID and client secret to access this endpoint.

API method documentation

Source

pub fn apps_list_accounts_for_plan_stubbed( &self, plan_id: i64, sort: &Sort<'_>, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List accounts for a plan (stubbed)

Returns repository and organization accounts associated with the specified plan, including free plans. For per-seat pricing, you see the list of accounts that have purchased the plan, including the number of seats purchased. When someone submits a plan change that won’t be processed until the end of their billing cycle, you will also see the upcoming pending change.

GitHub Apps must use a JWT to access this endpoint. OAuth Apps must use basic authentication with their client ID and client secret to access this endpoint.

API method documentation

Source

pub fn meta_get(&self) -> Result<Response, ApiError>

Get GitHub meta information

Returns meta information about GitHub, including a list of GitHub’s IP addresses. For more information, see “About GitHub’s IP addresses.”

Note: The IP addresses shown in the documentation’s response are only example values. You must always query the API directly to get the latest list of IP addresses.

API method documentation

Source

pub fn activity_list_public_events_for_repo_network( &self, owner: &str, repo: &str, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List public events for a network of repositories

API method documentation

Source

pub fn activity_list_notifications_for_authenticated_user( &self, all: Option<bool>, participating: Option<bool>, since: Option<&str>, before: Option<&str>, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List notifications for the authenticated user

List all notifications for the current user, sorted by most recently updated.

API method documentation

Source

pub fn activity_mark_notifications_as_read<Content>( &self, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Mark notifications as read

Marks all notifications as “read” removes it from the default view on GitHub. If the number of notifications is too large to complete in one request, you will receive a 202 Accepted status and GitHub will run an asynchronous process to mark notifications as “read.” To check whether any “unread” notifications remain, you can use the List notifications for the authenticated user endpoint and pass the query parameter all=false.

API method documentation

§Content
Source

pub fn activity_get_thread(&self, thread_id: i64) -> Result<Response, ApiError>

Source

pub fn activity_mark_thread_as_read( &self, thread_id: i64, ) -> Result<Response, ApiError>

Mark a thread as read

API method documentation

Source

pub fn activity_get_thread_subscription_for_authenticated_user( &self, thread_id: i64, ) -> Result<Response, ApiError>

Get a thread subscription for the authenticated user

This checks to see if the current user is subscribed to a thread. You can also get a repository subscription.

Note that subscriptions are only generated if a user is participating in a conversation–for example, they’ve replied to the thread, were @mentioned, or manually subscribe to a thread.

API method documentation

Source

pub fn activity_set_thread_subscription<Content>( &self, thread_id: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Set a thread subscription

If you are watching a repository, you receive notifications for all threads by default. Use this endpoint to ignore future notifications for threads until you comment on the thread or get an @mention.

You can also use this endpoint to subscribe to threads that you are currently not receiving notifications for or to subscribed to threads that you have previously ignored.

Unsubscribing from a conversation in a repository that you are not watching is functionally equivalent to the Delete a thread subscription endpoint.

API method documentation

§Content
Source

pub fn activity_delete_thread_subscription( &self, thread_id: i64, ) -> Result<Response, ApiError>

Delete a thread subscription

Mutes all future notifications for a conversation until you comment on the thread or get an @mention. If you are watching the repository of the thread, you will still receive notifications. To ignore future notifications for a repository you are watching, use the Set a thread subscription endpoint and set ignore to true.

API method documentation

Source

pub fn meta_get_octocat(&self, s: Option<&str>) -> Result<Response, ApiError>

Get Octocat

Get the octocat as ASCII art

API method documentation

Source

pub fn orgs_list( &self, since: Option<i64>, per_page: Option<i64>, ) -> Result<Response, ApiError>

List organizations

Lists all organizations, in the order that they were created on GitHub.

Note: Pagination is powered exclusively by the since parameter. Use the Link header to get the URL for the next page of organizations.

API method documentation

Source

pub fn orgs_list_custom_roles( &self, organization_id: &str, ) -> Result<Response, ApiError>

List custom repository roles in an organization

List the custom repository roles available in this organization. In order to see custom repository roles in an organization, the authenticated user must be an organization owner.

For more information on custom repository roles, see “Managing custom repository roles for an organization”.

API method documentation

Source

pub fn orgs_get(&self, org: &str) -> Result<Response, ApiError>

Get an organization

To see many of the organization response values, you need to be an authenticated organization owner with the admin:org scope. When the value of two_factor_requirement_enabled is true, the organization requires all members, billing managers, and outside collaborators to enable two-factor authentication.

GitHub Apps with the Organization plan permission can use this endpoint to retrieve information about an organization’s GitHub plan. See “Authenticating with GitHub Apps” for details. For an example response, see ‘Response with GitHub plan information’ below.“

API method documentation

Source

pub fn orgs_update<Content>( &self, org: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Update an organization

Parameter Deprecation Notice: GitHub will replace and discontinue members_allowed_repository_creation_type in favor of more granular permissions. The new input parameters are members_can_create_public_repositories, members_can_create_private_repositories for all organizations and members_can_create_internal_repositories for organizations associated with an enterprise account using GitHub Enterprise Cloud or GitHub Enterprise Server 2.20+. For more information, see the blog post.

Enables an authenticated organization owner with the admin:org scope to update the organization’s profile and member privileges.

API method documentation

§Content
Source

pub fn actions_get_actions_cache_usage_for_org( &self, org: &str, ) -> Result<Response, ApiError>

Get GitHub Actions cache usage for an organization

Gets the total GitHub Actions cache usage for an organization. The data fetched using this API is refreshed approximately every 5 minutes, so values returned from this endpoint may take at least 5 minutes to get updated. You must authenticate using an access token with the read:org scope to use this endpoint. GitHub Apps must have the organization_admistration:read permission to use this endpoint.

API method documentation

Source

pub fn actions_get_actions_cache_usage_by_repo_for_org( &self, org: &str, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List repositories with GitHub Actions cache usage for an organization

Lists repositories and their GitHub Actions cache usage for an organization. The data fetched using this API is refreshed approximately every 5 minutes, so values returned from this endpoint may take at least 5 minutes to get updated. You must authenticate using an access token with the read:org scope to use this endpoint. GitHub Apps must have the organization_admistration:read permission to use this endpoint.

API method documentation

Source

pub fn actions_get_github_actions_permissions_organization( &self, org: &str, ) -> Result<Response, ApiError>

Get GitHub Actions permissions for an organization

Gets the GitHub Actions permissions policy for repositories and allowed actions and reusable workflows in an organization.

You must authenticate using an access token with the admin:org scope to use this endpoint. GitHub Apps must have the administration organization permission to use this API.

API method documentation

Source

pub fn actions_set_github_actions_permissions_organization<Content>( &self, org: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Set GitHub Actions permissions for an organization

Sets the GitHub Actions permissions policy for repositories and allowed actions and reusable workflows in an organization.

If the organization belongs to an enterprise that has set restrictive permissions at the enterprise level, such as allowed_actions to selected actions and reusable workflows, then you cannot override them for the organization.

You must authenticate using an access token with the admin:org scope to use this endpoint. GitHub Apps must have the administration organization permission to use this API.

API method documentation

§Content
Source

pub fn actions_list_selected_repositories_enabled_github_actions_organization( &self, org: &str, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List selected repositories enabled for GitHub Actions in an organization

Lists the selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for enabled_repositories must be configured to selected. For more information, see “Set GitHub Actions permissions for an organization.”

You must authenticate using an access token with the admin:org scope to use this endpoint. GitHub Apps must have the administration organization permission to use this API.

API method documentation

Source

pub fn actions_set_selected_repositories_enabled_github_actions_organization<Content>( &self, org: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Set selected repositories enabled for GitHub Actions in an organization

Replaces the list of selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for enabled_repositories must be configured to selected. For more information, see “Set GitHub Actions permissions for an organization.”

You must authenticate using an access token with the admin:org scope to use this endpoint. GitHub Apps must have the administration organization permission to use this API.

API method documentation

§Content
Source

pub fn actions_enable_selected_repository_github_actions_organization( &self, org: &str, repository_id: i64, ) -> Result<Response, ApiError>

Enable a selected repository for GitHub Actions in an organization

Adds a repository to the list of selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for enabled_repositories must be must be configured to selected. For more information, see “Set GitHub Actions permissions for an organization.”

You must authenticate using an access token with the admin:org scope to use this endpoint. GitHub Apps must have the administration organization permission to use this API.

API method documentation

Source

pub fn actions_disable_selected_repository_github_actions_organization( &self, org: &str, repository_id: i64, ) -> Result<Response, ApiError>

Disable a selected repository for GitHub Actions in an organization

Removes a repository from the list of selected repositories that are enabled for GitHub Actions in an organization. To use this endpoint, the organization permission policy for enabled_repositories must be configured to selected. For more information, see “Set GitHub Actions permissions for an organization.”

You must authenticate using an access token with the admin:org scope to use this endpoint. GitHub Apps must have the administration organization permission to use this API.

API method documentation

Source

pub fn actions_get_allowed_actions_organization( &self, org: &str, ) -> Result<Response, ApiError>

Get allowed actions and reusable workflows for an organization

Gets the selected actions and reusable workflows that are allowed in an organization. To use this endpoint, the organization permission policy for allowed_actions must be configured to selected. For more information, see “Set GitHub Actions permissions for an organization.”“

You must authenticate using an access token with the admin:org scope to use this endpoint. GitHub Apps must have the administration organization permission to use this API.

API method documentation

Source

pub fn actions_set_allowed_actions_organization<Content>( &self, org: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Set allowed actions and reusable workflows for an organization

Sets the actions and reusable workflows that are allowed in an organization. To use this endpoint, the organization permission policy for allowed_actions must be configured to selected. For more information, see “Set GitHub Actions permissions for an organization.”

If the organization belongs to an enterprise that has selected actions and reusable workflows set at the enterprise level, then you cannot override any of the enterprise’s allowed actions and reusable workflows settings.

To use the patterns_allowed setting for private repositories, the organization must belong to an enterprise. If the organization does not belong to an enterprise, then the patterns_allowed setting only applies to public repositories in the organization.

You must authenticate using an access token with the admin:org scope to use this endpoint. GitHub Apps must have the administration organization permission to use this API.

API method documentation

§Content
Source

pub fn actions_get_github_actions_default_workflow_permissions_organization( &self, org: &str, ) -> Result<Response, ApiError>

Get default workflow permissions for an organization

Gets the default workflow permissions granted to the GITHUB_TOKEN when running workflows in an organization, as well as whether GitHub Actions can submit approving pull request reviews. For more information, see “Setting the permissions of the GITHUB_TOKEN for your organization.”

You must authenticate using an access token with the admin:org scope to use this endpoint. GitHub Apps must have the administration organization permission to use this API.

API method documentation

Source

pub fn actions_set_github_actions_default_workflow_permissions_organization<Content>( &self, org: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Set default workflow permissions for an organization

Sets the default workflow permissions granted to the GITHUB_TOKEN when running workflows in an organization, and sets if GitHub Actions can submit approving pull request reviews. For more information, see “Setting the permissions of the GITHUB_TOKEN for your organization.”

You must authenticate using an access token with the admin:org scope to use this endpoint. GitHub Apps must have the administration organization permission to use this API.

API method documentation

§Content
Source

pub fn actions_list_self_hosted_runner_groups_for_org( &self, org: &str, per_page: Option<i64>, page: Option<i64>, visible_to_repository: Option<&str>, ) -> Result<Response, ApiError>

List self-hosted runner groups for an organization

The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see “GitHub’s products.”

Lists all self-hosted runner groups configured in an organization and inherited from an enterprise.

You must authenticate using an access token with the admin:org scope to use this endpoint.

API method documentation

Source

pub fn actions_create_self_hosted_runner_group_for_org<Content>( &self, org: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Create a self-hosted runner group for an organization

The self-hosted runner groups REST API is available with GitHub Enterprise Cloud and GitHub Enterprise Server. For more information, see “GitHub’s products.”

Creates a new self-hosted runner group for an organization.

You must authenticate using an access token with the admin:org scope to use this endpoint.

API method documentation

§Content
Source

pub fn actions_get_self_hosted_runner_group_for_org( &self, org: &str, runner_group_id: i64, ) -> Result<Response, ApiError>

Get a self-hosted runner group for an organization

The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see “GitHub’s products.”

Gets a specific self-hosted runner group for an organization.

You must authenticate using an access token with the admin:org scope to use this endpoint.

API method documentation

Source

pub fn actions_delete_self_hosted_runner_group_from_org( &self, org: &str, runner_group_id: i64, ) -> Result<Response, ApiError>

Delete a self-hosted runner group from an organization

The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see “GitHub’s products.”

Deletes a self-hosted runner group for an organization.

You must authenticate using an access token with the admin:org scope to use this endpoint.

API method documentation

Source

pub fn actions_update_self_hosted_runner_group_for_org<Content>( &self, org: &str, runner_group_id: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Update a self-hosted runner group for an organization

The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see “GitHub’s products.”

Updates the name and visibility of a self-hosted runner group in an organization.

You must authenticate using an access token with the admin:org scope to use this endpoint.

API method documentation

§Content
Source

pub fn actions_list_repo_access_to_self_hosted_runner_group_in_org( &self, org: &str, runner_group_id: i64, page: Option<i64>, per_page: Option<i64>, ) -> Result<Response, ApiError>

List repository access to a self-hosted runner group in an organization

The self-hosted runner groups REST API is available with GitHub Enterprise Cloud and GitHub Enterprise Server. For more information, see “GitHub’s products.”

Lists the repositories with access to a self-hosted runner group configured in an organization.

You must authenticate using an access token with the admin:org scope to use this endpoint.

API method documentation

Source

pub fn actions_set_repo_access_to_self_hosted_runner_group_in_org<Content>( &self, org: &str, runner_group_id: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Set repository access for a self-hosted runner group in an organization

The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see “GitHub’s products.”

Replaces the list of repositories that have access to a self-hosted runner group configured in an organization.

You must authenticate using an access token with the admin:org scope to use this endpoint.

API method documentation

§Content
Source

pub fn actions_add_repo_access_to_self_hosted_runner_group_in_org( &self, org: &str, runner_group_id: i64, repository_id: i64, ) -> Result<Response, ApiError>

Add repository access to a self-hosted runner group in an organization

The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see “GitHub’s products.”

Adds a repository to the list of selected repositories that can access a self-hosted runner group. The runner group must have visibility set to selected. For more information, see “Create a self-hosted runner group for an organization.”

You must authenticate using an access token with the admin:org scope to use this endpoint.

API method documentation

Source

pub fn actions_remove_repo_access_to_self_hosted_runner_group_in_org( &self, org: &str, runner_group_id: i64, repository_id: i64, ) -> Result<Response, ApiError>

Remove repository access to a self-hosted runner group in an organization

The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see “GitHub’s products.”

Removes a repository from the list of selected repositories that can access a self-hosted runner group. The runner group must have visibility set to selected. For more information, see “Create a self-hosted runner group for an organization.”

You must authenticate using an access token with the admin:org scope to use this endpoint.

API method documentation

Source

pub fn actions_list_self_hosted_runners_in_group_for_org( &self, org: &str, runner_group_id: i64, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List self-hosted runners in a group for an organization

The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see “GitHub’s products.”

Lists self-hosted runners that are in a specific organization group.

You must authenticate using an access token with the admin:org scope to use this endpoint.

API method documentation

Source

pub fn actions_set_self_hosted_runners_in_group_for_org<Content>( &self, org: &str, runner_group_id: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Set self-hosted runners in a group for an organization

The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see “GitHub’s products.”

Replaces the list of self-hosted runners that are part of an organization runner group.

You must authenticate using an access token with the admin:org scope to use this endpoint.

API method documentation

§Content
Source

pub fn actions_add_self_hosted_runner_to_group_for_org( &self, org: &str, runner_group_id: i64, runner_id: i64, ) -> Result<Response, ApiError>

Add a self-hosted runner to a group for an organization

The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see “GitHub’s products.”

Adds a self-hosted runner to a runner group configured in an organization.

You must authenticate using an access token with the admin:org scope to use this endpoint.

API method documentation

Source

pub fn actions_remove_self_hosted_runner_from_group_for_org( &self, org: &str, runner_group_id: i64, runner_id: i64, ) -> Result<Response, ApiError>

Remove a self-hosted runner from a group for an organization

The self-hosted runner groups REST API is available with GitHub Enterprise Cloud. For more information, see “GitHub’s products.”

Removes a self-hosted runner from a group configured in an organization. The runner is then returned to the default group.

You must authenticate using an access token with the admin:org scope to use this endpoint.

API method documentation

Source

pub fn actions_list_self_hosted_runners_for_org( &self, org: &str, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List self-hosted runners for an organization

Lists all self-hosted runners configured in an organization.

You must authenticate using an access token with the admin:org scope to use this endpoint.

API method documentation

Source

pub fn actions_list_runner_applications_for_org( &self, org: &str, ) -> Result<Response, ApiError>

List runner applications for an organization

Lists binaries for the runner application that you can download and run.

You must authenticate using an access token with the admin:org scope to use this endpoint.

API method documentation

Source

pub fn actions_create_registration_token_for_org( &self, org: &str, ) -> Result<Response, ApiError>

Create a registration token for an organization

Returns a token that you can pass to the config script. The token expires after one hour.

You must authenticate using an access token with the admin:org scope to use this endpoint.

§Example using registration token

Configure your self-hosted runner, replacing TOKEN with the registration token provided by this endpoint.

./config.sh --url https://github.com/octo-org --token TOKEN

API method documentation

Source

pub fn actions_create_remove_token_for_org( &self, org: &str, ) -> Result<Response, ApiError>

Create a remove token for an organization

Returns a token that you can pass to the config script to remove a self-hosted runner from an organization. The token expires after one hour.

You must authenticate using an access token with the admin:org scope to use this endpoint.

§Example using remove token

To remove your self-hosted runner from an organization, replace TOKEN with the remove token provided by this endpoint.

./config.sh remove --token TOKEN

API method documentation

Source

pub fn actions_get_self_hosted_runner_for_org( &self, org: &str, runner_id: i64, ) -> Result<Response, ApiError>

Get a self-hosted runner for an organization

Gets a specific self-hosted runner configured in an organization.

You must authenticate using an access token with the admin:org scope to use this endpoint.

API method documentation

Source

pub fn actions_delete_self_hosted_runner_from_org( &self, org: &str, runner_id: i64, ) -> Result<Response, ApiError>

Delete a self-hosted runner from an organization

Forces the removal of a self-hosted runner from an organization. You can use this endpoint to completely remove the runner when the machine you were using no longer exists.

You must authenticate using an access token with the admin:org scope to use this endpoint.

API method documentation

Source

pub fn actions_list_labels_for_self_hosted_runner_for_org( &self, org: &str, runner_id: i64, ) -> Result<Response, ApiError>

List labels for a self-hosted runner for an organization

Lists all labels for a self-hosted runner configured in an organization.

You must authenticate using an access token with the admin:org scope to use this endpoint.

API method documentation

Source

pub fn actions_set_custom_labels_for_self_hosted_runner_for_org<Content>( &self, org: &str, runner_id: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Set custom labels for a self-hosted runner for an organization

Remove all previous custom labels and set the new custom labels for a specific self-hosted runner configured in an organization.

You must authenticate using an access token with the admin:org scope to use this endpoint.

API method documentation

§Content
Source

pub fn actions_add_custom_labels_to_self_hosted_runner_for_org<Content>( &self, org: &str, runner_id: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Add custom labels to a self-hosted runner for an organization

Add custom labels to a self-hosted runner configured in an organization.

You must authenticate using an access token with the admin:org scope to use this endpoint.

API method documentation

§Content
Source

pub fn actions_remove_all_custom_labels_from_self_hosted_runner_for_org( &self, org: &str, runner_id: i64, ) -> Result<Response, ApiError>

Remove all custom labels from a self-hosted runner for an organization

Remove all custom labels from a self-hosted runner configured in an organization. Returns the remaining read-only labels from the runner.

You must authenticate using an access token with the admin:org scope to use this endpoint.

API method documentation

Source

pub fn actions_remove_custom_label_from_self_hosted_runner_for_org( &self, org: &str, runner_id: i64, name: &str, ) -> Result<Response, ApiError>

Remove a custom label from a self-hosted runner for an organization

Remove a custom label from a self-hosted runner configured in an organization. Returns the remaining labels from the runner.

This endpoint returns a 404 Not Found status if the custom label is not present on the runner.

You must authenticate using an access token with the admin:org scope to use this endpoint.

API method documentation

Source

pub fn actions_list_org_secrets( &self, org: &str, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List organization secrets

Lists all secrets available in an organization without revealing their encrypted values. You must authenticate using an access token with the admin:org scope to use this endpoint. GitHub Apps must have the secrets organization permission to use this endpoint.

API method documentation

Source

pub fn actions_get_org_public_key( &self, org: &str, ) -> Result<Response, ApiError>

Get an organization public key

Gets your public key, which you need to encrypt secrets. You need to encrypt a secret before you can create or update secrets. You must authenticate using an access token with the admin:org scope to use this endpoint. GitHub Apps must have the secrets organization permission to use this endpoint.

API method documentation

Source

pub fn actions_get_org_secret( &self, org: &str, secret_name: &str, ) -> Result<Response, ApiError>

Get an organization secret

Gets a single organization secret without revealing its encrypted value. You must authenticate using an access token with the admin:org scope to use this endpoint. GitHub Apps must have the secrets organization permission to use this endpoint.

API method documentation

Source

pub fn actions_create_or_update_org_secret<Content>( &self, org: &str, secret_name: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Create or update an organization secret

Creates or updates an organization secret with an encrypted value. Encrypt your secret using LibSodium. You must authenticate using an access token with the admin:org scope to use this endpoint. GitHub Apps must have the secrets organization permission to use this endpoint.

§Example encrypting a secret using Node.js

Encrypt your secret using the tweetsodium library.

const sodium = require('tweetsodium');
 
const key = "base64-encoded-public-key";
const value = "plain-text-secret";
 
// Convert the message and key to Uint8Array's (Buffer implements that interface)
const messageBytes = Buffer.from(value);
const keyBytes = Buffer.from(key, 'base64');
 
// Encrypt using LibSodium.
const encryptedBytes = sodium.seal(messageBytes, keyBytes);
 
// Base64 the encrypted secret
const encrypted = Buffer.from(encryptedBytes).toString('base64');
 
console.log(encrypted);
§Example encrypting a secret using Python

Encrypt your secret using pynacl with Python 3.

from base64 import b64encode
from nacl import encoding, public
 
def encrypt(public_key: str, secret_value: str) -> str:
  """Encrypt a Unicode string using the public key."""
  public_key = public.PublicKey(public_key.encode("utf-8"), encoding.Base64Encoder())
  sealed_box = public.SealedBox(public_key)
  encrypted = sealed_box.encrypt(secret_value.encode("utf-8"))
  return b64encode(encrypted).decode("utf-8")
§Example encrypting a secret using C#

Encrypt your secret using the Sodium.Core package.

var secretValue = System.Text.Encoding.UTF8.GetBytes("mySecret");
var publicKey = Convert.FromBase64String("2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvvcCU=");
 
var sealedPublicKeyBox = Sodium.SealedPublicKeyBox.Create(secretValue, publicKey);
 
Console.WriteLine(Convert.ToBase64String(sealedPublicKeyBox));
§Example encrypting a secret using Ruby

Encrypt your secret using the rbnacl gem.

require "rbnacl"
require "base64"
 
key = Base64.decode64("+ZYvJDZMHUfBkJdyq5Zm9SKqeuBQ4sj+6sfjlH4CgG0=")
public_key = RbNaCl::PublicKey.new(key)
 
box = RbNaCl::Boxes::Sealed.from_public_key(public_key)
encrypted_secret = box.encrypt("my_secret")
 
# Print the base64 encoded secret
puts Base64.strict_encode64(encrypted_secret)

API method documentation

§Content
Source

pub fn actions_delete_org_secret( &self, org: &str, secret_name: &str, ) -> Result<Response, ApiError>

Delete an organization secret

Deletes a secret in an organization using the secret name. You must authenticate using an access token with the admin:org scope to use this endpoint. GitHub Apps must have the secrets organization permission to use this endpoint.

API method documentation

Source

pub fn actions_list_selected_repos_for_org_secret( &self, org: &str, secret_name: &str, page: Option<i64>, per_page: Option<i64>, ) -> Result<Response, ApiError>

List selected repositories for an organization secret

Lists all repositories that have been selected when the visibility for repository access to a secret is set to selected. You must authenticate using an access token with the admin:org scope to use this endpoint. GitHub Apps must have the secrets organization permission to use this endpoint.

API method documentation

Source

pub fn actions_set_selected_repos_for_org_secret<Content>( &self, org: &str, secret_name: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Set selected repositories for an organization secret

Replaces all repositories for an organization secret when the visibility for repository access is set to selected. The visibility is set when you Create or update an organization secret. You must authenticate using an access token with the admin:org scope to use this endpoint. GitHub Apps must have the secrets organization permission to use this endpoint.

API method documentation

§Content
Source

pub fn actions_add_selected_repo_to_org_secret( &self, org: &str, secret_name: &str, repository_id: i64, ) -> Result<Response, ApiError>

Add selected repository to an organization secret

Adds a repository to an organization secret when the visibility for repository access is set to selected. The visibility is set when you Create or update an organization secret. You must authenticate using an access token with the admin:org scope to use this endpoint. GitHub Apps must have the secrets organization permission to use this endpoint.

API method documentation

Source

pub fn actions_remove_selected_repo_from_org_secret( &self, org: &str, secret_name: &str, repository_id: i64, ) -> Result<Response, ApiError>

Remove selected repository from an organization secret

Removes a repository from an organization secret when the visibility for repository access is set to selected. The visibility is set when you Create or update an organization secret. You must authenticate using an access token with the admin:org scope to use this endpoint. GitHub Apps must have the secrets organization permission to use this endpoint.

API method documentation

Source

pub fn orgs_get_audit_log( &self, org: &str, phrase: Option<&str>, include: Option<&str>, after: Option<&str>, before: Option<&str>, order: Option<&str>, per_page: Option<i64>, ) -> Result<Response, ApiError>

Get the audit log for an organization

Gets the audit log for an organization. For more information, see “Reviewing the audit log for your organization.”

This endpoint is available for organizations on GitHub Enterprise Cloud. To use this endpoint, you must be an organization owner, and you must use an access token with the admin:org scope. GitHub Apps must have the organization_administration read permission to use this endpoint.

By default, the response includes up to 30 events from the past three months. Use the phrase parameter to filter results and retrieve older events. For example, use the phrase parameter with the created qualifier to filter events based on when the events occurred. For more information, see “Reviewing the audit log for your organization.”

Use pagination to retrieve fewer or more than 30 events. For more information, see “Resources in the REST API.”

API method documentation

Source

pub fn orgs_list_blocked_users(&self, org: &str) -> Result<Response, ApiError>

List users blocked by an organization

List the users blocked by an organization.

API method documentation

Source

pub fn orgs_check_blocked_user( &self, org: &str, username: &str, ) -> Result<Response, ApiError>

Check if a user is blocked by an organization

API method documentation

Source

pub fn orgs_block_user( &self, org: &str, username: &str, ) -> Result<Response, ApiError>

Block a user from an organization

API method documentation

Source

pub fn orgs_unblock_user( &self, org: &str, username: &str, ) -> Result<Response, ApiError>

Unblock a user from an organization

API method documentation

Source

pub fn code_scanning_list_alerts_for_org( &self, org: &str, tool_name: Option<&str>, tool_guid: Option<Option<&str>>, before: Option<&str>, after: Option<&str>, page: Option<i64>, per_page: Option<i64>, state: Option<&str>, sort: &Sort<'_>, ) -> Result<Response, ApiError>

List code scanning alerts for an organization

Lists all code scanning alerts for the default branch (usually main or master) for all eligible repositories in an organization. To use this endpoint, you must be an administrator or security manager for the organization, and you must use an access token with the repo scope or security_events scope.

GitHub Apps must have the security_events read permission to use this endpoint.

API method documentation

Source

pub fn orgs_list_saml_sso_authorizations( &self, org: &str, per_page: Option<i64>, page: Option<i64>, login: Option<&str>, ) -> Result<Response, ApiError>

List SAML SSO authorizations for an organization

Listing and deleting credential authorizations is available to organizations with GitHub Enterprise Cloud. For more information, see GitHub’s products.

An authenticated organization owner with the read:org scope can list all credential authorizations for an organization that uses SAML single sign-on (SSO). The credentials are either personal access tokens or SSH keys that organization members have authorized for the organization. For more information, see About authentication with SAML single sign-on.

API method documentation

Source

pub fn orgs_remove_saml_sso_authorization( &self, org: &str, credential_id: i64, ) -> Result<Response, ApiError>

Remove a SAML SSO authorization for an organization

Listing and deleting credential authorizations is available to organizations with GitHub Enterprise Cloud. For more information, see GitHub’s products.

An authenticated organization owner with the admin:org scope can remove a credential authorization for an organization that uses SAML SSO. Once you remove someone’s credential authorization, they will need to create a new personal access token or SSH key and authorize it for the organization they want to access.

API method documentation

Source

pub fn dependabot_list_org_secrets( &self, org: &str, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List organization secrets

Lists all secrets available in an organization without revealing their encrypted values. You must authenticate using an access token with the admin:org scope to use this endpoint. GitHub Apps must have the dependabot_secrets organization permission to use this endpoint.

API method documentation

Source

pub fn dependabot_get_org_public_key( &self, org: &str, ) -> Result<Response, ApiError>

Get an organization public key

Gets your public key, which you need to encrypt secrets. You need to encrypt a secret before you can create or update secrets. You must authenticate using an access token with the admin:org scope to use this endpoint. GitHub Apps must have the dependabot_secrets organization permission to use this endpoint.

API method documentation

Source

pub fn dependabot_get_org_secret( &self, org: &str, secret_name: &str, ) -> Result<Response, ApiError>

Get an organization secret

Gets a single organization secret without revealing its encrypted value. You must authenticate using an access token with the admin:org scope to use this endpoint. GitHub Apps must have the dependabot_secrets organization permission to use this endpoint.

API method documentation

Source

pub fn dependabot_create_or_update_org_secret<Content>( &self, org: &str, secret_name: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Create or update an organization secret

Creates or updates an organization secret with an encrypted value. Encrypt your secret using LibSodium. You must authenticate using an access token with the admin:org scope to use this endpoint. GitHub Apps must have the dependabot_secrets organization permission to use this endpoint.

§Example encrypting a secret using Node.js

Encrypt your secret using the tweetsodium library.

const sodium = require('tweetsodium');
 
const key = "base64-encoded-public-key";
const value = "plain-text-secret";
 
// Convert the message and key to Uint8Array's (Buffer implements that interface)
const messageBytes = Buffer.from(value);
const keyBytes = Buffer.from(key, 'base64');
 
// Encrypt using LibSodium.
const encryptedBytes = sodium.seal(messageBytes, keyBytes);
 
// Base64 the encrypted secret
const encrypted = Buffer.from(encryptedBytes).toString('base64');
 
console.log(encrypted);
§Example encrypting a secret using Python

Encrypt your secret using pynacl with Python 3.

from base64 import b64encode
from nacl import encoding, public
 
def encrypt(public_key: str, secret_value: str) -> str:
  """Encrypt a Unicode string using the public key."""
  public_key = public.PublicKey(public_key.encode("utf-8"), encoding.Base64Encoder())
  sealed_box = public.SealedBox(public_key)
  encrypted = sealed_box.encrypt(secret_value.encode("utf-8"))
  return b64encode(encrypted).decode("utf-8")
§Example encrypting a secret using C#

Encrypt your secret using the Sodium.Core package.

var secretValue = System.Text.Encoding.UTF8.GetBytes("mySecret");
var publicKey = Convert.FromBase64String("2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvvcCU=");
 
var sealedPublicKeyBox = Sodium.SealedPublicKeyBox.Create(secretValue, publicKey);
 
Console.WriteLine(Convert.ToBase64String(sealedPublicKeyBox));
§Example encrypting a secret using Ruby

Encrypt your secret using the rbnacl gem.

require "rbnacl"
require "base64"
 
key = Base64.decode64("+ZYvJDZMHUfBkJdyq5Zm9SKqeuBQ4sj+6sfjlH4CgG0=")
public_key = RbNaCl::PublicKey.new(key)
 
box = RbNaCl::Boxes::Sealed.from_public_key(public_key)
encrypted_secret = box.encrypt("my_secret")
 
# Print the base64 encoded secret
puts Base64.strict_encode64(encrypted_secret)

API method documentation

§Content
Source

pub fn dependabot_delete_org_secret( &self, org: &str, secret_name: &str, ) -> Result<Response, ApiError>

Delete an organization secret

Deletes a secret in an organization using the secret name. You must authenticate using an access token with the admin:org scope to use this endpoint. GitHub Apps must have the dependabot_secrets organization permission to use this endpoint.

API method documentation

Source

pub fn dependabot_list_selected_repos_for_org_secret( &self, org: &str, secret_name: &str, page: Option<i64>, per_page: Option<i64>, ) -> Result<Response, ApiError>

List selected repositories for an organization secret

Lists all repositories that have been selected when the visibility for repository access to a secret is set to selected. You must authenticate using an access token with the admin:org scope to use this endpoint. GitHub Apps must have the dependabot_secrets organization permission to use this endpoint.

API method documentation

Source

pub fn dependabot_set_selected_repos_for_org_secret<Content>( &self, org: &str, secret_name: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Set selected repositories for an organization secret

Replaces all repositories for an organization secret when the visibility for repository access is set to selected. The visibility is set when you Create or update an organization secret. You must authenticate using an access token with the admin:org scope to use this endpoint. GitHub Apps must have the dependabot_secrets organization permission to use this endpoint.

API method documentation

§Content
Source

pub fn dependabot_add_selected_repo_to_org_secret( &self, org: &str, secret_name: &str, repository_id: i64, ) -> Result<Response, ApiError>

Add selected repository to an organization secret

Adds a repository to an organization secret when the visibility for repository access is set to selected. The visibility is set when you Create or update an organization secret. You must authenticate using an access token with the admin:org scope to use this endpoint. GitHub Apps must have the dependabot_secrets organization permission to use this endpoint.

API method documentation

Source

pub fn dependabot_remove_selected_repo_from_org_secret( &self, org: &str, secret_name: &str, repository_id: i64, ) -> Result<Response, ApiError>

Remove selected repository from an organization secret

Removes a repository from an organization secret when the visibility for repository access is set to selected. The visibility is set when you Create or update an organization secret. You must authenticate using an access token with the admin:org scope to use this endpoint. GitHub Apps must have the dependabot_secrets organization permission to use this endpoint.

API method documentation

Source

pub fn activity_list_public_org_events( &self, org: &str, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List public organization events

API method documentation

Source

pub fn teams_external_idp_group_info_for_org( &self, org: &str, group_id: i64, ) -> Result<Response, ApiError>

Get an external group

Displays information about the specific group’s usage. Provides a list of the group’s external members as well as a list of teams that this group is connected to.

You can manage team membership with your identity provider using Enterprise Managed Users for GitHub Enterprise Cloud. For more information, see “GitHub’s products” in the GitHub Help documentation.

API method documentation

Source

pub fn teams_list_external_idp_groups_for_org( &self, org: &str, per_page: Option<i64>, page: Option<i64>, display_name: Option<&str>, ) -> Result<Response, ApiError>

List external groups in an organization

Lists external groups available in an organization. You can query the groups using the display_name parameter, only groups with a group_name containing the text provided in the display_name parameter will be returned. You can also limit your page results using the per_page parameter. GitHub generates a url-encoded page token using a cursor value for where the next page begins. For more information on cursor pagination, see “Offset and Cursor Pagination explained.”

You can manage team membership with your identity provider using Enterprise Managed Users for GitHub Enterprise Cloud. For more information, see “GitHub’s products” in the GitHub Help documentation.

API method documentation

Source

pub fn orgs_list_failed_invitations( &self, org: &str, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List failed organization invitations

The return hash contains failed_at and failed_reason fields which represent the time at which the invitation failed and the reason for the failure.

API method documentation

Source

pub fn orgs_list_webhooks( &self, org: &str, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List organization webhooks

API method documentation

Source

pub fn orgs_create_webhook<Content>( &self, org: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Create an organization webhook

Here’s how you can create a hook that posts payloads in JSON format:

API method documentation

§Content
Source

pub fn orgs_get_webhook( &self, org: &str, hook_id: i64, ) -> Result<Response, ApiError>

Get an organization webhook

Returns a webhook configured in an organization. To get only the webhook config properties, see “Get a webhook configuration for an organization.”

API method documentation

Source

pub fn orgs_delete_webhook( &self, org: &str, hook_id: i64, ) -> Result<Response, ApiError>

Delete an organization webhook

API method documentation

Source

pub fn orgs_update_webhook<Content>( &self, org: &str, hook_id: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Update an organization webhook

Updates a webhook configured in an organization. When you update a webhook, the secret will be overwritten. 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 an organization.”

API method documentation

§Content
Source

pub fn orgs_get_webhook_config_for_org( &self, org: &str, hook_id: i64, ) -> Result<Response, ApiError>

Get a webhook configuration for an organization

Returns the webhook configuration for an organization. To get more information about the webhook, including the active state and events, use “Get an organization webhook .”

Access tokens must have the admin:org_hook scope, and GitHub Apps must have the organization_hooks:read permission.

API method documentation

Source

pub fn orgs_update_webhook_config_for_org<Content>( &self, org: &str, hook_id: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Update a webhook configuration for an organization

Updates the webhook configuration for an organization. To update more information about the webhook, including the active state and events, use “Update an organization webhook .”

Access tokens must have the admin:org_hook scope, and GitHub Apps must have the organization_hooks:write permission.

API method documentation

§Content
Source

pub fn orgs_list_webhook_deliveries( &self, org: &str, hook_id: i64, per_page: Option<i64>, cursor: Option<&str>, ) -> Result<Response, ApiError>

List deliveries for an organization webhook

Returns a list of webhook deliveries for a webhook configured in an organization.

API method documentation

Source

pub fn orgs_get_webhook_delivery( &self, org: &str, hook_id: i64, delivery_id: i64, ) -> Result<Response, ApiError>

Get a webhook delivery for an organization webhook

Returns a delivery for a webhook configured in an organization.

API method documentation

Source

pub fn orgs_redeliver_webhook_delivery( &self, org: &str, hook_id: i64, delivery_id: i64, ) -> Result<Response, ApiError>

Redeliver a delivery for an organization webhook

Redeliver a delivery for a webhook configured in an organization.

API method documentation

Source

pub fn orgs_ping_webhook( &self, org: &str, hook_id: i64, ) -> Result<Response, ApiError>

Ping an organization webhook

This will trigger a ping event to be sent to the hook.

API method documentation

Source

pub fn apps_get_org_installation(&self, org: &str) -> Result<Response, ApiError>

Get an organization installation for the authenticated app

Enables an authenticated GitHub App to find the organization’s installation information.

You must use a JWT to access this endpoint.

API method documentation

Source

pub fn orgs_list_app_installations( &self, org: &str, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List app installations for an organization

Lists all GitHub Apps in an organization. The installation count includes all GitHub Apps installed on repositories in the organization. You must be an organization owner with admin:read scope to use this endpoint.

API method documentation

Source

pub fn interactions_get_restrictions_for_org( &self, org: &str, ) -> Result<Response, ApiError>

Get interaction restrictions for an organization

Shows which type of GitHub user can interact with this organization and when the restriction expires. If there is no restrictions, you will see an empty response.

API method documentation

Source

pub fn interactions_set_restrictions_for_org<Content>( &self, org: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Set interaction restrictions for an organization

Temporarily restricts interactions to a certain type of GitHub user in any public repository in the given organization. You must be an organization owner to set these restrictions. Setting the interaction limit at the organization level will overwrite any interaction limits that are set for individual repositories owned by the organization.

API method documentation

§Content
Source

pub fn interactions_remove_restrictions_for_org( &self, org: &str, ) -> Result<Response, ApiError>

Remove interaction restrictions for an organization

Removes all interaction restrictions from public repositories in the given organization. You must be an organization owner to remove restrictions.

API method documentation

Source

pub fn orgs_list_pending_invitations( &self, org: &str, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List pending organization invitations

The return hash contains a role field which refers to the Organization Invitation role and will be one of the following values: direct_member, admin, billing_manager, hiring_manager, or reinstate. If the invitee is not a GitHub member, the login field in the return hash will be null.

API method documentation

Source

pub fn orgs_create_invitation<Content>( &self, org: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Create an organization invitation

Invite people to an organization by using their GitHub user ID or their email address. In order to create invitations in an organization, the authenticated user must be an organization owner.

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.

API method documentation

§Content
Source

pub fn orgs_cancel_invitation( &self, org: &str, invitation_id: i64, ) -> Result<Response, ApiError>

Cancel an organization invitation

Cancel an organization invitation. In order to cancel an organization invitation, the authenticated user must be an organization owner.

This endpoint triggers notifications.

API method documentation

Source

pub fn orgs_list_invitation_teams( &self, org: &str, invitation_id: i64, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List organization invitation teams

List all teams associated with an invitation. In order to see invitations in an organization, the authenticated user must be an organization owner.

API method documentation

Source

pub fn issues_list_for_org( &self, org: &str, filter: Option<&str>, state: Option<&str>, labels: Option<&str>, sort: &Sort<'_>, since: Option<&str>, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List organization issues assigned to the authenticated user

List issues in an organization assigned to the authenticated user.

Note: GitHub’s REST API v3 considers every pull request an issue, but not every issue is a pull request. For this reason, “Issues” endpoints may return both issues and pull requests in the response. You can identify pull requests by the pull_request key. Be aware that the id of a pull request returned from “Issues” endpoints will be an issue id. To find out the pull request id, use the “List pull requests” endpoint.

API method documentation

Source

pub fn orgs_list_members( &self, org: &str, filter: Option<&str>, role: Option<&str>, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List organization members

List all users who are members of an organization. If the authenticated user is also a member of this organization then both concealed and public members will be returned.

API method documentation

Source

pub fn orgs_check_membership_for_user( &self, org: &str, username: &str, ) -> Result<Response, ApiError>

Check organization membership for a user

Check if a user is, publicly or privately, a member of the organization.

API method documentation

Source

pub fn orgs_remove_member( &self, org: &str, username: &str, ) -> Result<Response, ApiError>

Remove an organization member

Removing a user from this list will remove them from all teams and they will no longer have any access to the organization’s repositories.

API method documentation

Source

pub fn orgs_get_membership_for_user( &self, org: &str, username: &str, ) -> Result<Response, ApiError>

Get organization membership for a user

In order to get a user’s membership with an organization, the authenticated user must be an organization member. The state parameter in the response can be used to identify the user’s membership status.

API method documentation

Source

pub fn orgs_set_membership_for_user<Content>( &self, org: &str, username: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Set organization membership for a user

Only authenticated organization owners can add a member to the organization or update the member’s role.

  • If the authenticated user is adding a member to the organization, the invited user will receive an email inviting them to the organization. The user’s membership status will be pending until they accept the invitation.

  • Authenticated users can update a user’s membership by passing the role parameter. If the authenticated user changes a member’s role to admin, the affected user will receive an email notifying them that they’ve been made an organization owner. If the authenticated user changes an owner’s role to member, no email will be sent.

Rate limits

To prevent abuse, the authenticated user is limited to 50 organization invitations per 24 hour period. If the organization is more than one month old or on a paid plan, the limit is 500 invitations per 24 hour period.

API method documentation

§Content
Source

pub fn orgs_remove_membership_for_user( &self, org: &str, username: &str, ) -> Result<Response, ApiError>

Remove organization membership for a user

In order to remove a user’s membership with an organization, the authenticated user must be an organization owner.

If the specified user is an active member of the organization, this will remove them from the organization. If the specified user has been invited to the organization, this will cancel their invitation. The specified user will receive an email notification in both cases.

API method documentation

Source

pub fn migrations_list_for_org( &self, org: &str, per_page: Option<i64>, page: Option<i64>, exclude: Option<&[Cow<'_, str>]>, ) -> Result<Response, ApiError>

List organization migrations

Lists the most recent migrations.

API method documentation

Source

pub fn migrations_start_for_org<Content>( &self, org: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Start an organization migration

Initiates the generation of a migration archive.

API method documentation

§Content
Source

pub fn migrations_get_status_for_org( &self, org: &str, migration_id: i64, exclude: Option<&[Cow<'_, str>]>, ) -> Result<Response, ApiError>

Get an organization migration status

Fetches the status of a migration.

The state of a migration can be one of the following values:

  • pending, which means the migration hasn’t started yet.
  • exporting, which means the migration is in progress.
  • exported, which means the migration finished successfully.
  • failed, which means the migration failed.

API method documentation

Source

pub fn migrations_download_archive_for_org( &self, org: &str, migration_id: i64, ) -> Result<Response, ApiError>

Download an organization migration archive

Fetches the URL to a migration archive.

API method documentation

Source

pub fn migrations_delete_archive_for_org( &self, org: &str, migration_id: i64, ) -> Result<Response, ApiError>

Delete an organization migration archive

Deletes a previous migration archive. Migration archives are automatically deleted after seven days.

API method documentation

Source

pub fn migrations_unlock_repo_for_org( &self, org: &str, migration_id: i64, repo_name: &str, ) -> Result<Response, ApiError>

Unlock an organization repository

Unlocks a repository that was locked for migration. You should unlock each migrated repository and delete them when the migration is complete and you no longer need the source data.

API method documentation

Source

pub fn migrations_list_repos_for_org( &self, org: &str, migration_id: i64, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List repositories in an organization migration

List all the repositories for this organization migration.

API method documentation

Source

pub fn orgs_list_outside_collaborators( &self, org: &str, filter: Option<&str>, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List outside collaborators for an organization

List all users who are outside collaborators of an organization.

API method documentation

Source

pub fn orgs_convert_member_to_outside_collaborator( &self, org: &str, username: &str, ) -> Result<Response, ApiError>

Convert an organization member to outside collaborator

When an organization member is converted to an outside collaborator, they’ll only have access to the repositories that their current team membership allows. The user will no longer be a member of the organization. For more information, see “Converting an organization member to an outside collaborator”. Converting an organization member to an outside collaborator may be restricted by enterprise administrators. For more information, see “Enforcing repository management policies in your enterprise.”

API method documentation

Source

pub fn orgs_remove_outside_collaborator( &self, org: &str, username: &str, ) -> Result<Response, ApiError>

Remove outside collaborator from an organization

Removing a user from this list will remove them from all the organization’s repositories.

API method documentation

Source

pub fn packages_list_packages_for_organization( &self, package_type: &str, org: &str, visibility: Option<&str>, ) -> Result<Response, ApiError>

List packages for an organization

Lists all packages in an organization readable by the user.

To use this endpoint, you must authenticate using an access token with the packages:read scope. If package_type is not container, your token must also include the repo scope.

API method documentation

Source

pub fn packages_get_package_for_organization( &self, package_type: &str, package_name: &str, org: &str, ) -> Result<Response, ApiError>

Get a package for an organization

Gets a specific package in an organization.

To use this endpoint, you must authenticate using an access token with the packages:read scope. If package_type is not container, your token must also include the repo scope.

API method documentation

Source

pub fn packages_delete_package_for_org( &self, package_type: &str, package_name: &str, org: &str, ) -> Result<Response, ApiError>

Delete a package for an organization

Deletes an entire package in an organization. You cannot delete a public package if any version of the package has more than 5,000 downloads. In this scenario, contact GitHub support for further assistance.

To use this endpoint, you must have admin permissions in the organization and authenticate using an access token with the packages:read and packages:delete scopes. In addition:

  • If package_type is not container, your token must also include the repo scope.
  • If package_type is container, you must also have admin permissions to the container you want to delete.

API method documentation

Source

pub fn packages_restore_package_for_org( &self, package_type: &str, package_name: &str, org: &str, token: Option<&str>, ) -> Result<Response, ApiError>

Restore a package for an organization

Restores an entire package in an organization.

You can restore a deleted package under the following conditions:

  • The package was deleted within the last 30 days.
  • The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package’s namespace first.

To use this endpoint, you must have admin permissions in the organization and authenticate using an access token with the packages:read and packages:write scopes. In addition:

  • If package_type is not container, your token must also include the repo scope.
  • If package_type is container, you must also have admin permissions to the container that you want to restore.

API method documentation

Source

pub fn packages_get_all_package_versions_for_package_owned_by_org( &self, package_type: &str, package_name: &str, org: &str, page: Option<i64>, per_page: Option<i64>, state: Option<&str>, ) -> Result<Response, ApiError>

Get all package versions for a package owned by an organization

Returns all package versions for a package owned by an organization.

To use this endpoint, you must authenticate using an access token with the packages:read scope. If package_type is not container, your token must also include the repo scope.

API method documentation

Source

pub fn packages_get_package_version_for_organization( &self, package_type: &str, package_name: &str, org: &str, package_version_id: i64, ) -> Result<Response, ApiError>

Get a package version for an organization

Gets a specific package version in an organization.

You must authenticate using an access token with the packages:read scope. If package_type is not container, your token must also include the repo scope.

API method documentation

Source

pub fn packages_delete_package_version_for_org( &self, package_type: &str, package_name: &str, org: &str, package_version_id: i64, ) -> Result<Response, ApiError>

Delete package version for an organization

Deletes a specific package version in an organization. If the package is public and the package version has more than 5,000 downloads, you cannot delete the package version. In this scenario, contact GitHub support for further assistance.

To use this endpoint, you must have admin permissions in the organization and authenticate using an access token with the packages:read and packages:delete scopes. In addition:

  • If package_type is not container, your token must also include the repo scope.
  • If package_type is container, you must also have admin permissions to the container you want to delete.

API method documentation

Source

pub fn packages_restore_package_version_for_org( &self, package_type: &str, package_name: &str, org: &str, package_version_id: i64, ) -> Result<Response, ApiError>

Restore package version for an organization

Restores a specific package version in an organization.

You can restore a deleted package under the following conditions:

  • The package was deleted within the last 30 days.
  • The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package’s namespace first.

To use this endpoint, you must have admin permissions in the organization and authenticate using an access token with the packages:read and packages:write scopes. In addition:

  • If package_type is not container, your token must also include the repo scope.
  • If package_type is container, you must also have admin permissions to the container that you want to restore.

API method documentation

Source

pub fn projects_list_for_org( &self, org: &str, state: Option<&str>, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List organization projects

Lists the projects in an organization. Returns a 404 Not Found status if projects are disabled in the organization. If you do not have sufficient privileges to perform this action, a 401 Unauthorized or 410 Gone status is returned.

API method documentation

Source

pub fn projects_create_for_org<Content>( &self, org: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Create an organization project

Creates an organization project board. Returns a 404 Not Found status if projects are disabled in the organization. If you do not have sufficient privileges to perform this action, a 401 Unauthorized or 410 Gone status is returned.

API method documentation

§Content
Source

pub fn orgs_list_public_members( &self, org: &str, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List public organization members

Members of an organization can choose to have their membership publicized or not.

API method documentation

Source

pub fn orgs_check_public_membership_for_user( &self, org: &str, username: &str, ) -> Result<Response, ApiError>

Check public organization membership for a user

API method documentation

Source

pub fn orgs_set_public_membership_for_authenticated_user( &self, org: &str, username: &str, ) -> Result<Response, ApiError>

Set public organization membership for the authenticated user

The user can publicize their own membership. (A user cannot publicize the membership for another user.)

Note that you’ll need to set Content-Length to zero when calling out to this endpoint. For more information, see “HTTP verbs.”

API method documentation

Source

pub fn orgs_remove_public_membership_for_authenticated_user( &self, org: &str, username: &str, ) -> Result<Response, ApiError>

Remove public organization membership for the authenticated user

API method documentation

Source

pub fn repos_list_for_org( &self, org: &str, type: Option<&str>, sort: &Sort<'_>, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List organization repositories

Lists repositories for the specified organization.

API method documentation

Source

pub fn repos_create_in_org<Content>( &self, org: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

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 or repo scope to create a public repository. Note: For GitHub AE, use repo scope to create an internal repository.
  • repo scope to create a private repository

API method documentation

§Content
Source

pub fn secret_scanning_list_alerts_for_org( &self, org: &str, state: Option<&str>, secret_type: Option<&str>, resolution: Option<&str>, page: Option<i64>, per_page: Option<i64>, ) -> Result<Response, ApiError>

List secret scanning alerts for an organization

Lists secret scanning alerts for eligible repositories in an organization, from newest to oldest. To use this endpoint, you must be an administrator or security manager for the organization, and you must use an access token with the repo scope or security_events scope.

GitHub Apps must have the secret_scanning_alerts read permission to use this endpoint.

API method documentation

Source

pub fn billing_get_github_actions_billing_org( &self, org: &str, ) -> Result<Response, ApiError>

Get GitHub Actions billing for an organization

Gets the summary of the free and paid GitHub Actions minutes used.

Paid minutes only apply to workflows in private repositories that use GitHub-hosted runners. Minutes used is listed for each GitHub-hosted runner operating system. Any job re-runs are also included in the usage. The usage returned includes any minute multipliers for macOS and Windows runners, and is rounded up to the nearest whole minute. For more information, see “Managing billing for GitHub Actions”.

Access tokens must have the repo or admin:org scope.

API method documentation

Source

pub fn billing_get_github_advanced_security_billing_org( &self, org: &str, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

Get GitHub Advanced Security active committers for an organization

Gets the GitHub Advanced Security active committers for an organization per repository. Each distinct user login across all repositories is counted as a single Advanced Security seat, so the total_advanced_security_committers is not the sum of advanced_security_committers for each repository. If this organization defers to an enterprise for billing, the total_advanced_security_committers returned from the organization API may include some users that are in more than one organization, so they will only consume a single Advanced Security seat at the enterprise level.

API method documentation

Source

pub fn billing_get_github_packages_billing_org( &self, org: &str, ) -> Result<Response, ApiError>

Get GitHub Packages billing for an organization

Gets the free and paid storage used for GitHub Packages in gigabytes.

Paid minutes only apply to packages stored for private repositories. For more information, see “Managing billing for GitHub Packages.”

Access tokens must have the repo or admin:org scope.

API method documentation

Source

pub fn billing_get_shared_storage_billing_org( &self, org: &str, ) -> Result<Response, ApiError>

Get shared storage billing for an organization

Gets the estimated paid and estimated total storage used for GitHub Actions and GitHub Packages.

Paid minutes only apply to packages stored for private repositories. For more information, see “Managing billing for GitHub Packages.”

Access tokens must have the repo or admin:org scope.

API method documentation

Source

pub fn teams_list_idp_groups_for_org( &self, org: &str, per_page: Option<i64>, page: Option<&str>, ) -> Result<Response, ApiError>

List IdP groups for an organization

Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see GitHub’s products in the GitHub Help documentation.

List IdP groups available in an organization. You can limit your page results using the per_page parameter. GitHub generates a url-encoded page token using a cursor value for where the next page begins. For more information on cursor pagination, see “Offset and Cursor Pagination explained.”

API method documentation

Source

pub fn teams_list( &self, org: &str, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List teams

Lists all teams in an organization that are visible to the authenticated user.

API method documentation

Source

pub fn teams_create<Content>( &self, org: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Create a team

To create a team, the authenticated user must be a member or owner of {org}. By default, organization members can create teams. Organization owners can limit team creation to organization owners. For more information, see “Setting team creation permissions.”

When you create a new team, you automatically become a team maintainer without explicitly adding yourself to the optional array of maintainers. For more information, see “About teams”.

API method documentation

§Content
Source

pub fn teams_get_by_name( &self, org: &str, team_slug: &str, ) -> Result<Response, ApiError>

Get a team by name

Gets a team using the team’s slug. GitHub generates the slug from the team name.

Note: You can also specify a team by org_id and team_id using the route GET /organizations/{org_id}/team/{team_id}.

API method documentation

Source

pub fn teams_delete_in_org( &self, org: &str, team_slug: &str, ) -> Result<Response, ApiError>

Delete a team

To delete a team, the authenticated user must be an organization owner or team maintainer.

If you are an organization owner, deleting a parent team will delete all of its child teams as well.

Note: You can also specify a team by org_id and team_id using the route DELETE /organizations/{org_id}/team/{team_id}.

API method documentation

Source

pub fn teams_update_in_org<Content>( &self, org: &str, team_slug: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Update a team

To edit a team, the authenticated user must either be an organization owner or a team maintainer.

Note: You can also specify a team by org_id and team_id using the route PATCH /organizations/{org_id}/team/{team_id}.

API method documentation

§Content
Source

pub fn teams_list_discussions_in_org( &self, org: &str, team_slug: &str, direction: Option<&str>, per_page: Option<i64>, page: Option<i64>, pinned: Option<&str>, ) -> Result<Response, ApiError>

List discussions

List all discussions on a team’s page. OAuth access tokens require the read:discussion scope.

Note: You can also specify a team by org_id and team_id using the route GET /organizations/{org_id}/team/{team_id}/discussions.

API method documentation

Source

pub fn teams_create_discussion_in_org<Content>( &self, org: &str, team_slug: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Create a discussion

Creates a new discussion post on a team’s page. OAuth access tokens require the write:discussion scope.

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.

Note: You can also specify a team by org_id and team_id using the route POST /organizations/{org_id}/team/{team_id}/discussions.

API method documentation

§Content
Source

pub fn teams_get_discussion_in_org( &self, org: &str, team_slug: &str, discussion_number: i64, ) -> Result<Response, ApiError>

Get a discussion

Get a specific discussion on a team’s page. OAuth access tokens require the read:discussion scope.

Note: You can also specify a team by org_id and team_id using the route GET /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}.

API method documentation

Source

pub fn teams_delete_discussion_in_org( &self, org: &str, team_slug: &str, discussion_number: i64, ) -> Result<Response, ApiError>

Delete a discussion

Delete a discussion from a team’s page. OAuth access tokens require the write:discussion scope.

Note: You can also specify a team by org_id and team_id using the route DELETE /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}.

API method documentation

Source

pub fn teams_update_discussion_in_org<Content>( &self, org: &str, team_slug: &str, discussion_number: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Update a discussion

Edits the title and body text of a discussion post. Only the parameters you provide are updated. OAuth access tokens require the write:discussion scope.

Note: You can also specify a team by org_id and team_id using the route PATCH /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}.

API method documentation

§Content
Source

pub fn teams_list_discussion_comments_in_org( &self, org: &str, team_slug: &str, discussion_number: i64, direction: Option<&str>, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List discussion comments

List all comments on a team discussion. OAuth access tokens require the read:discussion scope.

Note: You can also specify a team by org_id and team_id using the route GET /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments.

API method documentation

Source

pub fn teams_create_discussion_comment_in_org<Content>( &self, org: &str, team_slug: &str, discussion_number: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Create a discussion comment

Creates a new comment on a team discussion. OAuth access tokens require the write:discussion scope.

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.

Note: You can also specify a team by org_id and team_id using the route POST /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments.

API method documentation

§Content
Source

pub fn teams_get_discussion_comment_in_org( &self, org: &str, team_slug: &str, discussion_number: i64, comment_number: i64, ) -> Result<Response, ApiError>

Get a discussion comment

Get a specific comment on a team discussion. OAuth access tokens require the read:discussion scope.

Note: You can also specify a team by org_id and team_id using the route GET /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments/{comment_number}.

API method documentation

Source

pub fn teams_delete_discussion_comment_in_org( &self, org: &str, team_slug: &str, discussion_number: i64, comment_number: i64, ) -> Result<Response, ApiError>

Delete a discussion comment

Deletes a comment on a team discussion. OAuth access tokens require the write:discussion scope.

Note: You can also specify a team by org_id and team_id using the route DELETE /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments/{comment_number}.

API method documentation

Source

pub fn teams_update_discussion_comment_in_org<Content>( &self, org: &str, team_slug: &str, discussion_number: i64, comment_number: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Update a discussion comment

Edits the body text of a discussion comment. OAuth access tokens require the write:discussion scope.

Note: You can also specify a team by org_id and team_id using the route PATCH /organizations/{org_id}/team/{team_id}/discussions/{discussion_number}/comments/{comment_number}.

API method documentation

§Content
Source

pub fn reactions_list_for_team_discussion_comment_in_org( &self, org: &str, team_slug: &str, discussion_number: i64, comment_number: i64, content: Option<&str>, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List reactions for a team discussion comment

List the reactions to a team discussion comment. OAuth access tokens require the read:discussion scope.

Note: You can also specify a team by org_id and team_id using the route GET /organizations/:org_id/team/:team_id/discussions/:discussion_number/comments/:comment_number/reactions.

API method documentation

Source

pub fn reactions_create_for_team_discussion_comment_in_org<Content>( &self, org: &str, team_slug: &str, discussion_number: i64, comment_number: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Create reaction for a team discussion comment

Create a reaction to a team discussion comment. OAuth access tokens require the write:discussion scope. A response with an HTTP 200 status means that you already added the reaction type to this team discussion comment.

Note: You can also specify a team by org_id and team_id using the route POST /organizations/:org_id/team/:team_id/discussions/:discussion_number/comments/:comment_number/reactions.

API method documentation

§Content
Source

pub fn reactions_delete_for_team_discussion_comment( &self, org: &str, team_slug: &str, discussion_number: i64, comment_number: i64, reaction_id: i64, ) -> Result<Response, ApiError>

Delete team discussion comment reaction

Note: You can also specify a team or organization with team_id and org_id using the route DELETE /organizations/:org_id/team/:team_id/discussions/:discussion_number/comments/:comment_number/reactions/:reaction_id.

Delete a reaction to a team discussion comment. OAuth access tokens require the write:discussion scope.

API method documentation

Source

pub fn reactions_list_for_team_discussion_in_org( &self, org: &str, team_slug: &str, discussion_number: i64, content: Option<&str>, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List reactions for a team discussion

List the reactions to a team discussion. OAuth access tokens require the read:discussion scope.

Note: You can also specify a team by org_id and team_id using the route GET /organizations/:org_id/team/:team_id/discussions/:discussion_number/reactions.

API method documentation

Source

pub fn reactions_create_for_team_discussion_in_org<Content>( &self, org: &str, team_slug: &str, discussion_number: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Create reaction for a team discussion

Create a reaction to a team discussion. OAuth access tokens require the write:discussion scope. A response with an HTTP 200 status means that you already added the reaction type to this team discussion.

Note: You can also specify a team by org_id and team_id using the route POST /organizations/:org_id/team/:team_id/discussions/:discussion_number/reactions.

API method documentation

§Content
Source

pub fn reactions_delete_for_team_discussion( &self, org: &str, team_slug: &str, discussion_number: i64, reaction_id: i64, ) -> Result<Response, ApiError>

Delete team discussion reaction

Note: You can also specify a team or organization with team_id and org_id using the route DELETE /organizations/:org_id/team/:team_id/discussions/:discussion_number/reactions/:reaction_id.

Delete a reaction to a team discussion. OAuth access tokens require the write:discussion scope.

API method documentation

Source

pub fn teams_list_linked_external_idp_groups_to_team_for_org( &self, org: &str, team_slug: &str, ) -> Result<Response, ApiError>

List a connection between an external group and a team

Lists a connection between a team and an external group.

You can manage team membership with your identity provider using Enterprise Managed Users for GitHub Enterprise Cloud. For more information, see “GitHub’s products” in the GitHub Help documentation.

API method documentation

Remove the connection between an external group and a team

Deletes a connection between a team and an external group.

You can manage team membership with your IdP using Enterprise Managed Users for GitHub Enterprise Cloud. For more information, see GitHub’s products in the GitHub Help documentation.

API method documentation

Update the connection between an external group and a team

Creates a connection between a team and an external group. Only one external group can be linked to a team.

You can manage team membership with your identity provider using Enterprise Managed Users for GitHub Enterprise Cloud. For more information, see “GitHub’s products” in the GitHub Help documentation.

API method documentation

§Content
Source

pub fn teams_list_pending_invitations_in_org( &self, org: &str, team_slug: &str, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List pending team invitations

The return hash contains a role field which refers to the Organization Invitation role and will be one of the following values: direct_member, admin, billing_manager, hiring_manager, or reinstate. If the invitee is not a GitHub member, the login field in the return hash will be null.

Note: You can also specify a team by org_id and team_id using the route GET /organizations/{org_id}/team/{team_id}/invitations.

API method documentation

Source

pub fn teams_list_members_in_org( &self, org: &str, team_slug: &str, role: Option<&str>, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List team members

Team members will include the members of child teams.

To list members in a team, the team must be visible to the authenticated user.

API method documentation

Source

pub fn teams_get_membership_for_user_in_org( &self, org: &str, team_slug: &str, username: &str, ) -> Result<Response, ApiError>

Get team membership for a user

Team members will include the members of child teams.

To get a user’s membership with a team, the team must be visible to the authenticated user.

Note: You can also specify a team by org_id and team_id using the route GET /organizations/{org_id}/team/{team_id}/memberships/{username}.

Note: The response contains the state of the membership and the member’s role.

The role for organization owners is set to maintainer. For more information about maintainer roles, see see Create a team.

API method documentation

Source

pub fn teams_add_or_update_membership_for_user_in_org<Content>( &self, org: &str, team_slug: &str, username: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Add or update team membership for a user

Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see GitHub’s products in the GitHub Help documentation.

Adds an organization member to a team. An authenticated organization owner or team maintainer can add organization members to a team.

Note: When you have team synchronization set up for a team with your organization’s identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team’s membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see “Synchronizing teams between your identity provider and GitHub.”

An organization owner can add someone who is not part of the team’s organization to a team. When an organization owner adds someone to a team who is not an organization member, this endpoint will send an invitation to the person via email. This newly-created membership will be in the “pending” state until the person accepts the invitation, at which point the membership will transition to the “active” state and the user will be added as a member of the team.

If the user is already a member of the team, this endpoint will update the role of the team member’s role. To update the membership of a team member, the authenticated user must be an organization owner or a team maintainer.

Note: You can also specify a team by org_id and team_id using the route PUT /organizations/{org_id}/team/{team_id}/memberships/{username}.

API method documentation

§Content
Source

pub fn teams_remove_membership_for_user_in_org( &self, org: &str, team_slug: &str, username: &str, ) -> Result<Response, ApiError>

Remove team membership for a user

Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see GitHub’s products in the GitHub Help documentation.

To remove a membership between a user and a team, the authenticated user must have ‘admin’ permissions to the team or be an owner of the organization that the team is associated with. Removing team membership does not delete the user, it just removes their membership from the team.

Note: When you have team synchronization set up for a team with your organization’s identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team’s membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see “Synchronizing teams between your identity provider and GitHub.”

Note: You can also specify a team by org_id and team_id using the route DELETE /organizations/{org_id}/team/{team_id}/memberships/{username}.

API method documentation

Source

pub fn teams_list_projects_in_org( &self, org: &str, team_slug: &str, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List team projects

Lists the organization projects for a team.

Note: You can also specify a team by org_id and team_id using the route GET /organizations/{org_id}/team/{team_id}/projects.

API method documentation

Source

pub fn teams_check_permissions_for_project_in_org( &self, org: &str, team_slug: &str, project_id: i64, ) -> Result<Response, ApiError>

Check team permissions for a project

Checks whether a team has read, write, or admin permissions for an organization project. The response includes projects inherited from a parent team.

Note: You can also specify a team by org_id and team_id using the route GET /organizations/{org_id}/team/{team_id}/projects/{project_id}.

API method documentation

Source

pub fn teams_add_or_update_project_permissions_in_org<Content>( &self, org: &str, team_slug: &str, project_id: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Add or update team project permissions

Adds an organization project to a team. To add a project to a team or update the team’s permission on a project, the authenticated user must have admin permissions for the project. The project and team must be part of the same organization.

Note: You can also specify a team by org_id and team_id using the route PUT /organizations/{org_id}/team/{team_id}/projects/{project_id}.

API method documentation

§Content
Source

pub fn teams_remove_project_in_org( &self, org: &str, team_slug: &str, project_id: i64, ) -> Result<Response, ApiError>

Remove a project from a team

Removes an organization project from a team. An organization owner or a team maintainer can remove any project from the team. To remove a project from a team as an organization member, the authenticated user must have read access to both the team and project, or admin access to the team or project. This endpoint removes the project from the team, but does not delete the project.

Note: You can also specify a team by org_id and team_id using the route DELETE /organizations/{org_id}/team/{team_id}/projects/{project_id}.

API method documentation

Source

pub fn teams_list_repos_in_org( &self, org: &str, team_slug: &str, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List team repositories

Lists a team’s repositories visible to the authenticated user.

Note: You can also specify a team by org_id and team_id using the route GET /organizations/{org_id}/team/{team_id}/repos.

API method documentation

Source

pub fn teams_check_permissions_for_repo_in_org( &self, org: &str, team_slug: &str, owner: &str, repo: &str, ) -> Result<Response, ApiError>

Check team permissions for a repository

Checks whether a team has admin, push, maintain, triage, or pull permission for a repository. Repositories inherited through a parent team will also be checked.

You can also get information about the specified repository, including what permissions the team grants on it, by passing the following custom media type via the application/vnd.github.v3.repository+json accept header.

If a team doesn’t have permission for the repository, you will receive a 404 Not Found response status.

Note: You can also specify a team by org_id and team_id using the route GET /organizations/{org_id}/team/{team_id}/repos/{owner}/{repo}.

API method documentation

Source

pub fn teams_add_or_update_repo_permissions_in_org<Content>( &self, org: &str, team_slug: &str, owner: &str, repo: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Add or update team repository permissions

To add a repository to a team or update the team’s permission on a repository, the authenticated user must have admin access to the repository, and must be able to see the team. The repository must be owned by the organization, or a direct fork of a repository owned by the organization. You will get a 422 Unprocessable Entity status if you attempt to add a repository to a team that is not owned by the organization. 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.”

Note: You can also specify a team by org_id and team_id using the route PUT /organizations/{org_id}/team/{team_id}/repos/{owner}/{repo}.

For more information about the permission levels, see “Repository permission levels for an organization”.

API method documentation

§Content
Source

pub fn teams_remove_repo_in_org( &self, org: &str, team_slug: &str, owner: &str, repo: &str, ) -> Result<Response, ApiError>

Remove a repository from a team

If the authenticated user is an organization owner or a team maintainer, they can remove any repositories from the team. To remove a repository from a team as an organization member, the authenticated user must have admin access to the repository and must be able to see the team. This does not delete the repository, it just removes it from the team.

Note: You can also specify a team by org_id and team_id using the route DELETE /organizations/{org_id}/team/{team_id}/repos/{owner}/{repo}.

API method documentation

Source

pub fn teams_list_idp_groups_in_org( &self, org: &str, team_slug: &str, ) -> Result<Response, ApiError>

List IdP groups for a team

Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see GitHub’s products in the GitHub Help documentation.

List IdP groups connected to a team on GitHub.

Note: You can also specify a team by org_id and team_id using the route GET /organizations/{org_id}/team/{team_id}/team-sync/group-mappings.

API method documentation

Source

pub fn teams_create_or_update_idp_group_connections_in_org<Content>( &self, org: &str, team_slug: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Create or update IdP group connections

Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see GitHub’s products in the GitHub Help documentation.

Creates, updates, or removes a connection between a team and an IdP group. When adding groups to a team, you must include all new and existing groups to avoid replacing existing groups with the new ones. Specifying an empty groups array will remove all connections for a team.

Note: You can also specify a team by org_id and team_id using the route PATCH /organizations/{org_id}/team/{team_id}/team-sync/group-mappings.

API method documentation

§Content
Source

pub fn teams_list_child_in_org( &self, org: &str, team_slug: &str, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List child teams

Lists the child teams of the team specified by {team_slug}.

Note: You can also specify a team by org_id and team_id using the route GET /organizations/{org_id}/team/{team_id}/teams.

API method documentation

Source

pub fn projects_get_card(&self, card_id: i64) -> Result<Response, ApiError>

Get a project card

API method documentation

Source

pub fn projects_delete_card(&self, card_id: i64) -> Result<Response, ApiError>

Delete a project card

API method documentation

Source

pub fn projects_update_card<Content>( &self, card_id: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Source

pub fn projects_move_card<Content>( &self, card_id: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Source

pub fn projects_get_column(&self, column_id: i64) -> Result<Response, ApiError>

Get a project column

API method documentation

Source

pub fn projects_delete_column( &self, column_id: i64, ) -> Result<Response, ApiError>

Delete a project column

API method documentation

Source

pub fn projects_update_column<Content>( &self, column_id: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Source

pub fn projects_list_cards( &self, column_id: i64, archived_state: Option<&str>, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List project cards

API method documentation

Source

pub fn projects_create_card<Content>( &self, column_id: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Source

pub fn projects_move_column<Content>( &self, column_id: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Source

pub fn projects_get(&self, project_id: i64) -> Result<Response, ApiError>

Get a project

Gets a project by its id. Returns a 404 Not Found status if projects are disabled. If you do not have sufficient privileges to perform this action, a 401 Unauthorized or 410 Gone status is returned.

API method documentation

Source

pub fn projects_delete(&self, project_id: i64) -> Result<Response, ApiError>

Delete a project

Deletes a project board. Returns a 404 Not Found status if projects are disabled.

API method documentation

Source

pub fn projects_update<Content>( &self, project_id: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Update a project

Updates a project board’s information. Returns a 404 Not Found status if projects are disabled. If you do not have sufficient privileges to perform this action, a 401 Unauthorized or 410 Gone status is returned.

API method documentation

§Content
Source

pub fn projects_list_collaborators( &self, project_id: i64, affiliation: Option<&str>, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List project collaborators

Lists the collaborators for an organization project. For a project, 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. You must be an organization owner or a project admin to list collaborators.

API method documentation

Source

pub fn projects_add_collaborator<Content>( &self, project_id: i64, username: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Add project collaborator

Adds a collaborator to an organization project and sets their permission level. You must be an organization owner or a project admin to add a collaborator.

API method documentation

§Content
Source

pub fn projects_remove_collaborator( &self, project_id: i64, username: &str, ) -> Result<Response, ApiError>

Remove user as a collaborator

Removes a collaborator from an organization project. You must be an organization owner or a project admin to remove a collaborator.

API method documentation

Source

pub fn projects_get_permission_for_user( &self, project_id: i64, username: &str, ) -> Result<Response, ApiError>

Get project permission for a user

Returns the collaborator’s permission level for an organization project. Possible values for the permission key: admin, write, read, none. You must be an organization owner or a project admin to review a user’s permission level.

API method documentation

Source

pub fn projects_list_columns( &self, project_id: i64, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List project columns

API method documentation

Source

pub fn projects_create_column<Content>( &self, project_id: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Source

pub fn rate_limit_get(&self) -> Result<Response, ApiError>

Get rate limit status for the authenticated user

Note: Accessing this endpoint does not count against your REST API rate limit.

Note: The rate object is deprecated. If you’re writing new API client code or updating existing code, you should use the core object instead of the rate object. The core object contains the same information that is present in the rate object.

API method documentation

Source

pub fn repos_get(&self, owner: &str, repo: &str) -> Result<Response, ApiError>

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.

API method documentation

Source

pub fn repos_delete( &self, owner: &str, repo: &str, ) -> Result<Response, ApiError>

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.

API method documentation

Source

pub fn repos_update<Content>( &self, owner: &str, repo: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Update a repository

Note: To edit a repository’s topics, use the Replace all repository topics endpoint.

API method documentation

§Content
Source

pub fn actions_list_artifacts_for_repo( &self, owner: &str, repo: &str, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List artifacts for a repository

Lists all artifacts 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.

API method documentation

Source

pub fn actions_get_artifact( &self, owner: &str, repo: &str, artifact_id: i64, ) -> Result<Response, ApiError>

Get an artifact

Gets a specific artifact for a workflow run. 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.

API method documentation

Source

pub fn actions_delete_artifact( &self, owner: &str, repo: &str, artifact_id: i64, ) -> Result<Response, ApiError>

Delete an artifact

Deletes an artifact for a workflow run. You must authenticate using an access token with the repo scope to use this endpoint. GitHub Apps must have the actions:write permission to use this endpoint.

API method documentation

Source

pub fn actions_download_artifact( &self, owner: &str, repo: &str, artifact_id: i64, archive_format: &str, ) -> Result<Response, ApiError>

Download an artifact

Gets a redirect URL to download an archive for a repository. This URL expires after 1 minute. Look for Location: in the response header to find the URL for the download. The :archive_format must be zip. 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.

API method documentation

Source

pub fn actions_get_actions_cache_usage( &self, owner: &str, repo: &str, ) -> Result<Response, ApiError>

Get GitHub Actions cache usage for a repository

Gets GitHub Actions cache usage for a repository. The data fetched using this API is refreshed approximately every 5 minutes, so values returned from this endpoint may take at least 5 minutes to get updated. 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.

API method documentation

Source

pub fn actions_get_job_for_workflow_run( &self, owner: &str, repo: &str, job_id: i64, ) -> Result<Response, ApiError>

Get a job for a workflow run

Gets a specific job in a workflow run. 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.

API method documentation

Source

pub fn actions_download_job_logs_for_workflow_run( &self, owner: &str, repo: &str, job_id: i64, ) -> Result<Response, ApiError>

Download job logs for a workflow run

Gets a redirect URL to download a plain text file of logs for a workflow job. This link expires after 1 minute. Look for Location: in the response header to find the URL for the download. 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.

API method documentation

Source

pub fn actions_re_run_job_for_workflow_run( &self, owner: &str, repo: &str, job_id: i64, ) -> Result<Response, ApiError>

Re-run a job from a workflow run

Re-run a job and its dependent jobs in a workflow run. You must authenticate using an access token with the repo scope to use this endpoint. GitHub Apps must have the actions:write permission to use this endpoint.

API method documentation

Source

pub fn actions_get_github_actions_permissions_repository( &self, owner: &str, repo: &str, ) -> Result<Response, ApiError>

Get GitHub Actions permissions for a repository

Gets the GitHub Actions permissions policy for a repository, including whether GitHub Actions is enabled and the actions and reusable workflows allowed to run in the repository.

You must authenticate using an access token with the repo scope to use this endpoint. GitHub Apps must have the administration repository permission to use this API.

API method documentation

Source

pub fn actions_set_github_actions_permissions_repository<Content>( &self, owner: &str, repo: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Set GitHub Actions permissions for a repository

Sets the GitHub Actions permissions policy for enabling GitHub Actions and allowed actions and reusable workflows in the repository.

If the repository belongs to an organization or enterprise that has set restrictive permissions at the organization or enterprise levels, such as allowed_actions to selected actions and reusable workflows, then you cannot override them for the repository.

You must authenticate using an access token with the repo scope to use this endpoint. GitHub Apps must have the administration repository permission to use this API.

API method documentation

§Content
Source

pub fn actions_get_workflow_access_to_repository( &self, owner: &str, repo: &str, ) -> Result<Response, ApiError>

Get the level of access for workflows outside of the repository

Gets the level of access that workflows outside of the repository have to actions and reusable workflows in the repository. This endpoint only applies to internal repositories. For more information, see “Managing GitHub Actions settings for a repository.”

You must authenticate using an access token with the repo scope to use this endpoint. GitHub Apps must have the repository administration permission to use this endpoint.

API method documentation

Source

pub fn actions_set_workflow_access_to_repository<Content>( &self, owner: &str, repo: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Set the level of access for workflows outside of the repository

Sets the level of access that workflows outside of the repository have to actions and reusable workflows in the repository. This endpoint only applies to internal repositories. For more information, see “Managing GitHub Actions settings for a repository.”

You must authenticate using an access token with the repo scope to use this endpoint. GitHub Apps must have the repository administration permission to use this endpoint.

API method documentation

§Content
Source

pub fn actions_get_allowed_actions_repository( &self, owner: &str, repo: &str, ) -> Result<Response, ApiError>

Get allowed actions and reusable workflows for a repository

Gets the settings for selected actions and reusable workflows that are allowed in a repository. To use this endpoint, the repository policy for allowed_actions must be configured to selected. For more information, see “Set GitHub Actions permissions for a repository.”

You must authenticate using an access token with the repo scope to use this endpoint. GitHub Apps must have the administration repository permission to use this API.

API method documentation

Source

pub fn actions_set_allowed_actions_repository<Content>( &self, owner: &str, repo: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Set allowed actions and reusable workflows for a repository

Sets the actions and reusable workflows that are allowed in a repository. To use this endpoint, the repository permission policy for allowed_actions must be configured to selected. For more information, see “Set GitHub Actions permissions for a repository.”

If the repository belongs to an organization or enterprise that has selected actions and reusable workflows set at the organization or enterprise levels, then you cannot override any of the allowed actions and reusable workflows settings.

To use the patterns_allowed setting for private repositories, the repository must belong to an enterprise. If the repository does not belong to an enterprise, then the patterns_allowed setting only applies to public repositories.

You must authenticate using an access token with the repo scope to use this endpoint. GitHub Apps must have the administration repository permission to use this API.

API method documentation

§Content
Source

pub fn actions_get_github_actions_default_workflow_permissions_repository( &self, owner: &str, repo: &str, ) -> Result<Response, ApiError>

Get default workflow permissions for a repository

Gets the default workflow permissions granted to the GITHUB_TOKEN when running workflows in a repository, as well as if GitHub Actions can submit approving pull request reviews. For more information, see “Setting the permissions of the GITHUB_TOKEN for your repository.”

You must authenticate using an access token with the repo scope to use this endpoint. GitHub Apps must have the repository administration permission to use this API.

API method documentation

Source

pub fn actions_set_github_actions_default_workflow_permissions_repository<Content>( &self, owner: &str, repo: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Set default workflow permissions for a repository

Sets the default workflow permissions granted to the GITHUB_TOKEN when running workflows in a repository, and sets if GitHub Actions can submit approving pull request reviews. For more information, see “Setting the permissions of the GITHUB_TOKEN for your repository.”

You must authenticate using an access token with the repo scope to use this endpoint. GitHub Apps must have the repository administration permission to use this API.

API method documentation

§Content
Source

pub fn actions_list_self_hosted_runners_for_repo( &self, owner: &str, repo: &str, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List self-hosted runners for a repository

Lists all self-hosted runners configured in a repository. You must authenticate using an access token with the repo scope to use this endpoint.

API method documentation

Source

pub fn actions_list_runner_applications_for_repo( &self, owner: &str, repo: &str, ) -> Result<Response, ApiError>

List runner applications for a repository

Lists binaries for the runner application that you can download and run.

You must authenticate using an access token with the repo scope to use this endpoint.

API method documentation

Source

pub fn actions_create_registration_token_for_repo( &self, owner: &str, repo: &str, ) -> Result<Response, ApiError>

Create a registration token for a repository

Returns a token that you can pass to the config script. The token expires after one hour. You must authenticate using an access token with the repo scope to use this endpoint.

§Example using registration token

Configure your self-hosted runner, replacing TOKEN with the registration token provided by this endpoint.

./config.sh --url https://github.com/octo-org/octo-repo-artifacts --token TOKEN

API method documentation

Source

pub fn actions_create_remove_token_for_repo( &self, owner: &str, repo: &str, ) -> Result<Response, ApiError>

Create a remove token for a repository

Returns a token that you can pass to remove a self-hosted runner from a repository. The token expires after one hour. You must authenticate using an access token with the repo scope to use this endpoint.

§Example using remove token

To remove your self-hosted runner from a repository, replace TOKEN with the remove token provided by this endpoint.

./config.sh remove --token TOKEN

API method documentation

Source

pub fn actions_get_self_hosted_runner_for_repo( &self, owner: &str, repo: &str, runner_id: i64, ) -> Result<Response, ApiError>

Get a self-hosted runner for a repository

Gets a specific self-hosted runner configured in a repository.

You must authenticate using an access token with the repo scope to use this endpoint.

API method documentation

Source

pub fn actions_delete_self_hosted_runner_from_repo( &self, owner: &str, repo: &str, runner_id: i64, ) -> Result<Response, ApiError>

Delete a self-hosted runner from a repository

Forces the removal of a self-hosted runner from a repository. You can use this endpoint to completely remove the runner when the machine you were using no longer exists.

You must authenticate using an access token with the repo scope to use this endpoint.

API method documentation

Source

pub fn actions_list_labels_for_self_hosted_runner_for_repo( &self, owner: &str, repo: &str, runner_id: i64, ) -> Result<Response, ApiError>

List labels for a self-hosted runner for a repository

Lists all labels for a self-hosted runner configured in a repository.

You must authenticate using an access token with the repo scope to use this endpoint.

API method documentation

Source

pub fn actions_set_custom_labels_for_self_hosted_runner_for_repo<Content>( &self, owner: &str, repo: &str, runner_id: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Set custom labels for a self-hosted runner for a repository

Remove all previous custom labels and set the new custom labels for a specific self-hosted runner configured in a repository.

You must authenticate using an access token with the repo scope to use this endpoint.

API method documentation

§Content
Source

pub fn actions_add_custom_labels_to_self_hosted_runner_for_repo<Content>( &self, owner: &str, repo: &str, runner_id: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Add custom labels to a self-hosted runner for a repository

Add custom labels to a self-hosted runner configured in a repository.

You must authenticate using an access token with the repo scope to use this endpoint.

API method documentation

§Content
Source

pub fn actions_remove_all_custom_labels_from_self_hosted_runner_for_repo( &self, owner: &str, repo: &str, runner_id: i64, ) -> Result<Response, ApiError>

Remove all custom labels from a self-hosted runner for a repository

Remove all custom labels from a self-hosted runner configured in a repository. Returns the remaining read-only labels from the runner.

You must authenticate using an access token with the repo scope to use this endpoint.

API method documentation

Source

pub fn actions_remove_custom_label_from_self_hosted_runner_for_repo( &self, owner: &str, repo: &str, runner_id: i64, name: &str, ) -> Result<Response, ApiError>

Remove a custom label from a self-hosted runner for a repository

Remove a custom label from a self-hosted runner configured in a repository. Returns the remaining labels from the runner.

This endpoint returns a 404 Not Found status if the custom label is not present on the runner.

You must authenticate using an access token with the repo scope to use this endpoint.

API method documentation

Source

pub fn actions_list_workflow_runs_for_repo( &self, owner: &str, repo: &str, actor: Option<&str>, branch: Option<&str>, event: Option<&str>, status: Option<&str>, per_page: Option<i64>, page: Option<i64>, created: Option<&str>, exclude_pull_requests: Option<bool>, check_suite_id: Option<i64>, ) -> Result<Response, ApiError>

List workflow runs for a repository

Lists all workflow runs for a repository. You can use parameters to narrow the list of results. For more information about using parameters, see Parameters.

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.

API method documentation

Source

pub fn actions_get_workflow_run( &self, owner: &str, repo: &str, run_id: i64, exclude_pull_requests: Option<bool>, ) -> Result<Response, ApiError>

Get a workflow run

Gets a specific workflow run. 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.

API method documentation

Source

pub fn actions_delete_workflow_run( &self, owner: &str, repo: &str, run_id: i64, ) -> Result<Response, ApiError>

Delete a workflow run

Delete a specific workflow run. Anyone with write 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:write permission to use this endpoint.

API method documentation

Source

pub fn actions_get_reviews_for_run( &self, owner: &str, repo: &str, run_id: i64, ) -> Result<Response, ApiError>

Get the review history for a workflow run

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.

API method documentation

Source

pub fn actions_approve_workflow_run( &self, owner: &str, repo: &str, run_id: i64, ) -> Result<Response, ApiError>

Approve a workflow run for a fork pull request

Approves a workflow run for a pull request from a public fork of a first time contributor. For more information, see “Approving workflow runs from public forks.“

You must authenticate using an access token with the repo scope to use this endpoint. GitHub Apps must have the actions:write permission to use this endpoint.

API method documentation

Source

pub fn actions_list_workflow_run_artifacts( &self, owner: &str, repo: &str, run_id: i64, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List workflow run artifacts

Lists artifacts for a workflow run. 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.

API method documentation

Source

pub fn actions_get_workflow_run_attempt( &self, owner: &str, repo: &str, run_id: i64, attempt_number: i64, exclude_pull_requests: Option<bool>, ) -> Result<Response, ApiError>

Get a workflow run attempt

Gets a specific workflow run attempt. 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.

API method documentation

Source

pub fn actions_list_jobs_for_workflow_run_attempt( &self, owner: &str, repo: &str, run_id: i64, attempt_number: i64, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List jobs for a workflow run attempt

Lists jobs for a specific workflow run attempt. 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. You can use parameters to narrow the list of results. For more information about using parameters, see Parameters.

API method documentation

Source

pub fn actions_download_workflow_run_attempt_logs( &self, owner: &str, repo: &str, run_id: i64, attempt_number: i64, ) -> Result<Response, ApiError>

Download workflow run attempt logs

Gets a redirect URL to download an archive of log files for a specific workflow run attempt. This link expires after 1 minute. Look for Location: in the response header to find the URL for the download. 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.

API method documentation

Source

pub fn actions_cancel_workflow_run( &self, owner: &str, repo: &str, run_id: i64, ) -> Result<Response, ApiError>

Cancel a workflow run

Cancels a workflow run using its id. You must authenticate using an access token with the repo scope to use this endpoint. GitHub Apps must have the actions:write permission to use this endpoint.

API method documentation

Source

pub fn actions_list_jobs_for_workflow_run( &self, owner: &str, repo: &str, run_id: i64, filter: Option<&str>, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List jobs for a workflow run

Lists jobs for a workflow run. 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. You can use parameters to narrow the list of results. For more information about using parameters, see Parameters.

API method documentation

Source

pub fn actions_download_workflow_run_logs( &self, owner: &str, repo: &str, run_id: i64, ) -> Result<Response, ApiError>

Download workflow run logs

Gets a redirect URL to download an archive of log files for a workflow run. This link expires after 1 minute. Look for Location: in the response header to find the URL for the download. 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.

API method documentation

Source

pub fn actions_delete_workflow_run_logs( &self, owner: &str, repo: &str, run_id: i64, ) -> Result<Response, ApiError>

Delete workflow run logs

Deletes all logs for a workflow run. You must authenticate using an access token with the repo scope to use this endpoint. GitHub Apps must have the actions:write permission to use this endpoint.

API method documentation

Source

pub fn actions_get_pending_deployments_for_run( &self, owner: &str, repo: &str, run_id: i64, ) -> Result<Response, ApiError>

Get pending deployments for a workflow run

Get all deployment environments for a workflow run that are waiting for protection rules to pass.

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.

API method documentation

Source

pub fn actions_review_pending_deployments_for_run<Content>( &self, owner: &str, repo: &str, run_id: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Review pending deployments for a workflow run

Approve or reject pending deployments that are waiting on approval by a required reviewer.

Anyone with read access to the repository contents and deployments can use this endpoint.

API method documentation

§Content
Source

pub fn actions_re_run_workflow( &self, owner: &str, repo: &str, run_id: i64, ) -> Result<Response, ApiError>

Re-run a workflow

Re-runs your workflow run using its id. You must authenticate using an access token with the repo scope to use this endpoint. GitHub Apps must have the actions:write permission to use this endpoint.

API method documentation

Source

pub fn actions_re_run_workflow_failed_jobs( &self, owner: &str, repo: &str, run_id: i64, ) -> Result<Response, ApiError>

Re-run failed jobs from a workflow run

Re-run all of the failed jobs and their dependent jobs in a workflow run using the id of the workflow run. You must authenticate using an access token with the repo scope to use this endpoint.

API method documentation

Source

pub fn actions_get_workflow_run_usage( &self, owner: &str, repo: &str, run_id: i64, ) -> Result<Response, ApiError>

Get workflow run usage

Gets the number of billable minutes and total run time for a specific workflow run. Billable minutes only apply to workflows in private repositories that use GitHub-hosted runners. Usage is listed for each GitHub-hosted runner operating system in milliseconds. Any job re-runs are also included in the usage. The usage does not include the multiplier for macOS and Windows runners and is not rounded up to the nearest whole minute. For more information, see “Managing billing for GitHub Actions”.

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.

API method documentation

Source

pub fn actions_list_repo_secrets( &self, owner: &str, repo: &str, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List repository secrets

Lists all secrets available in a repository without revealing their encrypted values. You must authenticate using an access token with the repo scope to use this endpoint. GitHub Apps must have the secrets repository permission to use this endpoint.

API method documentation

Source

pub fn actions_get_repo_public_key( &self, owner: &str, repo: &str, ) -> Result<Response, ApiError>

Get a repository public key

Gets your public key, which you need to encrypt secrets. You need to encrypt a secret before you can create or update secrets. 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 secrets repository permission to use this endpoint.

API method documentation

Source

pub fn actions_get_repo_secret( &self, owner: &str, repo: &str, secret_name: &str, ) -> Result<Response, ApiError>

Get a repository secret

Gets a single repository secret without revealing its encrypted value. You must authenticate using an access token with the repo scope to use this endpoint. GitHub Apps must have the secrets repository permission to use this endpoint.

API method documentation

Source

pub fn actions_create_or_update_repo_secret<Content>( &self, owner: &str, repo: &str, secret_name: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Create or update a repository secret

Creates or updates a repository secret with an encrypted value. Encrypt your secret using LibSodium. You must authenticate using an access token with the repo scope to use this endpoint. GitHub Apps must have the secrets repository permission to use this endpoint.

§Example encrypting a secret using Node.js

Encrypt your secret using the tweetsodium library.

const sodium = require('tweetsodium');
 
const key = "base64-encoded-public-key";
const value = "plain-text-secret";
 
// Convert the message and key to Uint8Array's (Buffer implements that interface)
const messageBytes = Buffer.from(value);
const keyBytes = Buffer.from(key, 'base64');
 
// Encrypt using LibSodium.
const encryptedBytes = sodium.seal(messageBytes, keyBytes);
 
// Base64 the encrypted secret
const encrypted = Buffer.from(encryptedBytes).toString('base64');
 
console.log(encrypted);
§Example encrypting a secret using Python

Encrypt your secret using pynacl with Python 3.

from base64 import b64encode
from nacl import encoding, public
 
def encrypt(public_key: str, secret_value: str) -> str:
  """Encrypt a Unicode string using the public key."""
  public_key = public.PublicKey(public_key.encode("utf-8"), encoding.Base64Encoder())
  sealed_box = public.SealedBox(public_key)
  encrypted = sealed_box.encrypt(secret_value.encode("utf-8"))
  return b64encode(encrypted).decode("utf-8")
§Example encrypting a secret using C#

Encrypt your secret using the Sodium.Core package.

var secretValue = System.Text.Encoding.UTF8.GetBytes("mySecret");
var publicKey = Convert.FromBase64String("2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvvcCU=");
 
var sealedPublicKeyBox = Sodium.SealedPublicKeyBox.Create(secretValue, publicKey);
 
Console.WriteLine(Convert.ToBase64String(sealedPublicKeyBox));
§Example encrypting a secret using Ruby

Encrypt your secret using the rbnacl gem.

require "rbnacl"
require "base64"
 
key = Base64.decode64("+ZYvJDZMHUfBkJdyq5Zm9SKqeuBQ4sj+6sfjlH4CgG0=")
public_key = RbNaCl::PublicKey.new(key)
 
box = RbNaCl::Boxes::Sealed.from_public_key(public_key)
encrypted_secret = box.encrypt("my_secret")
 
# Print the base64 encoded secret
puts Base64.strict_encode64(encrypted_secret)

API method documentation

§Content
Source

pub fn actions_delete_repo_secret( &self, owner: &str, repo: &str, secret_name: &str, ) -> Result<Response, ApiError>

Delete a repository secret

Deletes a secret in a repository using the secret name. You must authenticate using an access token with the repo scope to use this endpoint. GitHub Apps must have the secrets repository permission to use this endpoint.

API method documentation

Source

pub fn actions_list_repo_workflows( &self, owner: &str, repo: &str, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List repository workflows

Lists the workflows in 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.

API method documentation

Source

pub fn actions_get_workflow( &self, owner: &str, repo: &str, workflow_id: &Value, ) -> Result<Response, ApiError>

Get a workflow

Gets a specific workflow. You can replace workflow_id with the workflow file name. For example, you could use main.yaml. 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.

API method documentation

Source

pub fn actions_disable_workflow( &self, owner: &str, repo: &str, workflow_id: &Value, ) -> Result<Response, ApiError>

Disable a workflow

Disables a workflow and sets the state of the workflow to disabled_manually. You can replace workflow_id with the workflow file name. For example, you could use main.yaml.

You must authenticate using an access token with the repo scope to use this endpoint. GitHub Apps must have the actions:write permission to use this endpoint.

API method documentation

Source

pub fn actions_create_workflow_dispatch<Content>( &self, owner: &str, repo: &str, workflow_id: &Value, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Create a workflow dispatch event

You can use this endpoint to manually trigger a GitHub Actions workflow run. You can replace workflow_id with the workflow file name. For example, you could use main.yaml.

You must configure your GitHub Actions workflow to run when the workflow_dispatch webhook event occurs. The inputs are configured in the workflow file. For more information about how to configure the workflow_dispatch event in the workflow file, see “Events that trigger workflows.”

You must authenticate using an access token with the repo scope to use this endpoint. GitHub Apps must have the actions:write permission to use this endpoint. For more information, see “Creating a personal access token for the command line.”

API method documentation

§Content
Source

pub fn actions_enable_workflow( &self, owner: &str, repo: &str, workflow_id: &Value, ) -> Result<Response, ApiError>

Enable a workflow

Enables a workflow and sets the state of the workflow to active. You can replace workflow_id with the workflow file name. For example, you could use main.yaml.

You must authenticate using an access token with the repo scope to use this endpoint. GitHub Apps must have the actions:write permission to use this endpoint.

API method documentation

Source

pub fn actions_list_workflow_runs( &self, owner: &str, repo: &str, workflow_id: &Value, actor: Option<&str>, branch: Option<&str>, event: Option<&str>, status: Option<&str>, per_page: Option<i64>, page: Option<i64>, created: Option<&str>, exclude_pull_requests: Option<bool>, check_suite_id: Option<i64>, ) -> Result<Response, ApiError>

List workflow runs

List all workflow runs for a workflow. You can replace workflow_id with the workflow file name. For example, you could use main.yaml. You can use parameters to narrow the list of results. For more information about using parameters, see Parameters.

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.

API method documentation

Source

pub fn actions_get_workflow_usage( &self, owner: &str, repo: &str, workflow_id: &Value, ) -> Result<Response, ApiError>

Get workflow usage

Gets the number of billable minutes used by a specific workflow during the current billing cycle. Billable minutes only apply to workflows in private repositories that use GitHub-hosted runners. Usage is listed for each GitHub-hosted runner operating system in milliseconds. Any job re-runs are also included in the usage. The usage does not include the multiplier for macOS and Windows runners and is not rounded up to the nearest whole minute. For more information, see “Managing billing for GitHub Actions”.

You can replace workflow_id with the workflow file name. For example, you could use main.yaml. 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.

API method documentation

Source

pub fn issues_list_assignees( &self, owner: &str, repo: &str, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List assignees

Lists the available assignees for issues in a repository.

API method documentation

Source

pub fn issues_check_user_can_be_assigned( &self, owner: &str, repo: &str, assignee: &str, ) -> Result<Response, ApiError>

Check if a user can be assigned

Checks if a user has permission to be assigned to an issue in this repository.

If the assignee can be assigned to issues in the repository, a 204 header with no content is returned.

Otherwise a 404 status code is returned.

API method documentation

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.

API method documentation

Create an autolink reference for a repository

Users with admin access to the repository can create an autolink.

API method documentation

§Content

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.

API method documentation

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.

API method documentation

Source

pub fn repos_enable_automated_security_fixes( &self, owner: &str, repo: &str, ) -> Result<Response, ApiError>

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”.

API method documentation

Source

pub fn repos_disable_automated_security_fixes( &self, owner: &str, repo: &str, ) -> Result<Response, ApiError>

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”.

API method documentation

Source

pub fn repos_list_branches( &self, owner: &str, repo: &str, protected: Option<bool>, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

Source

pub fn repos_get_branch( &self, owner: &str, repo: &str, branch: &str, ) -> Result<Response, ApiError>

Source

pub fn repos_get_branch_protection( &self, owner: &str, repo: &str, branch: &str, ) -> Result<Response, ApiError>

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.

API method documentation

Source

pub fn repos_update_branch_protection<Content>( &self, owner: &str, repo: &str, branch: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

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.

API method documentation

§Content
Source

pub fn repos_delete_branch_protection( &self, owner: &str, repo: &str, branch: &str, ) -> Result<Response, ApiError>

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.

API method documentation

Source

pub fn repos_get_admin_branch_protection( &self, owner: &str, repo: &str, branch: &str, ) -> Result<Response, ApiError>

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.

API method documentation

Source

pub fn repos_set_admin_branch_protection( &self, owner: &str, repo: &str, branch: &str, ) -> Result<Response, ApiError>

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.

API method documentation

Source

pub fn repos_delete_admin_branch_protection( &self, owner: &str, repo: &str, branch: &str, ) -> Result<Response, ApiError>

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.

API method documentation

Source

pub fn repos_get_pull_request_review_protection( &self, owner: &str, repo: &str, branch: &str, ) -> Result<Response, ApiError>

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.

API method documentation

Source

pub fn repos_delete_pull_request_review_protection( &self, owner: &str, repo: &str, branch: &str, ) -> Result<Response, ApiError>

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.

API method documentation

Source

pub fn repos_update_pull_request_review_protection<Content>( &self, owner: &str, repo: &str, branch: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

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.

API method documentation

§Content
Source

pub fn repos_get_commit_signature_protection( &self, owner: &str, repo: &str, branch: &str, ) -> Result<Response, ApiError>

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.

API method documentation

Source

pub fn repos_create_commit_signature_protection( &self, owner: &str, repo: &str, branch: &str, ) -> Result<Response, ApiError>

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.

API method documentation

Source

pub fn repos_delete_commit_signature_protection( &self, owner: &str, repo: &str, branch: &str, ) -> Result<Response, ApiError>

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.

API method documentation

Source

pub fn repos_get_status_checks_protection( &self, owner: &str, repo: &str, branch: &str, ) -> Result<Response, ApiError>

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.

API method documentation

Source

pub fn repos_remove_status_check_protection( &self, owner: &str, repo: &str, branch: &str, ) -> Result<Response, ApiError>

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.

API method documentation

Source

pub fn repos_update_status_check_protection<Content>( &self, owner: &str, repo: &str, branch: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

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.

API method documentation

§Content
Source

pub fn repos_get_all_status_check_contexts( &self, owner: &str, repo: &str, branch: &str, ) -> Result<Response, ApiError>

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.

API method documentation

Source

pub fn repos_set_status_check_contexts<Content>( &self, owner: &str, repo: &str, branch: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

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.

API method documentation

§Content
Source

pub fn repos_add_status_check_contexts<Content>( &self, owner: &str, repo: &str, branch: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

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.

API method documentation

§Content
Source

pub fn repos_remove_status_check_contexts<Content>( &self, owner: &str, repo: &str, branch: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

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.

API method documentation

§Content
Source

pub fn repos_get_access_restrictions( &self, owner: &str, repo: &str, branch: &str, ) -> Result<Response, ApiError>

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.

API method documentation

Source

pub fn repos_delete_access_restrictions( &self, owner: &str, repo: &str, branch: &str, ) -> Result<Response, ApiError>

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.

API method documentation

Source

pub fn repos_get_apps_with_access_to_protected_branch( &self, owner: &str, repo: &str, branch: &str, ) -> Result<Response, ApiError>

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.

API method documentation

Source

pub fn repos_set_app_access_restrictions<Content>( &self, owner: &str, repo: &str, branch: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

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.

TypeDescription
arrayThe GitHub Apps that have push access to this branch. Use the app’s slug. Note: The list of users, apps, and teams in total is limited to 100 items.

API method documentation

§Content
Source

pub fn repos_add_app_access_restrictions<Content>( &self, owner: &str, repo: &str, branch: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

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.

TypeDescription
arrayThe GitHub Apps that have push access to this branch. Use the app’s slug. Note: The list of users, apps, and teams in total is limited to 100 items.

API method documentation

§Content
Source

pub fn repos_remove_app_access_restrictions<Content>( &self, owner: &str, repo: &str, branch: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

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.

TypeDescription
arrayThe GitHub Apps that have push access to this branch. Use the app’s slug. Note: The list of users, apps, and teams in total is limited to 100 items.

API method documentation

§Content
Source

pub fn repos_get_teams_with_access_to_protected_branch( &self, owner: &str, repo: &str, branch: &str, ) -> Result<Response, ApiError>

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.

API method documentation

Source

pub fn repos_set_team_access_restrictions<Content>( &self, owner: &str, repo: &str, branch: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

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.

TypeDescription
arrayThe teams that can have push access. Use the team’s slug. Note: The list of users, apps, and teams in total is limited to 100 items.

API method documentation

§Content
Source

pub fn repos_add_team_access_restrictions<Content>( &self, owner: &str, repo: &str, branch: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

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.

TypeDescription
arrayThe teams that can have push access. Use the team’s slug. Note: The list of users, apps, and teams in total is limited to 100 items.

API method documentation

§Content
Source

pub fn repos_remove_team_access_restrictions<Content>( &self, owner: &str, repo: &str, branch: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

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.

TypeDescription
arrayTeams that should no longer have push access. Use the team’s slug. Note: The list of users, apps, and teams in total is limited to 100 items.

API method documentation

§Content
Source

pub fn repos_get_users_with_access_to_protected_branch( &self, owner: &str, repo: &str, branch: &str, ) -> Result<Response, ApiError>

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.

API method documentation

Source

pub fn repos_set_user_access_restrictions<Content>( &self, owner: &str, repo: &str, branch: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

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.

TypeDescription
arrayUsernames for people who can have push access. Note: The list of users, apps, and teams in total is limited to 100 items.

API method documentation

§Content
Source

pub fn repos_add_user_access_restrictions<Content>( &self, owner: &str, repo: &str, branch: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

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.

TypeDescription
arrayUsernames for people who can have push access. Note: The list of users, apps, and teams in total is limited to 100 items.

API method documentation

§Content
Source

pub fn repos_remove_user_access_restrictions<Content>( &self, owner: &str, repo: &str, branch: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

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.

TypeDescription
arrayUsernames 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.

API method documentation

§Content
Source

pub fn repos_rename_branch<Content>( &self, owner: &str, repo: &str, branch: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

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.

API method documentation

§Content
Source

pub fn checks_create<Content>( &self, owner: &str, repo: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Create a check run

Note: The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty pull_requests array.

Creates a new check run for a specific commit in a repository. Your GitHub App must have the checks:write permission to create check runs.

In a check suite, GitHub limits the number of check runs with the same name to 1000. Once these check runs exceed 1000, GitHub will start to automatically delete older check runs.

API method documentation

§Content
Source

pub fn checks_get( &self, owner: &str, repo: &str, check_run_id: i64, ) -> Result<Response, ApiError>

Get a check run

Note: The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty pull_requests array.

Gets a single check run using its id. GitHub Apps must have the checks:read permission on a private repository or pull access to a public repository to get check runs. OAuth Apps and authenticated users must have the repo scope to get check runs in a private repository.

API method documentation

Source

pub fn checks_update<Content>( &self, owner: &str, repo: &str, check_run_id: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Update a check run

Note: The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty pull_requests array.

Updates a check run for a specific commit in a repository. Your GitHub App must have the checks:write permission to edit check runs.

API method documentation

§Content
Source

pub fn checks_list_annotations( &self, owner: &str, repo: &str, check_run_id: i64, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List check run annotations

Lists annotations for a check run using the annotation id. GitHub Apps must have the checks:read permission on a private repository or pull access to a public repository to get annotations for a check run. OAuth Apps and authenticated users must have the repo scope to get annotations for a check run in a private repository.

API method documentation

Source

pub fn checks_rerequest_run( &self, owner: &str, repo: &str, check_run_id: i64, ) -> Result<Response, ApiError>

Rerequest a check run

Triggers GitHub to rerequest an existing check run, without pushing new code to a repository. This endpoint will trigger the check_run webhook event with the action rerequested. When a check run is rerequested, its status is reset to queued and the conclusion is cleared.

To rerequest a check run, your GitHub App must have the checks:read permission on a private repository or pull access to a public repository.

API method documentation

Source

pub fn checks_create_suite<Content>( &self, owner: &str, repo: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Create a check suite

Note: The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty pull_requests array and a null value for head_branch.

By default, check suites are automatically created when you create a check run. You only need to use this endpoint for manually creating check suites when you’ve disabled automatic creation using “Update repository preferences for check suites”. Your GitHub App must have the checks:write permission to create check suites.

API method documentation

§Content
Source

pub fn checks_set_suites_preferences<Content>( &self, owner: &str, repo: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Update repository preferences for check suites

Changes the default automatic flow when creating check suites. By default, a check suite is automatically created each time code is pushed to a repository. When you disable the automatic creation of check suites, you can manually Create a check suite. You must have admin permissions in the repository to set preferences for check suites.

API method documentation

§Content
Source

pub fn checks_get_suite( &self, owner: &str, repo: &str, check_suite_id: i64, ) -> Result<Response, ApiError>

Get a check suite

Note: The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty pull_requests array and a null value for head_branch.

Gets a single check suite using its id. GitHub Apps must have the checks:read permission on a private repository or pull access to a public repository to get check suites. OAuth Apps and authenticated users must have the repo scope to get check suites in a private repository.

API method documentation

Source

pub fn checks_list_for_suite( &self, owner: &str, repo: &str, check_suite_id: i64, check_name: Option<&str>, status: Option<&str>, filter: Option<&str>, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List check runs in a check suite

Note: The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty pull_requests array.

Lists check runs for a check suite using its id. GitHub Apps must have the checks:read permission on a private repository or pull access to a public repository to get check runs. OAuth Apps and authenticated users must have the repo scope to get check runs in a private repository.

API method documentation

Source

pub fn checks_rerequest_suite( &self, owner: &str, repo: &str, check_suite_id: i64, ) -> Result<Response, ApiError>

Rerequest a check suite

Triggers GitHub to rerequest an existing check suite, without pushing new code to a repository. This endpoint will trigger the check_suite webhook event with the action rerequested. When a check suite is rerequested, its status is reset to queued and the conclusion is cleared.

To rerequest a check suite, your GitHub App must have the checks:read permission on a private repository or pull access to a public repository.

API method documentation

Source

pub fn code_scanning_list_alerts_for_repo( &self, owner: &str, repo: &str, tool_name: Option<&str>, tool_guid: Option<Option<&str>>, page: Option<i64>, per_page: Option<i64>, ref: Option<&str>, sort: &Sort<'_>, state: Option<&str>, ) -> Result<Response, ApiError>

List code scanning alerts for a repository

Lists all open code scanning alerts for the default branch (usually main or master). You must use an access token with the security_events scope to use this endpoint with private repos, the public_repo scope also grants permission to read security events on public repos only. GitHub Apps must have the security_events read permission to use this endpoint.

The response includes a most_recent_instance object. This provides details of the most recent instance of this alert for the default branch or for the specified Git reference (if you used ref in the request).

API method documentation

Source

pub fn code_scanning_get_alert( &self, owner: &str, repo: &str, alert_number: i64, ) -> Result<Response, ApiError>

Get a code scanning alert

Gets a single code scanning alert. You must use an access token with the security_events scope to use this endpoint with private repos, the public_repo scope also grants permission to read security events on public repos only. GitHub Apps must have the security_events read permission to use this endpoint.

Deprecation notice: The instances field is deprecated and will, in future, not be included in the response for this endpoint. The example response reflects this change. The same information can now be retrieved via a GET request to the URL specified by instances_url.

API method documentation

Source

pub fn code_scanning_update_alert<Content>( &self, owner: &str, repo: &str, alert_number: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Update a code scanning alert

Updates the status of a single code scanning alert. You must use an access token with the security_events scope to use this endpoint with private repositories. You can also use tokens with the public_repo scope for public repositories only. GitHub Apps must have the security_events write permission to use this endpoint.

API method documentation

§Content
Source

pub fn code_scanning_list_alert_instances( &self, owner: &str, repo: &str, alert_number: i64, page: Option<i64>, per_page: Option<i64>, ref: Option<&str>, ) -> Result<Response, ApiError>

List instances of a code scanning alert

Lists all instances of the specified code scanning alert. You must use an access token with the security_events scope to use this endpoint with private repos, the public_repo scope also grants permission to read security events on public repos only. GitHub Apps must have the security_events read permission to use this endpoint.

API method documentation

Source

pub fn code_scanning_list_recent_analyses( &self, owner: &str, repo: &str, tool_name: Option<&str>, tool_guid: Option<Option<&str>>, page: Option<i64>, per_page: Option<i64>, ref: Option<&str>, sarif_id: Option<&str>, ) -> Result<Response, ApiError>

List code scanning analyses for a repository

Lists the details of all code scanning analyses for a repository, starting with the most recent. The response is paginated and you can use the page and per_page parameters to list the analyses you’re interested in. By default 30 analyses are listed per page.

The rules_count field in the response give the number of rules that were run in the analysis. For very old analyses this data is not available, and 0 is returned in this field.

You must use an access token with the security_events scope to use this endpoint with private repos, the public_repo scope also grants permission to read security events on public repos only. GitHub Apps must have the security_events read permission to use this endpoint.

Deprecation notice: The tool_name field is deprecated and will, in future, not be included in the response for this endpoint. The example response reflects this change. The tool name can now be found inside the tool field.

API method documentation

Source

pub fn code_scanning_get_analysis( &self, owner: &str, repo: &str, analysis_id: i64, ) -> Result<Response, ApiError>

Get a code scanning analysis for a repository

Gets a specified code scanning analysis for a repository. You must use an access token with the security_events scope to use this endpoint with private repos, the public_repo scope also grants permission to read security events on public repos only. GitHub Apps must have the security_events read permission to use this endpoint.

The default JSON response contains fields that describe the analysis. This includes the Git reference and commit SHA to which the analysis relates, the datetime of the analysis, the name of the code scanning tool, and the number of alerts.

The rules_count field in the default response give the number of rules that were run in the analysis. For very old analyses this data is not available, and 0 is returned in this field.

If you use the Accept header application/sarif+json, the response contains the analysis data that was uploaded. This is formatted as SARIF version 2.1.0.

API method documentation

Source

pub fn code_scanning_delete_analysis( &self, owner: &str, repo: &str, analysis_id: i64, confirm_delete: Option<Option<&str>>, ) -> Result<Response, ApiError>

Delete a code scanning analysis from a repository

Deletes a specified code scanning analysis from a repository. For private repositories, you must use an access token with the repo scope. For public repositories, you must use an access token with public_repo scope. GitHub Apps must have the security_events write permission to use this endpoint.

You can delete one analysis at a time. To delete a series of analyses, start with the most recent analysis and work backwards. Conceptually, the process is similar to the undo function in a text editor.

When you list the analyses for a repository, one or more will be identified as deletable in the response:

"deletable": true

An analysis is deletable when it’s the most recent in a set of analyses. Typically, a repository will have multiple sets of analyses for each enabled code scanning tool, where a set is determined by a unique combination of analysis values:

  • ref
  • tool
  • analysis_key
  • environment

If you attempt to delete an analysis that is not the most recent in a set, you’ll get a 400 response with the message:

Analysis specified is not deletable.

The response from a successful DELETE operation provides you with two alternative URLs for deleting the next analysis in the set: next_analysis_url and confirm_delete_url. Use the next_analysis_url URL if you want to avoid accidentally deleting the final analysis in a set. This is a useful option if you want to preserve at least one analysis for the specified tool in your repository. Use the confirm_delete_url URL if you are content to remove all analyses for a tool. When you delete the last analysis in a set, the value of next_analysis_url and confirm_delete_url in the 200 response is null.

As an example of the deletion process, let’s imagine that you added a workflow that configured a particular code scanning tool to analyze the code in a repository. This tool has added 15 analyses: 10 on the default branch, and another 5 on a topic branch. You therefore have two separate sets of analyses for this tool. You’ve now decided that you want to remove all of the analyses for the tool. To do this you must make 15 separate deletion requests. To start, you must find an analysis that’s identified as deletable. Each set of analyses always has one that’s identified as deletable. Having found the deletable analysis for one of the two sets, delete this analysis and then continue deleting the next analysis in the set until they’re all deleted. Then repeat the process for the second set. The procedure therefore consists of a nested loop:

Outer loop:

  • List the analyses for the repository, filtered by tool.

  • Parse this list to find a deletable analysis. If found:

    Inner loop:

    • Delete the identified analysis.
    • Parse the response for the value of confirm_delete_url and, if found, use this in the next iteration.

The above process assumes that you want to remove all trace of the tool’s analyses from the GitHub user interface, for the specified repository, and it therefore uses the confirm_delete_url value. Alternatively, you could use the next_analysis_url value, which would leave the last analysis in each set undeleted to avoid removing a tool’s analysis entirely.

API method documentation

Source

pub fn code_scanning_upload_sarif<Content>( &self, owner: &str, repo: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Upload an analysis as SARIF data

Uploads SARIF data containing the results of a code scanning analysis to make the results available in a repository. You must use an access token with the security_events scope to use this endpoint for private repositories. You can also use tokens with the public_repo scope for public repositories only. GitHub Apps must have the security_events write permission to use this endpoint.

There are two places where you can upload code scanning results.

You must compress the SARIF-formatted analysis data that you want to upload, using gzip, and then encode it as a Base64 format string. For example:

gzip -c analysis-data.sarif | base64 -w0

SARIF upload supports a maximum of 5000 results per analysis run. Any results over this limit are ignored and any SARIF uploads with more than 25,000 results are rejected. Typically, but not necessarily, a SARIF file contains a single run of a single tool. If a code scanning tool generates too many results, you should update the analysis configuration to run only the most important rules or queries.

The 202 Accepted, response includes an id value. You can use this ID to check the status of the upload by using this for the /sarifs/{sarif_id} endpoint. For more information, see “Get information about a SARIF upload.”

API method documentation

§Content
Source

pub fn code_scanning_get_sarif( &self, owner: &str, repo: &str, sarif_id: &str, ) -> Result<Response, ApiError>

Get information about a SARIF upload

Gets information about a SARIF upload, including the status and the URL of the analysis that was uploaded so that you can retrieve details of the analysis. For more information, see “Get a code scanning analysis for a repository.” You must use an access token with the security_events scope to use this endpoint with private repos, the public_repo scope also grants permission to read security events on public repos only. GitHub Apps must have the security_events read permission to use this endpoint.

API method documentation

Source

pub fn repos_codeowners_errors( &self, owner: &str, repo: &str, ref: Option<&str>, ) -> Result<Response, ApiError>

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.”

API method documentation

Source

pub fn codespaces_list_in_repository_for_authenticated_user( &self, per_page: Option<i64>, page: Option<i64>, owner: &str, repo: &str, ) -> Result<Response, ApiError>

List codespaces in a repository for the authenticated user

Lists the codespaces associated to a specified repository and the authenticated user.

You must authenticate using an access token with the codespace scope to use this endpoint.

GitHub Apps must have read access to the codespaces repository permission to use this endpoint.

API method documentation

Source

pub fn codespaces_create_with_repo_for_authenticated_user<Content>( &self, owner: &str, repo: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Create a codespace in a repository

Creates a codespace owned by the authenticated user in the specified repository.

You must authenticate using an access token with the codespace scope to use this endpoint.

GitHub Apps must have write access to the codespaces repository permission to use this endpoint.

API method documentation

§Content
Source

pub fn codespaces_repo_machines_for_authenticated_user( &self, owner: &str, repo: &str, location: Option<&str>, ) -> Result<Response, ApiError>

List available machine types for a repository

List the machine types available for a given repository based on its configuration.

You must authenticate using an access token with the codespace scope to use this endpoint.

GitHub Apps must have write access to the codespaces_metadata repository permission to use this endpoint.

API method documentation

Source

pub fn codespaces_list_repo_secrets( &self, owner: &str, repo: &str, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List repository secrets

Lists all secrets available in a repository without revealing their encrypted values. You must authenticate using an access token with the repo scope to use this endpoint. GitHub Apps must have the codespaces_secrets repository permission to use this endpoint.

API method documentation

Source

pub fn codespaces_get_repo_public_key( &self, owner: &str, repo: &str, ) -> Result<Response, ApiError>

Get a repository public key

Gets your public key, which you need to encrypt secrets. You need to encrypt a secret before you can create or update secrets. 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 codespaces_secrets repository permission to use this endpoint.

API method documentation

Source

pub fn codespaces_get_repo_secret( &self, owner: &str, repo: &str, secret_name: &str, ) -> Result<Response, ApiError>

Get a repository secret

Gets a single repository secret without revealing its encrypted value. You must authenticate using an access token with the repo scope to use this endpoint. GitHub Apps must have the codespaces_secrets repository permission to use this endpoint.

API method documentation

Source

pub fn codespaces_create_or_update_repo_secret<Content>( &self, owner: &str, repo: &str, secret_name: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Create or update a repository secret

Creates or updates a repository secret with an encrypted value. Encrypt your secret using LibSodium. You must authenticate using an access token with the repo scope to use this endpoint. GitHub Apps must have the codespaces_secrets repository permission to use this endpoint.

§Example of encrypting a secret using Node.js

Encrypt your secret using the tweetsodium library.

const sodium = require('tweetsodium');
 
const key = "base64-encoded-public-key";
const value = "plain-text-secret";
 
// Convert the message and key to Uint8Array's (Buffer implements that interface)
const messageBytes = Buffer.from(value);
const keyBytes = Buffer.from(key, 'base64');
 
// Encrypt using LibSodium.
const encryptedBytes = sodium.seal(messageBytes, keyBytes);
 
// Base64 the encrypted secret
const encrypted = Buffer.from(encryptedBytes).toString('base64');
 
console.log(encrypted);
§Example of encrypting a secret using Python

Encrypt your secret using pynacl with Python 3.

from base64 import b64encode
from nacl import encoding, public
 
def encrypt(public_key: str, secret_value: str) -> str:
  """Encrypt a Unicode string using the public key."""
  public_key = public.PublicKey(public_key.encode("utf-8"), encoding.Base64Encoder())
  sealed_box = public.SealedBox(public_key)
  encrypted = sealed_box.encrypt(secret_value.encode("utf-8"))
  return b64encode(encrypted).decode("utf-8")
§Example of encrypting a secret using C#

Encrypt your secret using the Sodium.Core package.

var secretValue = System.Text.Encoding.UTF8.GetBytes("mySecret");
var publicKey = Convert.FromBase64String("2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvvcCU=");
 
var sealedPublicKeyBox = Sodium.SealedPublicKeyBox.Create(secretValue, publicKey);
 
Console.WriteLine(Convert.ToBase64String(sealedPublicKeyBox));
§Example of encrypting a secret using Ruby

Encrypt your secret using the rbnacl gem.

require "rbnacl"
require "base64"
 
key = Base64.decode64("+ZYvJDZMHUfBkJdyq5Zm9SKqeuBQ4sj+6sfjlH4CgG0=")
public_key = RbNaCl::PublicKey.new(key)
 
box = RbNaCl::Boxes::Sealed.from_public_key(public_key)
encrypted_secret = box.encrypt("my_secret")
 
# Print the base64 encoded secret
puts Base64.strict_encode64(encrypted_secret)

API method documentation

§Content
Source

pub fn codespaces_delete_repo_secret( &self, owner: &str, repo: &str, secret_name: &str, ) -> Result<Response, ApiError>

Delete a repository secret

Deletes a secret in a repository using the secret name. You must authenticate using an access token with the repo scope to use this endpoint. GitHub Apps must have the codespaces_secrets repository permission to use this endpoint.

API method documentation

Source

pub fn repos_list_collaborators( &self, owner: &str, repo: &str, affiliation: Option<&str>, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

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.

API method documentation

Source

pub fn repos_check_collaborator( &self, owner: &str, repo: &str, username: &str, ) -> Result<Response, ApiError>

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.

API method documentation

Source

pub fn repos_add_collaborator<Content>( &self, owner: &str, repo: &str, username: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

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 repository invitations API endpoints.

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.

API method documentation

§Content
Source

pub fn repos_remove_collaborator( &self, owner: &str, repo: &str, username: &str, ) -> Result<Response, ApiError>

Remove a repository collaborator

API method documentation

Source

pub fn repos_get_collaborator_permission_level( &self, owner: &str, repo: &str, username: &str, ) -> Result<Response, ApiError>

Get repository permissions for a user

Checks the repository permission of a collaborator. The possible repository permissions are admin, write, read, and none.

API method documentation

Source

pub fn repos_list_commit_comments_for_repo( &self, owner: &str, repo: &str, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

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.

API method documentation

Source

pub fn repos_get_commit_comment( &self, owner: &str, repo: &str, comment_id: i64, ) -> Result<Response, ApiError>

Get a commit comment

API method documentation

Source

pub fn repos_delete_commit_comment( &self, owner: &str, repo: &str, comment_id: i64, ) -> Result<Response, ApiError>

Delete a commit comment

API method documentation

Source

pub fn repos_update_commit_comment<Content>( &self, owner: &str, repo: &str, comment_id: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Source

pub fn reactions_list_for_commit_comment( &self, owner: &str, repo: &str, comment_id: i64, content: Option<&str>, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List reactions for a commit comment

List the reactions to a commit comment.

API method documentation

Source

pub fn reactions_create_for_commit_comment<Content>( &self, owner: &str, repo: &str, comment_id: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Create reaction for a commit comment

Create a reaction to a commit comment. A response with an HTTP 200 status means that you already added the reaction type to this commit comment.

API method documentation

§Content
Source

pub fn reactions_delete_for_commit_comment( &self, owner: &str, repo: &str, comment_id: i64, reaction_id: i64, ) -> Result<Response, ApiError>

Delete a commit comment reaction

Note: You can also specify a repository by repository_id using the route DELETE /repositories/:repository_id/comments/:comment_id/reactions/:reaction_id.

Delete a reaction to a commit comment.

API method documentation

Source

pub fn repos_list_commits( &self, owner: &str, repo: &str, sha: Option<&str>, path: Option<&str>, author: Option<&str>, since: Option<&str>, until: Option<&str>, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

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:

NameTypeDescription
verifiedbooleanIndicates whether GitHub considers the signature in this commit to be verified.
reasonstringThe reason for verified value. Possible values and their meanings are enumerated in table below.
signaturestringThe signature that was extracted from the commit.
payloadstringThe value that was signed.

These are the possible values for reason in the verification object:

ValueDescription
expired_keyThe key that made the signature is expired.
not_signing_keyThe “signing” flag is not among the usage flags in the GPG key that made the signature.
gpgverify_errorThere was an error communicating with the signature verification service.
gpgverify_unavailableThe signature verification service is currently unavailable.
unsignedThe object does not include a signature.
unknown_signature_typeA non-PGP signature was found in the commit.
no_userNo user was associated with the committer email address in the commit.
unverified_emailThe committer email address in the commit was associated with a user, but the email address is not verified on her/his account.
bad_emailThe committer email address in the commit is not included in the identities of the PGP key that made the signature.
unknown_keyThe key that made the signature has not been registered with any user’s account.
malformed_signatureThere was an error parsing the signature.
invalidThe signature could not be cryptographically verified using the key whose key-id was found in the signature.
validNone of the above errors applied, so the signature is considered to be verified.

API method documentation

Source

pub fn repos_list_branches_for_head_commit( &self, owner: &str, repo: &str, commit_sha: &str, ) -> Result<Response, ApiError>

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.

API method documentation

Source

pub fn repos_list_comments_for_commit( &self, owner: &str, repo: &str, commit_sha: &str, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List commit comments

Use the :commit_sha to specify the commit that will have its comments listed.

API method documentation

Source

pub fn repos_create_commit_comment<Content>( &self, owner: &str, repo: &str, commit_sha: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

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.

API method documentation

§Content
Source

pub fn repos_list_pull_requests_associated_with_commit( &self, owner: &str, repo: &str, commit_sha: &str, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

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, additionally returns open pull requests associated with the commit. The results may include open and closed pull requests.

API method documentation

Source

pub fn repos_get_commit( &self, owner: &str, repo: &str, page: Option<i64>, per_page: Option<i64>, ref: &str, ) -> Result<Response, ApiError>

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:

NameTypeDescription
verifiedbooleanIndicates whether GitHub considers the signature in this commit to be verified.
reasonstringThe reason for verified value. Possible values and their meanings are enumerated in table below.
signaturestringThe signature that was extracted from the commit.
payloadstringThe value that was signed.

These are the possible values for reason in the verification object:

ValueDescription
expired_keyThe key that made the signature is expired.
not_signing_keyThe “signing” flag is not among the usage flags in the GPG key that made the signature.
gpgverify_errorThere was an error communicating with the signature verification service.
gpgverify_unavailableThe signature verification service is currently unavailable.
unsignedThe object does not include a signature.
unknown_signature_typeA non-PGP signature was found in the commit.
no_userNo user was associated with the committer email address in the commit.
unverified_emailThe committer email address in the commit was associated with a user, but the email address is not verified on her/his account.
bad_emailThe committer email address in the commit is not included in the identities of the PGP key that made the signature.
unknown_keyThe key that made the signature has not been registered with any user’s account.
malformed_signatureThere was an error parsing the signature.
invalidThe signature could not be cryptographically verified using the key whose key-id was found in the signature.
validNone of the above errors applied, so the signature is considered to be verified.

API method documentation

Source

pub fn checks_list_for_ref( &self, owner: &str, repo: &str, ref: &str, check_name: Option<&str>, status: Option<&str>, filter: Option<&str>, per_page: Option<i64>, page: Option<i64>, app_id: Option<i64>, ) -> Result<Response, ApiError>

List check runs for a Git reference

Note: The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty pull_requests array.

Lists check runs for a commit ref. The ref can be a SHA, branch name, or a tag name. GitHub Apps must have the checks:read permission on a private repository or pull access to a public repository to get check runs. OAuth Apps and authenticated users must have the repo scope to get check runs in a private repository.

API method documentation

Source

pub fn checks_list_suites_for_ref( &self, owner: &str, repo: &str, ref: &str, app_id: Option<i64>, check_name: Option<&str>, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List check suites for a Git reference

Note: The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty pull_requests array and a null value for head_branch.

Lists check suites for a commit ref. The ref can be a SHA, branch name, or a tag name. GitHub Apps must have the checks:read permission on a private repository or pull access to a public repository to list check suites. OAuth Apps and authenticated users must have the repo scope to get check suites in a private repository.

API method documentation

Source

pub fn repos_get_combined_status_for_ref( &self, owner: &str, repo: &str, ref: &str, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

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 or failure
  • pending if there are no statuses or a context is pending
  • success if the latest status for all contexts is success

API method documentation

Source

pub fn repos_list_commit_statuses_for_ref( &self, owner: &str, repo: &str, ref: &str, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

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.

API method documentation

Source

pub fn repos_get_community_profile_metrics( &self, owner: &str, repo: &str, ) -> Result<Response, ApiError>

Get community profile metrics

This endpoint will return all community profile metrics, including an overall health score, repository description, the presence of documentation, detected code of conduct, 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 these four documents are present: README, CONTRIBUTING, LICENSE, and CODE_OF_CONDUCT. For example, if all four documents are present, then the health_percentage is 100. If only one is present, then the health_percentage is 25.

content_reports_enabled is only returned for organization-owned repositories.

API method documentation

Source

pub fn repos_compare_commits( &self, owner: &str, repo: &str, page: Option<i64>, per_page: Option<i64>, basehead: &str, ) -> Result<Response, ApiError>

Compare two commits

The basehead param is comprised of two parts: base and head. Both must be branch names in repo. To compare branches across other repositories in the same network as repo, use the format <USERNAME>:branch.

The response from the API is equivalent to running the git log base..head command; however, commits are returned in chronological order. Pass the appropriate media type to fetch diff and patch formats.

The response also includes details on the files that were changed between the two commits. This includes the status of the change (for example, 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.

Working with large comparisons

To process a response with a large number of commits, you can use (per_page or page) to paginate the results. When using paging, the list of changed files is only returned with page 1, but includes all changed files for the entire comparison. For more information on working with pagination, see “Traversing with pagination.”

When calling this API without any paging parameters (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. When a paging parameter is specified, the first commit in the returned list of each page is the earliest.

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:

NameTypeDescription
verifiedbooleanIndicates whether GitHub considers the signature in this commit to be verified.
reasonstringThe reason for verified value. Possible values and their meanings are enumerated in table below.
signaturestringThe signature that was extracted from the commit.
payloadstringThe value that was signed.

These are the possible values for reason in the verification object:

ValueDescription
expired_keyThe key that made the signature is expired.
not_signing_keyThe “signing” flag is not among the usage flags in the GPG key that made the signature.
gpgverify_errorThere was an error communicating with the signature verification service.
gpgverify_unavailableThe signature verification service is currently unavailable.
unsignedThe object does not include a signature.
unknown_signature_typeA non-PGP signature was found in the commit.
no_userNo user was associated with the committer email address in the commit.
unverified_emailThe committer email address in the commit was associated with a user, but the email address is not verified on her/his account.
bad_emailThe committer email address in the commit is not included in the identities of the PGP key that made the signature.
unknown_keyThe key that made the signature has not been registered with any user’s account.
malformed_signatureThere was an error parsing the signature.
invalidThe signature could not be cryptographically verified using the key whose key-id was found in the signature.
validNone of the above errors applied, so the signature is considered to be verified.

API method documentation

Source

pub fn repos_get_content( &self, owner: &str, repo: &str, path: &str, ref: Option<&str>, ) -> Result<Response, ApiError>

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.

Note:

  • 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.
  • This API supports files up to 1 megabyte in size.
§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 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.

API method documentation

Source

pub fn repos_create_or_update_file_contents<Content>( &self, owner: &str, repo: &str, path: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Create or update file contents

Creates a new file or replaces an existing file in a repository.

API method documentation

§Content
Source

pub fn repos_delete_file<Content>( &self, owner: &str, repo: &str, path: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

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.

API method documentation

§Content
Source

pub fn repos_list_contributors( &self, owner: &str, repo: &str, anon: Option<&str>, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

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 v3 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.

API method documentation

Source

pub fn dependabot_list_repo_secrets( &self, owner: &str, repo: &str, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List repository secrets

Lists all secrets available in a repository without revealing their encrypted values. You must authenticate using an access token with the repo scope to use this endpoint. GitHub Apps must have the dependabot_secrets repository permission to use this endpoint.

API method documentation

Source

pub fn dependabot_get_repo_public_key( &self, owner: &str, repo: &str, ) -> Result<Response, ApiError>

Get a repository public key

Gets your public key, which you need to encrypt secrets. You need to encrypt a secret before you can create or update secrets. 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 dependabot_secrets repository permission to use this endpoint.

API method documentation

Source

pub fn dependabot_get_repo_secret( &self, owner: &str, repo: &str, secret_name: &str, ) -> Result<Response, ApiError>

Get a repository secret

Gets a single repository secret without revealing its encrypted value. You must authenticate using an access token with the repo scope to use this endpoint. GitHub Apps must have the dependabot_secrets repository permission to use this endpoint.

API method documentation

Source

pub fn dependabot_create_or_update_repo_secret<Content>( &self, owner: &str, repo: &str, secret_name: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Create or update a repository secret

Creates or updates a repository secret with an encrypted value. Encrypt your secret using LibSodium. You must authenticate using an access token with the repo scope to use this endpoint. GitHub Apps must have the dependabot_secrets repository permission to use this endpoint.

§Example encrypting a secret using Node.js

Encrypt your secret using the tweetsodium library.

const sodium = require('tweetsodium');
 
const key = "base64-encoded-public-key";
const value = "plain-text-secret";
 
// Convert the message and key to Uint8Array's (Buffer implements that interface)
const messageBytes = Buffer.from(value);
const keyBytes = Buffer.from(key, 'base64');
 
// Encrypt using LibSodium.
const encryptedBytes = sodium.seal(messageBytes, keyBytes);
 
// Base64 the encrypted secret
const encrypted = Buffer.from(encryptedBytes).toString('base64');
 
console.log(encrypted);
§Example encrypting a secret using Python

Encrypt your secret using pynacl with Python 3.

from base64 import b64encode
from nacl import encoding, public
 
def encrypt(public_key: str, secret_value: str) -> str:
  """Encrypt a Unicode string using the public key."""
  public_key = public.PublicKey(public_key.encode("utf-8"), encoding.Base64Encoder())
  sealed_box = public.SealedBox(public_key)
  encrypted = sealed_box.encrypt(secret_value.encode("utf-8"))
  return b64encode(encrypted).decode("utf-8")
§Example encrypting a secret using C#

Encrypt your secret using the Sodium.Core package.

var secretValue = System.Text.Encoding.UTF8.GetBytes("mySecret");
var publicKey = Convert.FromBase64String("2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvvcCU=");
 
var sealedPublicKeyBox = Sodium.SealedPublicKeyBox.Create(secretValue, publicKey);
 
Console.WriteLine(Convert.ToBase64String(sealedPublicKeyBox));
§Example encrypting a secret using Ruby

Encrypt your secret using the rbnacl gem.

require "rbnacl"
require "base64"
 
key = Base64.decode64("+ZYvJDZMHUfBkJdyq5Zm9SKqeuBQ4sj+6sfjlH4CgG0=")
public_key = RbNaCl::PublicKey.new(key)
 
box = RbNaCl::Boxes::Sealed.from_public_key(public_key)
encrypted_secret = box.encrypt("my_secret")
 
# Print the base64 encoded secret
puts Base64.strict_encode64(encrypted_secret)

API method documentation

§Content
Source

pub fn dependabot_delete_repo_secret( &self, owner: &str, repo: &str, secret_name: &str, ) -> Result<Response, ApiError>

Delete a repository secret

Deletes a secret in a repository using the secret name. You must authenticate using an access token with the repo scope to use this endpoint. GitHub Apps must have the dependabot_secrets repository permission to use this endpoint.

API method documentation

Source

pub fn dependency_graph_diff_range( &self, owner: &str, repo: &str, basehead: &str, name: Option<&str>, ) -> Result<Response, ApiError>

Get a diff of the dependencies between commits

Gets the diff of the dependency changes between two commits of a repository, based on the changes to the dependency manifests made in those commits.

API method documentation

Source

pub fn repos_list_deployments( &self, owner: &str, repo: &str, sha: Option<&str>, ref: Option<&str>, task: Option<&str>, environment: Option<Option<&str>>, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List deployments

Simple filtering of deployments is available via query parameters:

API method documentation

Source

pub fn repos_create_deployment<Content>( &self, owner: &str, repo: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

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.

API method documentation

§Content
Source

pub fn repos_get_deployment( &self, owner: &str, repo: &str, deployment_id: i64, ) -> Result<Response, ApiError>

Get a deployment

API method documentation

Source

pub fn repos_delete_deployment( &self, owner: &str, repo: &str, deployment_id: i64, ) -> Result<Response, ApiError>

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.”

API method documentation

Source

pub fn repos_list_deployment_statuses( &self, owner: &str, repo: &str, deployment_id: i64, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List deployment statuses

Users with pull access can view deployment statuses for a deployment:

API method documentation

Source

pub fn repos_create_deployment_status<Content>( &self, owner: &str, repo: &str, deployment_id: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

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.

API method documentation

§Content
Source

pub fn repos_get_deployment_status( &self, owner: &str, repo: &str, deployment_id: i64, status_id: i64, ) -> Result<Response, ApiError>

Get a deployment status

Users with pull access can view a deployment status for a deployment:

API method documentation

Source

pub fn repos_create_dispatch_event<Content>( &self, owner: &str, repo: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

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:

This input example shows how you can use the client_payload as a test to debug your workflow.

API method documentation

§Content
Source

pub fn repos_get_all_environments( &self, owner: &str, repo: &str, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

Get all environments

Get all 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.

API method documentation

Source

pub fn repos_get_environment( &self, owner: &str, repo: &str, environment_name: &str, ) -> Result<Response, ApiError>

Get 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.

API method documentation

Source

pub fn repos_create_or_update_environment<Content>( &self, owner: &str, repo: &str, environment_name: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

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: Although you can use this operation to specify that only branches that match specified name patterns can deploy to this environment, you must use the UI to set the name patterns. For more information, see “Environments.”

Note: To create or update secrets for an environment, see “Secrets.”

You must authenticate using an access token with the repo scope to use this endpoint.

API method documentation

§Content
Source

pub fn repos_delete_an_environment( &self, owner: &str, repo: &str, environment_name: &str, ) -> Result<Response, ApiError>

Delete an environment

You must authenticate using an access token with the repo scope to use this endpoint.

API method documentation

Source

pub fn activity_list_repo_events( &self, owner: &str, repo: &str, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List repository events

API method documentation

Source

pub fn repos_list_forks( &self, owner: &str, repo: &str, sort: Option<&str>, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

Source

pub fn repos_create_fork<Content>( &self, owner: &str, repo: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

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.

API method documentation

§Content
Source

pub fn git_create_blob<Content>( &self, owner: &str, repo: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Source

pub fn git_get_blob( &self, owner: &str, repo: &str, file_sha: &str, ) -> Result<Response, ApiError>

Get a blob

The content in the response will always be Base64 encoded.

Note: This API supports blobs up to 100 megabytes in size.

API method documentation

Source

pub fn git_create_commit<Content>( &self, owner: &str, repo: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Create a commit

Creates a new Git commit object.

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:

NameTypeDescription
verifiedbooleanIndicates whether GitHub considers the signature in this commit to be verified.
reasonstringThe reason for verified value. Possible values and their meanings are enumerated in the table below.
signaturestringThe signature that was extracted from the commit.
payloadstringThe value that was signed.

These are the possible values for reason in the verification object:

ValueDescription
expired_keyThe key that made the signature is expired.
not_signing_keyThe “signing” flag is not among the usage flags in the GPG key that made the signature.
gpgverify_errorThere was an error communicating with the signature verification service.
gpgverify_unavailableThe signature verification service is currently unavailable.
unsignedThe object does not include a signature.
unknown_signature_typeA non-PGP signature was found in the commit.
no_userNo user was associated with the committer email address in the commit.
unverified_emailThe committer email address in the commit was associated with a user, but the email address is not verified on her/his account.
bad_emailThe committer email address in the commit is not included in the identities of the PGP key that made the signature.
unknown_keyThe key that made the signature has not been registered with any user’s account.
malformed_signatureThere was an error parsing the signature.
invalidThe signature could not be cryptographically verified using the key whose key-id was found in the signature.
validNone of the above errors applied, so the signature is considered to be verified.

API method documentation

§Content
Source

pub fn git_get_commit( &self, owner: &str, repo: &str, commit_sha: &str, ) -> Result<Response, ApiError>

Get a commit

Gets a Git commit object.

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:

NameTypeDescription
verifiedbooleanIndicates whether GitHub considers the signature in this commit to be verified.
reasonstringThe reason for verified value. Possible values and their meanings are enumerated in the table below.
signaturestringThe signature that was extracted from the commit.
payloadstringThe value that was signed.

These are the possible values for reason in the verification object:

ValueDescription
expired_keyThe key that made the signature is expired.
not_signing_keyThe “signing” flag is not among the usage flags in the GPG key that made the signature.
gpgverify_errorThere was an error communicating with the signature verification service.
gpgverify_unavailableThe signature verification service is currently unavailable.
unsignedThe object does not include a signature.
unknown_signature_typeA non-PGP signature was found in the commit.
no_userNo user was associated with the committer email address in the commit.
unverified_emailThe committer email address in the commit was associated with a user, but the email address is not verified on her/his account.
bad_emailThe committer email address in the commit is not included in the identities of the PGP key that made the signature.
unknown_keyThe key that made the signature has not been registered with any user’s account.
malformed_signatureThere was an error parsing the signature.
invalidThe signature could not be cryptographically verified using the key whose key-id was found in the signature.
validNone of the above errors applied, so the signature is considered to be verified.

API method documentation

Source

pub fn git_list_matching_refs( &self, owner: &str, repo: &str, ref: &str, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List matching references

Returns an array of references from your Git database that match the supplied name. The :ref in the URL must be formatted as heads/<branch name> for branches and tags/<tag name> for tags. If the :ref doesn’t exist in the repository, but existing refs start with :ref, they will be returned as an array.

When you use this endpoint without providing a :ref, it will return an array of all the references from your Git database, including notes and stashes if they exist on the server. Anything in the namespace is returned, not just heads and tags.

Note: You need to explicitly request a pull request to trigger a test merge commit, which checks the mergeability of pull requests. For more information, see “Checking mergeability of pull requests”.

If you request matching references for a branch named feature but the branch feature doesn’t exist, the response can still include other matching head refs that start with the word feature, such as featureA and featureB.

API method documentation

Source

pub fn git_get_ref( &self, owner: &str, repo: &str, ref: &str, ) -> Result<Response, ApiError>

Get a reference

Returns a single reference from your Git database. The :ref in the URL must be formatted as heads/<branch name> for branches and tags/<tag name> for tags. If the :ref doesn’t match an existing ref, a 404 is returned.

Note: You need to explicitly request a pull request to trigger a test merge commit, which checks the mergeability of pull requests. For more information, see “Checking mergeability of pull requests”.

API method documentation

Source

pub fn git_create_ref<Content>( &self, owner: &str, repo: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Create a reference

Creates a reference for your repository. You are unable to create new references for empty repositories, even if the commit SHA-1 hash used exists. Empty repositories are repositories without branches.

API method documentation

§Content
Source

pub fn git_delete_ref( &self, owner: &str, repo: &str, ref: &str, ) -> Result<Response, ApiError>

Delete a reference

API method documentation

Source

pub fn git_update_ref<Content>( &self, owner: &str, repo: &str, ref: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Source

pub fn git_create_tag<Content>( &self, owner: &str, repo: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Create a tag object

Note that creating a tag object does not create the reference that makes a tag in Git. If you want to create an annotated tag in Git, you have to do this call to create the tag object, and then create the refs/tags/[tag] reference. If you want to create a lightweight tag, you only have to create the tag reference - this call would be unnecessary.

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:

NameTypeDescription
verifiedbooleanIndicates whether GitHub considers the signature in this commit to be verified.
reasonstringThe reason for verified value. Possible values and their meanings are enumerated in table below.
signaturestringThe signature that was extracted from the commit.
payloadstringThe value that was signed.

These are the possible values for reason in the verification object:

ValueDescription
expired_keyThe key that made the signature is expired.
not_signing_keyThe “signing” flag is not among the usage flags in the GPG key that made the signature.
gpgverify_errorThere was an error communicating with the signature verification service.
gpgverify_unavailableThe signature verification service is currently unavailable.
unsignedThe object does not include a signature.
unknown_signature_typeA non-PGP signature was found in the commit.
no_userNo user was associated with the committer email address in the commit.
unverified_emailThe committer email address in the commit was associated with a user, but the email address is not verified on her/his account.
bad_emailThe committer email address in the commit is not included in the identities of the PGP key that made the signature.
unknown_keyThe key that made the signature has not been registered with any user’s account.
malformed_signatureThere was an error parsing the signature.
invalidThe signature could not be cryptographically verified using the key whose key-id was found in the signature.
validNone of the above errors applied, so the signature is considered to be verified.

API method documentation

§Content
Source

pub fn git_get_tag( &self, owner: &str, repo: &str, tag_sha: &str, ) -> Result<Response, ApiError>

Get a tag

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:

NameTypeDescription
verifiedbooleanIndicates whether GitHub considers the signature in this commit to be verified.
reasonstringThe reason for verified value. Possible values and their meanings are enumerated in table below.
signaturestringThe signature that was extracted from the commit.
payloadstringThe value that was signed.

These are the possible values for reason in the verification object:

ValueDescription
expired_keyThe key that made the signature is expired.
not_signing_keyThe “signing” flag is not among the usage flags in the GPG key that made the signature.
gpgverify_errorThere was an error communicating with the signature verification service.
gpgverify_unavailableThe signature verification service is currently unavailable.
unsignedThe object does not include a signature.
unknown_signature_typeA non-PGP signature was found in the commit.
no_userNo user was associated with the committer email address in the commit.
unverified_emailThe committer email address in the commit was associated with a user, but the email address is not verified on her/his account.
bad_emailThe committer email address in the commit is not included in the identities of the PGP key that made the signature.
unknown_keyThe key that made the signature has not been registered with any user’s account.
malformed_signatureThere was an error parsing the signature.
invalidThe signature could not be cryptographically verified using the key whose key-id was found in the signature.
validNone of the above errors applied, so the signature is considered to be verified.

API method documentation

Source

pub fn git_create_tree<Content>( &self, owner: &str, repo: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Create a tree

The tree creation API accepts nested entries. If you specify both a tree and a nested path modifying that tree, this endpoint will overwrite the contents of the tree with the new path contents, and create a new tree structure.

If you use this endpoint to add, delete, or modify the file contents in a tree, you will need to commit the tree and then update a branch to point to the commit. For more information see “Create a commit” and “Update a reference.”

API method documentation

§Content
Source

pub fn git_get_tree( &self, owner: &str, repo: &str, tree_sha: &str, recursive: Option<&str>, ) -> Result<Response, ApiError>

Get a tree

Returns a single tree using the SHA1 value for that tree.

If truncated is true in the response then the number of items in the tree array exceeded our maximum limit. If you need to fetch more items, use the non-recursive method of fetching trees, and fetch one sub-tree at a time.

API method documentation

Source

pub fn repos_list_webhooks( &self, owner: &str, repo: &str, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List repository webhooks

API method documentation

Source

pub fn repos_create_webhook<Content>( &self, owner: &str, repo: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

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.

API method documentation

§Content
Source

pub fn repos_get_webhook( &self, owner: &str, repo: &str, hook_id: i64, ) -> Result<Response, ApiError>

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.”

API method documentation

Source

pub fn repos_delete_webhook( &self, owner: &str, repo: &str, hook_id: i64, ) -> Result<Response, ApiError>

Delete a repository webhook

API method documentation

Source

pub fn repos_update_webhook<Content>( &self, owner: &str, repo: &str, hook_id: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

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.”

API method documentation

§Content
Source

pub fn repos_get_webhook_config_for_repo( &self, owner: &str, repo: &str, hook_id: i64, ) -> Result<Response, ApiError>

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.

API method documentation

Source

pub fn repos_update_webhook_config_for_repo<Content>( &self, owner: &str, repo: &str, hook_id: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

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.

API method documentation

§Content
Source

pub fn repos_list_webhook_deliveries( &self, owner: &str, repo: &str, hook_id: i64, per_page: Option<i64>, cursor: Option<&str>, ) -> Result<Response, ApiError>

List deliveries for a repository webhook

Returns a list of webhook deliveries for a webhook configured in a repository.

API method documentation

Source

pub fn repos_get_webhook_delivery( &self, owner: &str, repo: &str, hook_id: i64, delivery_id: i64, ) -> Result<Response, ApiError>

Get a delivery for a repository webhook

Returns a delivery for a webhook configured in a repository.

API method documentation

Source

pub fn repos_redeliver_webhook_delivery( &self, owner: &str, repo: &str, hook_id: i64, delivery_id: i64, ) -> Result<Response, ApiError>

Redeliver a delivery for a repository webhook

Redeliver a webhook delivery for a webhook configured in a repository.

API method documentation

Source

pub fn repos_ping_webhook( &self, owner: &str, repo: &str, hook_id: i64, ) -> Result<Response, ApiError>

Ping a repository webhook

This will trigger a ping event to be sent to the hook.

API method documentation

Source

pub fn repos_test_push_webhook( &self, owner: &str, repo: &str, hook_id: i64, ) -> Result<Response, ApiError>

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

API method documentation

Source

pub fn migrations_get_import_status( &self, owner: &str, repo: &str, ) -> Result<Response, ApiError>

Get an import status

View the progress of an import.

Import status

This section includes details about the possible values of the status field of the Import Progress response.

An import that does not have errors will progress through these steps:

  • detecting - the “detection” step of the import is in progress because the request did not include a vcs parameter. The import is identifying the type of source control present at the URL.
  • importing - the “raw” step of the import is in progress. This is where commit data is fetched from the original repository. The import progress response will include commit_count (the total number of raw commits that will be imported) and percent (0 - 100, the current progress through the import).
  • mapping - the “rewrite” step of the import is in progress. This is where SVN branches are converted to Git branches, and where author updates are applied. The import progress response does not include progress information.
  • pushing - the “push” step of the import is in progress. This is where the importer updates the repository on GitHub. The import progress response will include push_percent, which is the percent value reported by git push when it is “Writing objects”.
  • complete - the import is complete, and the repository is ready on GitHub.

If there are problems, you will see one of these in the status field:

  • auth_failed - the import requires authentication in order to connect to the original repository. To update authentication for the import, please see the Update an import section.
  • error - the import encountered an error. The import progress response will include the failed_step and an error message. Contact GitHub Support for more information.
  • detection_needs_auth - the importer requires authentication for the originating repository to continue detection. To update authentication for the import, please see the Update an import section.
  • detection_found_nothing - the importer didn’t recognize any source control at the URL. To resolve, Cancel the import and retry with the correct URL.
  • detection_found_multiple - the importer found several projects or repositories at the provided URL. When this is the case, the Import Progress response will also include a project_choices field with the possible project choices as values. To update project choice, please see the Update an import section.

The project_choices field

When multiple projects are found at the provided URL, the response hash will include a project_choices field, the value of which is an array of hashes each representing a project choice. The exact key/value pairs of the project hashes will differ depending on the version control type.

Git LFS related fields

This section includes details about Git LFS related fields that may be present in the Import Progress response.

  • use_lfs - describes whether the import has been opted in or out of using Git LFS. The value can be opt_in, opt_out, or undecided if no action has been taken.
  • has_large_files - the boolean value describing whether files larger than 100MB were found during the importing step.
  • large_files_size - the total size in gigabytes of files larger than 100MB found in the originating repository.
  • large_files_count - the total number of files larger than 100MB found in the originating repository. To see a list of these files, make a “Get Large Files” request.

API method documentation

Source

pub fn migrations_start_import<Content>( &self, owner: &str, repo: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Start an import

Start a source import to a GitHub repository using GitHub Importer.

API method documentation

§Content
Source

pub fn migrations_cancel_import( &self, owner: &str, repo: &str, ) -> Result<Response, ApiError>

Cancel an import

Stop an import for a repository.

API method documentation

Source

pub fn migrations_update_import<Content>( &self, owner: &str, repo: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Update an import

An import can be updated with credentials or a project choice by passing in the appropriate parameters in this API request. If no parameters are provided, the import will be restarted.

Some servers (e.g. TFS servers) can have several projects at a single URL. In those cases the import progress will have the status detection_found_multiple and the Import Progress response will include a project_choices array. You can select the project to import by providing one of the objects in the project_choices array in the update request.

API method documentation

§Content
Source

pub fn migrations_get_commit_authors( &self, owner: &str, repo: &str, since: Option<i64>, ) -> Result<Response, ApiError>

Get commit authors

Each type of source control system represents authors in a different way. For example, a Git commit author has a display name and an email address, but a Subversion commit author just has a username. The GitHub Importer will make the author information valid, but the author might not be correct. For example, it will change the bare Subversion username hubot into something like hubot <hubot@12341234-abab-fefe-8787-fedcba987654>.

This endpoint and the Map a commit author endpoint allow you to provide correct Git author information.

API method documentation

Source

pub fn migrations_map_commit_author<Content>( &self, owner: &str, repo: &str, author_id: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Map a commit author

Update an author’s identity for the import. Your application can continue updating authors any time before you push new commits to the repository.

API method documentation

§Content
Source

pub fn migrations_get_large_files( &self, owner: &str, repo: &str, ) -> Result<Response, ApiError>

Get large files

List files larger than 100MB found during the import

API method documentation

Source

pub fn migrations_set_lfs_preference<Content>( &self, owner: &str, repo: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Update Git LFS preference

You can import repositories from Subversion, Mercurial, and TFS that include files larger than 100MB. This ability is powered by Git LFS. You can learn more about our LFS feature and working with large files on our help site.

API method documentation

§Content
Source

pub fn apps_get_repo_installation( &self, owner: &str, repo: &str, ) -> Result<Response, ApiError>

Get a repository installation for the authenticated app

Enables an authenticated GitHub App to find the repository’s installation information. The installation’s account type will be either an organization or a user account, depending which account the repository belongs to.

You must use a JWT to access this endpoint.

API method documentation

Source

pub fn interactions_get_restrictions_for_repo( &self, owner: &str, repo: &str, ) -> Result<Response, ApiError>

Get interaction restrictions for a repository

Shows which type of GitHub user can interact with this repository and when the restriction expires. If there are no restrictions, you will see an empty response.

API method documentation

Source

pub fn interactions_set_restrictions_for_repo<Content>( &self, owner: &str, repo: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Set interaction restrictions for a repository

Temporarily restricts interactions to a certain type of GitHub user within the given repository. You must have owner or admin access to set these restrictions. If an interaction limit is set for the user or organization that owns this repository, you will receive a 409 Conflict response and will not be able to use this endpoint to change the interaction limit for a single repository.

API method documentation

§Content
Source

pub fn interactions_remove_restrictions_for_repo( &self, owner: &str, repo: &str, ) -> Result<Response, ApiError>

Remove interaction restrictions for a repository

Removes all interaction restrictions from the given repository. You must have owner or admin access to remove restrictions. If the interaction limit is set for the user or organization that owns this repository, you will receive a 409 Conflict response and will not be able to use this endpoint to change the interaction limit for a single repository.

API method documentation

Source

pub fn repos_list_invitations( &self, owner: &str, repo: &str, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List repository invitations

When authenticating as a user with admin rights to a repository, this endpoint will list all currently open repository invitations.

API method documentation

Source

pub fn repos_delete_invitation( &self, owner: &str, repo: &str, invitation_id: i64, ) -> Result<Response, ApiError>

Delete a repository invitation

API method documentation

Source

pub fn repos_update_invitation<Content>( &self, owner: &str, repo: &str, invitation_id: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Source

pub fn issues_list_for_repo( &self, owner: &str, repo: &str, milestone: Option<&str>, state: Option<&str>, assignee: Option<&str>, creator: Option<&str>, mentioned: Option<&str>, labels: Option<&str>, sort: &Sort<'_>, since: Option<&str>, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List repository issues

List issues in a repository.

Note: GitHub’s REST API v3 considers every pull request an issue, but not every issue is a pull request. For this reason, “Issues” endpoints may return both issues and pull requests in the response. You can identify pull requests by the pull_request key. Be aware that the id of a pull request returned from “Issues” endpoints will be an issue id. To find out the pull request id, use the “List pull requests” endpoint.

API method documentation

Source

pub fn issues_create<Content>( &self, owner: &str, repo: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Create an issue

Any user with pull access to a repository can create an issue. If issues are disabled in the repository, the API returns a 410 Gone status.

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.

API method documentation

§Content
Source

pub fn issues_list_comments_for_repo( &self, owner: &str, repo: &str, sort: &Sort<'_>, since: Option<&str>, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List issue comments for a repository

By default, Issue Comments are ordered by ascending ID.

API method documentation

Source

pub fn issues_get_comment( &self, owner: &str, repo: &str, comment_id: i64, ) -> Result<Response, ApiError>

Get an issue comment

API method documentation

Source

pub fn issues_delete_comment( &self, owner: &str, repo: &str, comment_id: i64, ) -> Result<Response, ApiError>

Delete an issue comment

API method documentation

Source

pub fn issues_update_comment<Content>( &self, owner: &str, repo: &str, comment_id: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Source

pub fn reactions_list_for_issue_comment( &self, owner: &str, repo: &str, comment_id: i64, content: Option<&str>, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List reactions for an issue comment

List the reactions to an issue comment.

API method documentation

Source

pub fn reactions_create_for_issue_comment<Content>( &self, owner: &str, repo: &str, comment_id: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Create reaction for an issue comment

Create a reaction to an issue comment. A response with an HTTP 200 status means that you already added the reaction type to this issue comment.

API method documentation

§Content
Source

pub fn reactions_delete_for_issue_comment( &self, owner: &str, repo: &str, comment_id: i64, reaction_id: i64, ) -> Result<Response, ApiError>

Delete an issue comment reaction

Note: You can also specify a repository by repository_id using the route DELETE delete /repositories/:repository_id/issues/comments/:comment_id/reactions/:reaction_id.

Delete a reaction to an issue comment.

API method documentation

Source

pub fn issues_list_events_for_repo( &self, owner: &str, repo: &str, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List issue events for a repository

API method documentation

Source

pub fn issues_get_event( &self, owner: &str, repo: &str, event_id: i64, ) -> Result<Response, ApiError>

Get an issue event

API method documentation

Source

pub fn issues_get( &self, owner: &str, repo: &str, issue_number: i64, ) -> Result<Response, ApiError>

Get an issue

The API returns a 301 Moved Permanently status if the issue was transferred to another repository. If the issue was transferred to or deleted from a repository where the authenticated user lacks read access, the API returns a 404 Not Found status. If the issue was deleted from a repository where the authenticated user has read access, the API returns a 410 Gone status. To receive webhook events for transferred and deleted issues, subscribe to the issues webhook.

Note: GitHub’s REST API v3 considers every pull request an issue, but not every issue is a pull request. For this reason, “Issues” endpoints may return both issues and pull requests in the response. You can identify pull requests by the pull_request key. Be aware that the id of a pull request returned from “Issues” endpoints will be an issue id. To find out the pull request id, use the “List pull requests” endpoint.

API method documentation

Source

pub fn issues_update<Content>( &self, owner: &str, repo: &str, issue_number: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Update an issue

Issue owners and users with push access can edit an issue.

API method documentation

§Content
Source

pub fn issues_add_assignees<Content>( &self, owner: &str, repo: &str, issue_number: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Add assignees to an issue

Adds up to 10 assignees to an issue. Users already assigned to an issue are not replaced.

API method documentation

§Content
Source

pub fn issues_remove_assignees<Content>( &self, owner: &str, repo: &str, issue_number: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Remove assignees from an issue

Removes one or more assignees from an issue.

API method documentation

§Content
Source

pub fn issues_list_comments( &self, owner: &str, repo: &str, issue_number: i64, since: Option<&str>, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List issue comments

Issue Comments are ordered by ascending ID.

API method documentation

Source

pub fn issues_create_comment<Content>( &self, owner: &str, repo: &str, issue_number: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Create an issue comment

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.

API method documentation

§Content
Source

pub fn issues_list_events( &self, owner: &str, repo: &str, issue_number: i64, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List issue events

API method documentation

Source

pub fn issues_list_labels_on_issue( &self, owner: &str, repo: &str, issue_number: i64, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List labels for an issue

API method documentation

Source

pub fn issues_set_labels<Content>( &self, owner: &str, repo: &str, issue_number: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Set labels for an issue

Removes any previous labels and sets the new labels for an issue.

API method documentation

§Content
Source

pub fn issues_add_labels<Content>( &self, owner: &str, repo: &str, issue_number: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Source

pub fn issues_remove_all_labels( &self, owner: &str, repo: &str, issue_number: i64, ) -> Result<Response, ApiError>

Remove all labels from an issue

API method documentation

Source

pub fn issues_remove_label( &self, owner: &str, repo: &str, issue_number: i64, name: &str, ) -> Result<Response, ApiError>

Remove a label from an issue

Removes the specified label from the issue, and returns the remaining labels on the issue. This endpoint returns a 404 Not Found status if the label does not exist.

API method documentation

Source

pub fn issues_lock<Content>( &self, owner: &str, repo: &str, issue_number: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Lock an issue

Users with push access can lock an issue or pull request’s conversation.

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.”

API method documentation

§Content
Source

pub fn issues_unlock( &self, owner: &str, repo: &str, issue_number: i64, ) -> Result<Response, ApiError>

Unlock an issue

Users with push access can unlock an issue’s conversation.

API method documentation

Source

pub fn reactions_list_for_issue( &self, owner: &str, repo: &str, issue_number: i64, content: Option<&str>, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List reactions for an issue

List the reactions to an issue.

API method documentation

Source

pub fn reactions_create_for_issue<Content>( &self, owner: &str, repo: &str, issue_number: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Create reaction for an issue

Create a reaction to an issue. A response with an HTTP 200 status means that you already added the reaction type to this issue.

API method documentation

§Content
Source

pub fn reactions_delete_for_issue( &self, owner: &str, repo: &str, issue_number: i64, reaction_id: i64, ) -> Result<Response, ApiError>

Delete an issue reaction

Note: You can also specify a repository by repository_id using the route DELETE /repositories/:repository_id/issues/:issue_number/reactions/:reaction_id.

Delete a reaction to an issue.

API method documentation

Source

pub fn issues_list_events_for_timeline( &self, owner: &str, repo: &str, issue_number: i64, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List timeline events for an issue

API method documentation

Source

pub fn repos_list_deploy_keys( &self, owner: &str, repo: &str, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List deploy keys

API method documentation

Source

pub fn repos_create_deploy_key<Content>( &self, owner: &str, repo: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Create a deploy key

You can create a read-only deploy key.

API method documentation

§Content
Source

pub fn repos_get_deploy_key( &self, owner: &str, repo: &str, key_id: i64, ) -> Result<Response, ApiError>

Get a deploy key

API method documentation

Source

pub fn repos_delete_deploy_key( &self, owner: &str, repo: &str, key_id: i64, ) -> Result<Response, ApiError>

Delete a deploy key

Deploy keys are immutable. If you need to update a key, remove the key and create a new one instead.

API method documentation

Source

pub fn issues_list_labels_for_repo( &self, owner: &str, repo: &str, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List labels for a repository

API method documentation

Source

pub fn issues_create_label<Content>( &self, owner: &str, repo: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Source

pub fn issues_get_label( &self, owner: &str, repo: &str, name: &str, ) -> Result<Response, ApiError>

Source

pub fn issues_delete_label( &self, owner: &str, repo: &str, name: &str, ) -> Result<Response, ApiError>

Delete a label

API method documentation

Source

pub fn issues_update_label<Content>( &self, owner: &str, repo: &str, name: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Source

pub fn repos_list_languages( &self, owner: &str, repo: &str, ) -> Result<Response, ApiError>

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.

API method documentation

Source

pub fn repos_enable_lfs_for_repo( &self, owner: &str, repo: &str, ) -> Result<Response, ApiError>

Enable Git LFS for a repository

API method documentation

Source

pub fn repos_disable_lfs_for_repo( &self, owner: &str, repo: &str, ) -> Result<Response, ApiError>

Disable Git LFS for a repository

API method documentation

Source

pub fn licenses_get_for_repo( &self, owner: &str, repo: &str, ) -> Result<Response, ApiError>

Get the license for a repository

This method returns the contents of the repository’s license file, if one is detected.

Similar to Get repository content, this method also supports custom media types for retrieving the raw license content or rendered license HTML.

API method documentation

Source

pub fn repos_merge_upstream<Content>( &self, owner: &str, repo: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

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.

API method documentation

§Content
Source

pub fn repos_merge<Content>( &self, owner: &str, repo: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Source

pub fn issues_list_milestones( &self, owner: &str, repo: &str, state: Option<&str>, sort: &Sort<'_>, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List milestones

API method documentation

Source

pub fn issues_create_milestone<Content>( &self, owner: &str, repo: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Source

pub fn issues_get_milestone( &self, owner: &str, repo: &str, milestone_number: i64, ) -> Result<Response, ApiError>

Get a milestone

API method documentation

Source

pub fn issues_delete_milestone( &self, owner: &str, repo: &str, milestone_number: i64, ) -> Result<Response, ApiError>

Delete a milestone

API method documentation

Source

pub fn issues_update_milestone<Content>( &self, owner: &str, repo: &str, milestone_number: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Source

pub fn issues_list_labels_for_milestone( &self, owner: &str, repo: &str, milestone_number: i64, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List labels for issues in a milestone

API method documentation

Source

pub fn activity_list_repo_notifications_for_authenticated_user( &self, owner: &str, repo: &str, all: Option<bool>, participating: Option<bool>, since: Option<&str>, before: Option<&str>, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List repository notifications for the authenticated user

List all notifications for the current user.

API method documentation

Source

pub fn activity_mark_repo_notifications_as_read<Content>( &self, owner: &str, repo: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Mark repository notifications as read

Marks all notifications in a repository as “read” removes them from the default view on GitHub. If the number of notifications is too large to complete in one request, you will receive a 202 Accepted status and GitHub will run an asynchronous process to mark notifications as “read.” To check whether any “unread” notifications remain, you can use the List repository notifications for the authenticated user endpoint and pass the query parameter all=false.

API method documentation

§Content
Source

pub fn repos_get_pages( &self, owner: &str, repo: &str, ) -> Result<Response, ApiError>

Get a GitHub Pages site

API method documentation

Source

pub fn repos_update_information_about_pages_site<Content>( &self, owner: &str, repo: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Update information about a GitHub Pages site

Updates information for a GitHub Pages site. For more information, see “About GitHub Pages.

API method documentation

§Content
Source

pub fn repos_create_pages_site<Content>( &self, owner: &str, repo: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Create a GitHub Pages site

Configures a GitHub Pages site. For more information, see “About GitHub Pages.”

API method documentation

§Content
Source

pub fn repos_delete_pages_site( &self, owner: &str, repo: &str, ) -> Result<Response, ApiError>

Delete a GitHub Pages site

API method documentation

Source

pub fn repos_list_pages_builds( &self, owner: &str, repo: &str, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List GitHub Pages builds

API method documentation

Source

pub fn repos_request_pages_build( &self, owner: &str, repo: &str, ) -> Result<Response, ApiError>

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.

API method documentation

Source

pub fn repos_get_latest_pages_build( &self, owner: &str, repo: &str, ) -> Result<Response, ApiError>

Get latest Pages build

API method documentation

Source

pub fn repos_get_pages_build( &self, owner: &str, repo: &str, build_id: i64, ) -> Result<Response, ApiError>

Get GitHub Pages build

API method documentation

Source

pub fn repos_get_pages_health_check( &self, owner: &str, repo: &str, ) -> Result<Response, ApiError>

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.

Users must have admin or owner permissions. GitHub Apps must have the pages:write and administration:write permission to use this endpoint.

API method documentation

Source

pub fn projects_list_for_repo( &self, owner: &str, repo: &str, state: Option<&str>, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List repository projects

Lists the projects in a repository. Returns a 404 Not Found status if projects are disabled in the repository. If you do not have sufficient privileges to perform this action, a 401 Unauthorized or 410 Gone status is returned.

API method documentation

Source

pub fn projects_create_for_repo<Content>( &self, owner: &str, repo: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Create a repository project

Creates a repository project board. Returns a 404 Not Found status if projects are disabled in the repository. If you do not have sufficient privileges to perform this action, a 401 Unauthorized or 410 Gone status is returned.

API method documentation

§Content
Source

pub fn pulls_list( &self, owner: &str, repo: &str, state: Option<&str>, head: Option<&str>, base: Option<&str>, sort: &Sort<'_>, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List pull requests

Draft pull requests are available in public repositories with GitHub Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing plans, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see GitHub’s products in the GitHub Help documentation.

API method documentation

Source

pub fn pulls_create<Content>( &self, owner: &str, repo: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Create a pull request

Draft pull requests are available in public repositories with GitHub Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing plans, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see GitHub’s products in the GitHub Help documentation.

To open or update a pull request in a public repository, you must have write access to the head or the source branch. For organization-owned repositories, you must be a member of the organization that owns the repository to open or update a pull request.

You can create a new pull request.

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.

API method documentation

§Content
Source

pub fn pulls_list_review_comments_for_repo( &self, owner: &str, repo: &str, sort: &Sort<'_>, since: Option<&str>, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List review comments in a repository

Lists review comments for all pull requests in a repository. By default, review comments are in ascending order by ID.

API method documentation

Source

pub fn pulls_get_review_comment( &self, owner: &str, repo: &str, comment_id: i64, ) -> Result<Response, ApiError>

Get a review comment for a pull request

Provides details for a review comment.

API method documentation

Source

pub fn pulls_delete_review_comment( &self, owner: &str, repo: &str, comment_id: i64, ) -> Result<Response, ApiError>

Delete a review comment for a pull request

Deletes a review comment.

API method documentation

Source

pub fn pulls_update_review_comment<Content>( &self, owner: &str, repo: &str, comment_id: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Update a review comment for a pull request

Enables you to edit a review comment.

API method documentation

§Content
Source

pub fn reactions_list_for_pull_request_review_comment( &self, owner: &str, repo: &str, comment_id: i64, content: Option<&str>, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List reactions for a pull request review comment

List the reactions to a pull request review comment.

API method documentation

Source

pub fn reactions_create_for_pull_request_review_comment<Content>( &self, owner: &str, repo: &str, comment_id: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Create reaction for a pull request review comment

Create a reaction to a pull request review comment. A response with an HTTP 200 status means that you already added the reaction type to this pull request review comment.

API method documentation

§Content
Source

pub fn reactions_delete_for_pull_request_comment( &self, owner: &str, repo: &str, comment_id: i64, reaction_id: i64, ) -> Result<Response, ApiError>

Delete a pull request comment reaction

Note: You can also specify a repository by repository_id using the route DELETE /repositories/:repository_id/pulls/comments/:comment_id/reactions/:reaction_id.

Delete a reaction to a pull request review comment.

API method documentation

Source

pub fn pulls_get( &self, owner: &str, repo: &str, pull_number: i64, ) -> Result<Response, ApiError>

Get a pull request

Draft pull requests are available in public repositories with GitHub Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing plans, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see GitHub’s products in the GitHub Help documentation.

Lists details of a pull request by providing its number.

When you get, create, or edit a pull request, GitHub creates a merge commit to test whether the pull request can be automatically merged into the base branch. This test commit is not added to the base branch or the head branch. You can review the status of the test commit using the mergeable key. For more information, see “Checking mergeability of pull requests”.

The value of the mergeable attribute can be true, false, or null. If the value is null, then GitHub has started a background job to compute the mergeability. After giving the job time to complete, resubmit the request. When the job finishes, you will see a non-null value for the mergeable attribute in the response. If mergeable is true, then merge_commit_sha will be the SHA of the test merge commit.

The value of the merge_commit_sha attribute changes depending on the state of the pull request. Before merging a pull request, the merge_commit_sha attribute holds the SHA of the test merge commit. After merging a pull request, the merge_commit_sha attribute changes depending on how you merged the pull request:

  • If merged as a merge commit, merge_commit_sha represents the SHA of the merge commit.
  • If merged via a squash, merge_commit_sha represents the SHA of the squashed commit on the base branch.
  • If rebased, merge_commit_sha represents the commit that the base branch was updated to.

Pass the appropriate media type to fetch diff and patch formats.

API method documentation

Source

pub fn pulls_update<Content>( &self, owner: &str, repo: &str, pull_number: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Update a pull request

Draft pull requests are available in public repositories with GitHub Free and GitHub Free for organizations, GitHub Pro, and legacy per-repository billing plans, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see GitHub’s products in the GitHub Help documentation.

To open or update a pull request in a public repository, you must have write access to the head or the source branch. For organization-owned repositories, you must be a member of the organization that owns the repository to open or update a pull request.

API method documentation

§Content
Source

pub fn codespaces_create_with_pr_for_authenticated_user<Content>( &self, owner: &str, repo: &str, pull_number: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Create a codespace from a pull request

Creates a codespace owned by the authenticated user for the specified pull request.

You must authenticate using an access token with the codespace scope to use this endpoint.

GitHub Apps must have write access to the codespaces repository permission to use this endpoint.

API method documentation

§Content
Source

pub fn pulls_list_review_comments( &self, owner: &str, repo: &str, pull_number: i64, sort: &Sort<'_>, since: Option<&str>, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List review comments on a pull request

Lists all review comments for a pull request. By default, review comments are in ascending order by ID.

API method documentation

Source

pub fn pulls_create_review_comment<Content>( &self, owner: &str, repo: &str, pull_number: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Create a review comment for a pull request

Creates a review comment in the pull request diff. To add a regular comment to a pull request timeline, see “Create an issue comment.” We recommend creating a review comment using line, side, and optionally start_line and start_side if your comment applies to more than one line in the pull request diff.

The position parameter is deprecated. If you use position, the line, side, start_line, and start_side parameters are not required.

Note: The position value equals the number of lines down from the first “@@” hunk header in the file you want to add a comment. The line just below the “@@” line is position 1, the next line is position 2, and so on. The position in the diff continues to increase through lines of whitespace and additional hunks until the beginning of a new file.

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.

API method documentation

§Content
Source

pub fn pulls_create_reply_for_review_comment<Content>( &self, owner: &str, repo: &str, pull_number: i64, comment_id: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Create a reply for a review comment

Creates a reply to a review comment for a pull request. For the comment_id, provide the ID of the review comment you are replying to. This must be the ID of a top-level review comment, not a reply to that comment. Replies to replies are not supported.

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.

API method documentation

§Content
Source

pub fn pulls_list_commits( &self, owner: &str, repo: &str, pull_number: i64, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List commits on a pull request

Lists a maximum of 250 commits for a pull request. To receive a complete commit list for pull requests with more than 250 commits, use the List commits endpoint.

API method documentation

Source

pub fn pulls_list_files( &self, owner: &str, repo: &str, pull_number: i64, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List pull requests files

Note: Responses include a maximum of 3000 files. The paginated response returns 30 files per page by default.

API method documentation

Source

pub fn pulls_check_if_merged( &self, owner: &str, repo: &str, pull_number: i64, ) -> Result<Response, ApiError>

Check if a pull request has been merged

API method documentation

Source

pub fn pulls_merge<Content>( &self, owner: &str, repo: &str, pull_number: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Merge a pull request

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.

API method documentation

§Content
Source

pub fn pulls_list_requested_reviewers( &self, owner: &str, repo: &str, pull_number: i64, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List requested reviewers for a pull request

API method documentation

Source

pub fn pulls_request_reviewers<Content>( &self, owner: &str, repo: &str, pull_number: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Request reviewers for a pull request

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.

API method documentation

§Content
Source

pub fn pulls_remove_requested_reviewers<Content>( &self, owner: &str, repo: &str, pull_number: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Source

pub fn pulls_list_reviews( &self, owner: &str, repo: &str, pull_number: i64, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List reviews for a pull request

The list of reviews returns in chronological order.

API method documentation

Source

pub fn pulls_create_review<Content>( &self, owner: &str, repo: &str, pull_number: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Create a review for a pull request

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.

Pull request reviews created in the PENDING state do not include the submitted_at property in the response.

Note: To comment on a specific line in a file, you need to first determine the position of that line in the diff. The GitHub REST API v3 offers the application/vnd.github.v3.diff media type. To see a pull request diff, add this media type to the Accept header of a call to the single pull request endpoint.

The position value equals the number of lines down from the first “@@” hunk header in the file you want to add a comment. The line just below the “@@” line is position 1, the next line is position 2, and so on. The position in the diff continues to increase through lines of whitespace and additional hunks until the beginning of a new file.

API method documentation

§Content
Source

pub fn pulls_get_review( &self, owner: &str, repo: &str, pull_number: i64, review_id: i64, ) -> Result<Response, ApiError>

Get a review for a pull request

API method documentation

Source

pub fn pulls_update_review<Content>( &self, owner: &str, repo: &str, pull_number: i64, review_id: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Update a review for a pull request

Update the review summary comment with new text.

API method documentation

§Content
Source

pub fn pulls_delete_pending_review( &self, owner: &str, repo: &str, pull_number: i64, review_id: i64, ) -> Result<Response, ApiError>

Delete a pending review for a pull request

API method documentation

Source

pub fn pulls_list_comments_for_review( &self, owner: &str, repo: &str, pull_number: i64, review_id: i64, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List comments for a pull request review

List comments for a specific pull request review.

API method documentation

Source

pub fn pulls_dismiss_review<Content>( &self, owner: &str, repo: &str, pull_number: i64, review_id: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Dismiss a review for a pull request

Note: To dismiss a pull request review on a protected branch, you must be a repository administrator or be included in the list of people or teams who can dismiss pull request reviews.

API method documentation

§Content
Source

pub fn pulls_submit_review<Content>( &self, owner: &str, repo: &str, pull_number: i64, review_id: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Source

pub fn pulls_update_branch<Content>( &self, owner: &str, repo: &str, pull_number: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Update a pull request branch

Updates the pull request branch with the latest upstream changes by merging HEAD from the base branch into the pull request branch.

API method documentation

§Content
Source

pub fn repos_get_readme( &self, owner: &str, repo: &str, ref: Option<&str>, ) -> Result<Response, ApiError>

Get a repository README

Gets the preferred README for a repository.

READMEs support custom media types for retrieving the raw content or rendered HTML.

API method documentation

Source

pub fn repos_get_readme_in_directory( &self, owner: &str, repo: &str, dir: &str, ref: Option<&str>, ) -> Result<Response, ApiError>

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.

API method documentation

Source

pub fn repos_list_releases( &self, owner: &str, repo: &str, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

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.

API method documentation

Source

pub fn repos_create_release<Content>( &self, owner: &str, repo: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

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.

API method documentation

§Content
Source

pub fn repos_get_release_asset( &self, owner: &str, repo: &str, asset_id: i64, ) -> Result<Response, ApiError>

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.

API method documentation

Source

pub fn repos_delete_release_asset( &self, owner: &str, repo: &str, asset_id: i64, ) -> Result<Response, ApiError>

Delete a release asset

API method documentation

Source

pub fn repos_update_release_asset<Content>( &self, owner: &str, repo: &str, asset_id: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Update a release asset

Users with push access to the repository can edit a release asset.

API method documentation

§Content
Source

pub fn repos_generate_release_notes<Content>( &self, owner: &str, repo: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

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.

API method documentation

§Content
Source

pub fn repos_get_latest_release( &self, owner: &str, repo: &str, ) -> Result<Response, ApiError>

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.

API method documentation

Source

pub fn repos_get_release_by_tag( &self, owner: &str, repo: &str, tag: &str, ) -> Result<Response, ApiError>

Get a release by tag name

Get a published release with the specified tag.

API method documentation

Source

pub fn repos_get_release( &self, owner: &str, repo: &str, release_id: i64, ) -> Result<Response, ApiError>

Get a release

Note: This returns an upload_url key corresponding to the endpoint for uploading release assets. This key is a hypermedia resource.

API method documentation

Source

pub fn repos_delete_release( &self, owner: &str, repo: &str, release_id: i64, ) -> Result<Response, ApiError>

Delete a release

Users with push access to the repository can delete a release.

API method documentation

Source

pub fn repos_update_release<Content>( &self, owner: &str, repo: &str, release_id: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Update a release

Users with push access to the repository can edit a release.

API method documentation

§Content
Source

pub fn repos_list_release_assets( &self, owner: &str, repo: &str, release_id: i64, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List release assets

API method documentation

Source

pub fn repos_upload_release_asset<Content>( &self, owner: &str, repo: &str, release_id: i64, name: &str, label: Option<&str>, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

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 assets for a release” endpoint lists the renamed filenames. For more information and help, contact GitHub Support.
  • 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.

API method documentation

Source

pub fn reactions_list_for_release( &self, owner: &str, repo: &str, release_id: i64, content: Option<&str>, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List reactions for a release

List the reactions to a release.

API method documentation

Source

pub fn reactions_create_for_release<Content>( &self, owner: &str, repo: &str, release_id: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Create reaction for a release

Create a reaction to a release. A response with a Status: 200 OK means that you already added the reaction type to this release.

API method documentation

§Content
Source

pub fn reactions_delete_for_release( &self, owner: &str, repo: &str, release_id: i64, reaction_id: i64, ) -> Result<Response, ApiError>

Delete a release reaction

Note: You can also specify a repository by repository_id using the route DELETE delete /repositories/:repository_id/releases/:release_id/reactions/:reaction_id.

Delete a reaction to a release.

API method documentation

Source

pub fn secret_scanning_list_alerts_for_repo( &self, owner: &str, repo: &str, state: Option<&str>, secret_type: Option<&str>, resolution: Option<&str>, page: Option<i64>, per_page: Option<i64>, ) -> Result<Response, ApiError>

List secret scanning alerts for a repository

Lists secret scanning alerts for an eligible repository, from newest to oldest. To use this endpoint, you must be an administrator for the repository or for the organization that owns the repository, and you must use a personal access token with the repo scope or security_events scope. For public repositories, you may instead use the public_repo scope.

GitHub Apps must have the secret_scanning_alerts read permission to use this endpoint.

API method documentation

Source

pub fn secret_scanning_get_alert( &self, owner: &str, repo: &str, alert_number: i64, ) -> Result<Response, ApiError>

Get a secret scanning alert

Gets a single secret scanning alert detected in an eligible repository. To use this endpoint, you must be an administrator for the repository or for the organization that owns the repository, and you must use a personal access token with the repo scope or security_events scope. For public repositories, you may instead use the public_repo scope.

GitHub Apps must have the secret_scanning_alerts read permission to use this endpoint.

API method documentation

Source

pub fn secret_scanning_update_alert<Content>( &self, owner: &str, repo: &str, alert_number: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Update a secret scanning alert

Updates the status of a secret scanning alert in an eligible repository. To use this endpoint, you must be an administrator for the repository or for the organization that owns the repository, and you must use a personal access token with the repo scope or security_events scope. For public repositories, you may instead use the public_repo scope.

GitHub Apps must have the secret_scanning_alerts write permission to use this endpoint.

API method documentation

§Content
Source

pub fn secret_scanning_list_locations_for_alert( &self, owner: &str, repo: &str, alert_number: i64, page: Option<i64>, per_page: Option<i64>, ) -> Result<Response, ApiError>

List locations for a secret scanning alert

Lists all locations for a given secret scanning alert for an eligible repository. To use this endpoint, you must be an administrator for the repository or for the organization that owns the repository, and you must use a personal access token with the repo scope or security_events scope. For public repositories, you may instead use the public_repo scope.

GitHub Apps must have the secret_scanning_alerts read permission to use this endpoint.

API method documentation

Source

pub fn activity_list_stargazers_for_repo( &self, owner: &str, repo: &str, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List stargazers

Lists the people that have starred the repository.

You can also find out when stars were created by passing the following custom media type via the Accept header:

API method documentation

Source

pub fn repos_get_code_frequency_stats( &self, owner: &str, repo: &str, ) -> Result<Response, ApiError>

Get the weekly commit activity

Returns a weekly aggregate of the number of additions and deletions pushed to a repository.

API method documentation

Source

pub fn repos_get_commit_activity_stats( &self, owner: &str, repo: &str, ) -> Result<Response, ApiError>

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.

API method documentation

Source

pub fn repos_get_contributors_stats( &self, owner: &str, repo: &str, ) -> Result<Response, ApiError>

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

API method documentation

Source

pub fn repos_get_participation_stats( &self, owner: &str, repo: &str, ) -> Result<Response, ApiError>

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.

API method documentation

Source

pub fn repos_get_punch_card_stats( &self, owner: &str, repo: &str, ) -> Result<Response, ApiError>

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.

API method documentation

Source

pub fn repos_create_commit_status<Content>( &self, owner: &str, repo: &str, sha: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

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.

API method documentation

§Content
Source

pub fn activity_list_watchers_for_repo( &self, owner: &str, repo: &str, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List watchers

Lists the people watching the specified repository.

API method documentation

Source

pub fn activity_get_repo_subscription( &self, owner: &str, repo: &str, ) -> Result<Response, ApiError>

Get a repository subscription

API method documentation

Source

pub fn activity_set_repo_subscription<Content>( &self, owner: &str, repo: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Set a repository subscription

If you would like to watch a repository, set subscribed to true. If you would like to ignore notifications made within a repository, set ignored to true. If you would like to stop watching a repository, delete the repository’s subscription completely.

API method documentation

§Content
Source

pub fn activity_delete_repo_subscription( &self, owner: &str, repo: &str, ) -> Result<Response, ApiError>

Delete a repository subscription

This endpoint should only be used to stop watching a repository. To control whether or not you wish to receive notifications from a repository, set the repository’s subscription manually.

API method documentation

Source

pub fn repos_list_tags( &self, owner: &str, repo: &str, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List repository tags

API method documentation

Source

pub fn repos_list_tag_protection( &self, owner: &str, repo: &str, ) -> Result<Response, ApiError>

List tag protection states for a repository

This returns the tag protection states of a repository.

This information is only available to repository administrators.

API method documentation

Source

pub fn repos_create_tag_protection<Content>( &self, owner: &str, repo: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

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.

API method documentation

§Content
Source

pub fn repos_delete_tag_protection( &self, owner: &str, repo: &str, tag_protection_id: i64, ) -> Result<Response, ApiError>

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.

API method documentation

Source

pub fn repos_download_tarball_archive( &self, owner: &str, repo: &str, ref: &str, ) -> Result<Response, ApiError>

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 master) 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.

API method documentation

Source

pub fn repos_list_teams( &self, owner: &str, repo: &str, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List repository teams

API method documentation

Source

pub fn repos_get_all_topics( &self, owner: &str, repo: &str, page: Option<i64>, per_page: Option<i64>, ) -> Result<Response, ApiError>

Get all repository topics

API method documentation

Source

pub fn repos_replace_all_topics<Content>( &self, owner: &str, repo: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Source

pub fn repos_get_clones( &self, owner: &str, repo: &str, per: Option<&str>, ) -> Result<Response, ApiError>

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.

API method documentation

Source

pub fn repos_get_top_paths( &self, owner: &str, repo: &str, ) -> Result<Response, ApiError>

Get top referral paths

Get the top 10 popular contents over the last 14 days.

API method documentation

Source

pub fn repos_get_top_referrers( &self, owner: &str, repo: &str, ) -> Result<Response, ApiError>

Get top referral sources

Get the top 10 referrers over the last 14 days.

API method documentation

Source

pub fn repos_get_views( &self, owner: &str, repo: &str, per: Option<&str>, ) -> Result<Response, ApiError>

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.

API method documentation

Source

pub fn repos_transfer<Content>( &self, owner: &str, repo: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

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.

API method documentation

§Content
Source

pub fn repos_check_vulnerability_alerts( &self, owner: &str, repo: &str, ) -> Result<Response, ApiError>

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 access to the repository. For more information, see “About security alerts for vulnerable dependencies”.

API method documentation

Source

pub fn repos_enable_vulnerability_alerts( &self, owner: &str, repo: &str, ) -> Result<Response, ApiError>

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”.

API method documentation

Source

pub fn repos_disable_vulnerability_alerts( &self, owner: &str, repo: &str, ) -> Result<Response, ApiError>

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”.

API method documentation

Source

pub fn repos_download_zipball_archive( &self, owner: &str, repo: &str, ref: &str, ) -> Result<Response, ApiError>

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 master) 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.

API method documentation

Source

pub fn repos_create_using_template<Content>( &self, template_owner: &str, template_repo: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

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. 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 or repo scope to create a public repository. Note: For GitHub AE, use repo scope to create an internal repository.
  • repo scope to create a private repository

API method documentation

§Content
Source

pub fn repos_list_public( &self, since: Option<i64>, ) -> Result<Response, ApiError>

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.

API method documentation

Source

pub fn actions_list_environment_secrets( &self, repository_id: i64, environment_name: &str, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List environment secrets

Lists all secrets available in an environment without revealing their encrypted values. You must authenticate using an access token with the repo scope to use this endpoint. GitHub Apps must have the secrets repository permission to use this endpoint.

API method documentation

Source

pub fn actions_get_environment_public_key( &self, repository_id: i64, environment_name: &str, ) -> Result<Response, ApiError>

Get an environment public key

Get the public key for an environment, which you need to encrypt environment secrets. You need to encrypt a secret before you can create or update secrets. 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 secrets repository permission to use this endpoint.

API method documentation

Source

pub fn actions_get_environment_secret( &self, repository_id: i64, environment_name: &str, secret_name: &str, ) -> Result<Response, ApiError>

Get an environment secret

Gets a single environment secret without revealing its encrypted value. You must authenticate using an access token with the repo scope to use this endpoint. GitHub Apps must have the secrets repository permission to use this endpoint.

API method documentation

Source

pub fn actions_create_or_update_environment_secret<Content>( &self, repository_id: i64, environment_name: &str, secret_name: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Create or update an environment secret

Creates or updates an environment secret with an encrypted value. Encrypt your secret using LibSodium. You must authenticate using an access token with the repo scope to use this endpoint. GitHub Apps must have the secrets repository permission to use this endpoint.

§Example encrypting a secret using Node.js

Encrypt your secret using the tweetsodium library.

const sodium = require('tweetsodium');
 
const key = "base64-encoded-public-key";
const value = "plain-text-secret";
 
// Convert the message and key to Uint8Array's (Buffer implements that interface)
const messageBytes = Buffer.from(value);
const keyBytes = Buffer.from(key, 'base64');
 
// Encrypt using LibSodium.
const encryptedBytes = sodium.seal(messageBytes, keyBytes);
 
// Base64 the encrypted secret
const encrypted = Buffer.from(encryptedBytes).toString('base64');
 
console.log(encrypted);
§Example encrypting a secret using Python

Encrypt your secret using pynacl with Python 3.

from base64 import b64encode
from nacl import encoding, public
 
def encrypt(public_key: str, secret_value: str) -> str:
  """Encrypt a Unicode string using the public key."""
  public_key = public.PublicKey(public_key.encode("utf-8"), encoding.Base64Encoder())
  sealed_box = public.SealedBox(public_key)
  encrypted = sealed_box.encrypt(secret_value.encode("utf-8"))
  return b64encode(encrypted).decode("utf-8")
§Example encrypting a secret using C#

Encrypt your secret using the Sodium.Core package.

var secretValue = System.Text.Encoding.UTF8.GetBytes("mySecret");
var publicKey = Convert.FromBase64String("2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvvcCU=");
 
var sealedPublicKeyBox = Sodium.SealedPublicKeyBox.Create(secretValue, publicKey);
 
Console.WriteLine(Convert.ToBase64String(sealedPublicKeyBox));
§Example encrypting a secret using Ruby

Encrypt your secret using the rbnacl gem.

require "rbnacl"
require "base64"
 
key = Base64.decode64("+ZYvJDZMHUfBkJdyq5Zm9SKqeuBQ4sj+6sfjlH4CgG0=")
public_key = RbNaCl::PublicKey.new(key)
 
box = RbNaCl::Boxes::Sealed.from_public_key(public_key)
encrypted_secret = box.encrypt("my_secret")
 
# Print the base64 encoded secret
puts Base64.strict_encode64(encrypted_secret)

API method documentation

§Content
Source

pub fn actions_delete_environment_secret( &self, repository_id: i64, environment_name: &str, secret_name: &str, ) -> Result<Response, ApiError>

Delete an environment secret

Deletes a secret in an environment using the secret name. You must authenticate using an access token with the repo scope to use this endpoint. GitHub Apps must have the secrets repository permission to use this endpoint.

API method documentation

Source

pub fn enterprise_admin_list_provisioned_groups_enterprise( &self, enterprise: &str, start_index: Option<i64>, count: Option<i64>, filter: Option<&str>, excluded_attributes: Option<&str>, ) -> Result<Response, ApiError>

List provisioned SCIM groups for an enterprise

Note: The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change.

API method documentation

Source

pub fn enterprise_admin_provision_and_invite_enterprise_group<Content>( &self, enterprise: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Provision a SCIM enterprise group and invite users

Note: The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change.

Provision an enterprise group, and invite users to the group. This sends invitation emails to the email address of the invited users to join the GitHub organization that the SCIM group corresponds to.

API method documentation

§Content
Source

pub fn enterprise_admin_get_provisioning_information_for_enterprise_group( &self, enterprise: &str, scim_group_id: &str, excluded_attributes: Option<&str>, ) -> Result<Response, ApiError>

Get SCIM provisioning information for an enterprise group

Note: The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change.

API method documentation

Source

pub fn enterprise_admin_set_information_for_provisioned_enterprise_group<Content>( &self, enterprise: &str, scim_group_id: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Set SCIM information for a provisioned enterprise group

Note: The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change.

Replaces an existing provisioned group’s information. You must provide all the information required for the group as if you were provisioning it for the first time. Any existing group information that you don’t provide will be removed, including group membership. If you want to only update a specific attribute, use the Update an attribute for a SCIM enterprise group endpoint instead.

API method documentation

§Content
Source

pub fn enterprise_admin_delete_scim_group_from_enterprise( &self, enterprise: &str, scim_group_id: &str, ) -> Result<Response, ApiError>

Delete a SCIM group from an enterprise

Note: The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change.

API method documentation

Source

pub fn enterprise_admin_update_attribute_for_enterprise_group<Content>( &self, enterprise: &str, scim_group_id: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Update an attribute for a SCIM enterprise group

Note: The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change.

Allows you to change a provisioned group’s individual attributes. To change a group’s values, you must provide a specific Operations JSON format that contains at least one of the add, remove, or replace operations. For examples and more information on the SCIM operations format, see the SCIM specification.

API method documentation

§Content
Source

pub fn enterprise_admin_list_provisioned_identities_enterprise( &self, enterprise: &str, start_index: Option<i64>, count: Option<i64>, filter: Option<&str>, ) -> Result<Response, ApiError>

List SCIM provisioned identities for an enterprise

Note: The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change.

Retrieves a paginated list of all provisioned enterprise members, including pending invitations.

When a user with a SAML-provisioned external identity leaves (or is removed from) an enterprise, the account’s metadata is immediately removed. However, the returned list of user accounts might not always match the organization or enterprise member list you see on GitHub. This can happen in certain cases where an external identity associated with an organization will not match an organization member:

  • When a user with a SCIM-provisioned external identity is removed from an enterprise, the account’s metadata is preserved to allow the user to re-join the organization in the future.
  • When inviting a user to join an organization, you can expect to see their external identity in the results before they accept the invitation, or if the invitation is cancelled (or never accepted).
  • When a user is invited over SCIM, an external identity is created that matches with the invitee’s email address. However, this identity is only linked to a user account when the user accepts the invitation by going through SAML SSO.

The returned list of external identities can include an entry for a null user. These are unlinked SAML identities that are created when a user goes through the following Single Sign-On (SSO) process but does not sign in to their GitHub account after completing SSO:

  1. The user is granted access by the IdP and is not a member of the GitHub enterprise.

  2. The user attempts to access the GitHub enterprise and initiates the SAML SSO process, and is not currently signed in to their GitHub account.

  3. After successfully authenticating with the SAML SSO IdP, the null external identity entry is created and the user is prompted to sign in to their GitHub account:

    • If the user signs in, their GitHub account is linked to this entry.
    • If the user does not sign in (or does not create a new account when prompted), they are not added to the GitHub enterprise, and the external identity null entry remains in place.

API method documentation

Source

pub fn enterprise_admin_provision_and_invite_enterprise_user<Content>( &self, enterprise: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Provision and invite a SCIM enterprise user

Note: The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change.

Provision enterprise membership for a user, and send organization invitation emails to the email address.

You can optionally include the groups a user will be invited to join. If you do not provide a list of groups, the user is provisioned for the enterprise, but no organization invitation emails will be sent.

API method documentation

§Content
Source

pub fn enterprise_admin_get_provisioning_information_for_enterprise_user( &self, enterprise: &str, scim_user_id: &str, ) -> Result<Response, ApiError>

Get SCIM provisioning information for an enterprise user

Note: The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change.

API method documentation

Source

pub fn enterprise_admin_set_information_for_provisioned_enterprise_user<Content>( &self, enterprise: &str, scim_user_id: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Set SCIM information for a provisioned enterprise user

Note: The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change.

Replaces an existing provisioned user’s information. You must provide all the information required for the user as if you were provisioning them for the first time. Any existing user information that you don’t provide will be removed. If you want to only update a specific attribute, use the Update an attribute for a SCIM user endpoint instead.

You must at least provide the required values for the user: userName, name, and emails.

Warning: Setting active: false removes the user from the enterprise, deletes the external identity, and deletes the associated {scim_user_id}.

API method documentation

§Content
Source

pub fn enterprise_admin_delete_user_from_enterprise( &self, enterprise: &str, scim_user_id: &str, ) -> Result<Response, ApiError>

Delete a SCIM user from an enterprise

Note: The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change.

API method documentation

Source

pub fn enterprise_admin_update_attribute_for_enterprise_user<Content>( &self, enterprise: &str, scim_user_id: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Update an attribute for a SCIM enterprise user

Note: The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change.

Allows you to change a provisioned user’s individual attributes. To change a user’s values, you must provide a specific Operations JSON format that contains at least one of the add, remove, or replace operations. For examples and more information on the SCIM operations format, see the SCIM specification.

Note: Complicated SCIM path selectors that include filters are not supported. For example, a path selector defined as "path": "emails[type eq \"work\"]" will not work.

Warning: If you set active:false using the replace operation (as shown in the JSON example below), it removes the user from the enterprise, deletes the external identity, and deletes the associated :scim_user_id.

{
  "Operations":[{
    "op":"replace",
    "value":{
      "active":false
    }
  }]
}

API method documentation

§Content
Source

pub fn scim_list_provisioned_identities( &self, org: &str, start_index: Option<i64>, count: Option<i64>, filter: Option<&str>, ) -> Result<Response, ApiError>

List SCIM provisioned identities

Retrieves a paginated list of all provisioned organization members, including pending invitations. If you provide the filter parameter, the resources for all matching provisions members are returned.

When a user with a SAML-provisioned external identity leaves (or is removed from) an organization, the account’s metadata is immediately removed. However, the returned list of user accounts might not always match the organization or enterprise member list you see on GitHub. This can happen in certain cases where an external identity associated with an organization will not match an organization member:

  • When a user with a SCIM-provisioned external identity is removed from an organization, the account’s metadata is preserved to allow the user to re-join the organization in the future.
  • When inviting a user to join an organization, you can expect to see their external identity in the results before they accept the invitation, or if the invitation is cancelled (or never accepted).
  • When a user is invited over SCIM, an external identity is created that matches with the invitee’s email address. However, this identity is only linked to a user account when the user accepts the invitation by going through SAML SSO.

The returned list of external identities can include an entry for a null user. These are unlinked SAML identities that are created when a user goes through the following Single Sign-On (SSO) process but does not sign in to their GitHub account after completing SSO:

  1. The user is granted access by the IdP and is not a member of the GitHub organization.

  2. The user attempts to access the GitHub organization and initiates the SAML SSO process, and is not currently signed in to their GitHub account.

  3. After successfully authenticating with the SAML SSO IdP, the null external identity entry is created and the user is prompted to sign in to their GitHub account:

    • If the user signs in, their GitHub account is linked to this entry.
    • If the user does not sign in (or does not create a new account when prompted), they are not added to the GitHub organization, and the external identity null entry remains in place.

API method documentation

Source

pub fn scim_provision_and_invite_user<Content>( &self, org: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Provision and invite a SCIM user

Provision organization membership for a user, and send an activation email to the email address.

API method documentation

§Content
Source

pub fn scim_get_provisioning_information_for_user( &self, org: &str, scim_user_id: &str, ) -> Result<Response, ApiError>

Get SCIM provisioning information for a user

API method documentation

Source

pub fn scim_set_information_for_provisioned_user<Content>( &self, org: &str, scim_user_id: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Update a provisioned organization membership

Replaces an existing provisioned user’s information. You must provide all the information required for the user as if you were provisioning them for the first time. Any existing user information that you don’t provide will be removed. If you want to only update a specific attribute, use the Update an attribute for a SCIM user endpoint instead.

You must at least provide the required values for the user: userName, name, and emails.

Warning: Setting active: false removes the user from the organization, deletes the external identity, and deletes the associated {scim_user_id}.

API method documentation

§Content
Source

pub fn scim_delete_user_from_org( &self, org: &str, scim_user_id: &str, ) -> Result<Response, ApiError>

Delete a SCIM user from an organization

API method documentation

Source

pub fn scim_update_attribute_for_user<Content>( &self, org: &str, scim_user_id: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Update an attribute for a SCIM user

Allows you to change a provisioned user’s individual attributes. To change a user’s values, you must provide a specific Operations JSON format that contains at least one of the add, remove, or replace operations. For examples and more information on the SCIM operations format, see the SCIM specification.

Note: Complicated SCIM path selectors that include filters are not supported. For example, a path selector defined as "path": "emails[type eq \"work\"]" will not work.

Warning: If you set active:false using the replace operation (as shown in the JSON example below), it removes the user from the organization, deletes the external identity, and deletes the associated :scim_user_id.

{
  "Operations":[{
    "op":"replace",
    "value":{
      "active":false
    }
  }]
}

API method documentation

§Content
Source

pub fn search_code( &self, q: &str, sort: Option<&str>, order: Option<&str>, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

Search code

Searches for query terms inside of a file. This method returns up to 100 results per page.

When searching for code, you can get text match metadata for the file content and file path fields when you pass the text-match media type. For more details about how to receive highlighted search results, see Text match metadata.

For example, if you want to find the definition of the addClass function inside jQuery repository, your query would look something like this:

q=addClass+in:file+language:js+repo:jquery/jquery

This query searches for the keyword addClass within a file’s contents. The query limits the search to files where the language is JavaScript in the jquery/jquery repository.

Due to the complexity of searching code, there are a few restrictions on how searches are performed:

  • Only the default branch is considered. In most cases, this will be the master branch.
  • Only files smaller than 384 KB are searchable.
  • You must always include at least one search term when searching source code. For example, searching for language:go is not valid, while amazing language:go is.

API method documentation

Source

pub fn search_commits( &self, q: &str, sort: Option<&str>, order: Option<&str>, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

Search commits

Find commits via various criteria on the default branch (usually master). This method returns up to 100 results per page.

When searching for commits, you can get text match metadata for the message field when you provide the text-match media type. For more details about how to receive highlighted search results, see Text match metadata.

For example, if you want to find commits related to CSS in the octocat/Spoon-Knife repository. Your query would look something like this:

q=repo:octocat/Spoon-Knife+css

API method documentation

Source

pub fn search_issues_and_pull_requests( &self, q: &str, sort: Option<&str>, order: Option<&str>, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

Search issues and pull requests

Find issues by state and keyword. This method returns up to 100 results per page.

When searching for issues, you can get text match metadata for the issue title, issue body, and issue comment body fields when you pass the text-match media type. For more details about how to receive highlighted search results, see Text match metadata.

For example, if you want to find the oldest unresolved Python bugs on Windows. Your query might look something like this.

q=windows+label:bug+language:python+state:open&sort=created&order=asc

This query searches for the keyword windows, within any open issue that is labeled as bug. The search runs across repositories whose primary language is Python. The results are sorted by creation date in ascending order, which means the oldest issues appear first in the search results.

Note: For user-to-server GitHub App requests, you can’t retrieve a combination of issues and pull requests in a single query. Requests that don’t include the is:issue or is:pull-request qualifier will receive an HTTP 422 Unprocessable Entity response. To get results for both issues and pull requests, you must send separate queries for issues and pull requests. For more information about the is qualifier, see “Searching only issues or pull requests.”

API method documentation

Source

pub fn search_labels( &self, repository_id: i64, q: &str, sort: Option<&str>, order: Option<&str>, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

Search labels

Find labels in a repository with names or descriptions that match search keywords. Returns up to 100 results per page.

When searching for labels, you can get text match metadata for the label name and description fields when you pass the text-match media type. For more details about how to receive highlighted search results, see Text match metadata.

For example, if you want to find labels in the linguist repository that match bug, defect, or enhancement. Your query might look like this:

q=bug+defect+enhancement&repository_id=64778136

The labels that best match the query appear first in the search results.

API method documentation

Source

pub fn search_repos( &self, q: &str, sort: Option<&str>, order: Option<&str>, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

Search repositories

Find repositories via various criteria. This method returns up to 100 results per page.

When searching for repositories, you can get text match metadata for the name and description fields when you pass the text-match media type. For more details about how to receive highlighted search results, see Text match metadata.

For example, if you want to search for popular Tetris repositories written in assembly code, your query might look like this:

q=tetris+language:assembly&sort=stars&order=desc

This query searches for repositories with the word tetris in the name, the description, or the README. The results are limited to repositories where the primary language is assembly. The results are sorted by stars in descending order, so that the most popular repositories appear first in the search results.

API method documentation

Source

pub fn search_topics( &self, q: &str, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

Search topics

Find topics via various criteria. Results are sorted by best match. This method returns up to 100 results per page. See “Searching topics” for a detailed list of qualifiers.

When searching for topics, you can get text match metadata for the topic’s short_description, description, name, or display_name field when you pass the text-match media type. For more details about how to receive highlighted search results, see Text match metadata.

For example, if you want to search for topics related to Ruby that are featured on https://github.com/topics your query might look like this:

q=ruby+is:featured

This query searches for topics with the keyword ruby and limits the results to find only topics that are featured. The topics that are the best match for the query appear first in the search results.

API method documentation

Source

pub fn search_users( &self, q: &str, sort: Option<&str>, order: Option<&str>, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

Search users

Find users via various criteria. This method returns up to 100 results per page.

When searching for users, you can get text match metadata for the issue login, email, and name fields when you pass the text-match media type. For more details about highlighting search results, see Text match metadata. For more details about how to receive highlighted search results, see Text match metadata.

For example, if you’re looking for a list of popular users, you might try this query:

q=tom+repos:%3E42+followers:%3E1000

This query searches for users with the name tom. The results are restricted to users with more than 42 repositories and over 1,000 followers.

API method documentation

Source

pub fn teams_get_legacy(&self, team_id: i64) -> Result<Response, ApiError>

Get a team (Legacy)

Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the Get a team by name endpoint.

API method documentation

Source

pub fn teams_delete_legacy(&self, team_id: i64) -> Result<Response, ApiError>

Delete a team (Legacy)

Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Delete a team endpoint.

To delete a team, the authenticated user must be an organization owner or team maintainer.

If you are an organization owner, deleting a parent team will delete all of its child teams as well.

API method documentation

Source

pub fn teams_update_legacy<Content>( &self, team_id: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Update a team (Legacy)

Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Update a team endpoint.

To edit a team, the authenticated user must either be an organization owner or a team maintainer.

Note: With nested teams, the privacy for parent teams cannot be secret.

API method documentation

§Content
Source

pub fn teams_list_discussions_legacy( &self, team_id: i64, direction: Option<&str>, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List discussions (Legacy)

Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new List discussions endpoint.

List all discussions on a team’s page. OAuth access tokens require the read:discussion scope.

API method documentation

Source

pub fn teams_create_discussion_legacy<Content>( &self, team_id: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Create a discussion (Legacy)

Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Create a discussion endpoint.

Creates a new discussion post on a team’s page. OAuth access tokens require the write:discussion scope.

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.

API method documentation

§Content
Source

pub fn teams_get_discussion_legacy( &self, team_id: i64, discussion_number: i64, ) -> Result<Response, ApiError>

Get a discussion (Legacy)

Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Get a discussion endpoint.

Get a specific discussion on a team’s page. OAuth access tokens require the read:discussion scope.

API method documentation

Source

pub fn teams_delete_discussion_legacy( &self, team_id: i64, discussion_number: i64, ) -> Result<Response, ApiError>

Delete a discussion (Legacy)

Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Delete a discussion endpoint.

Delete a discussion from a team’s page. OAuth access tokens require the write:discussion scope.

API method documentation

Source

pub fn teams_update_discussion_legacy<Content>( &self, team_id: i64, discussion_number: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Update a discussion (Legacy)

Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Update a discussion endpoint.

Edits the title and body text of a discussion post. Only the parameters you provide are updated. OAuth access tokens require the write:discussion scope.

API method documentation

§Content
Source

pub fn teams_list_discussion_comments_legacy( &self, team_id: i64, discussion_number: i64, direction: Option<&str>, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List discussion comments (Legacy)

Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new List discussion comments endpoint.

List all comments on a team discussion. OAuth access tokens require the read:discussion scope.

API method documentation

Source

pub fn teams_create_discussion_comment_legacy<Content>( &self, team_id: i64, discussion_number: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Create a discussion comment (Legacy)

Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Create a discussion comment endpoint.

Creates a new comment on a team discussion. OAuth access tokens require the write:discussion scope.

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.

API method documentation

§Content
Source

pub fn teams_get_discussion_comment_legacy( &self, team_id: i64, discussion_number: i64, comment_number: i64, ) -> Result<Response, ApiError>

Get a discussion comment (Legacy)

Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Get a discussion comment endpoint.

Get a specific comment on a team discussion. OAuth access tokens require the read:discussion scope.

API method documentation

Source

pub fn teams_delete_discussion_comment_legacy( &self, team_id: i64, discussion_number: i64, comment_number: i64, ) -> Result<Response, ApiError>

Delete a discussion comment (Legacy)

Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Delete a discussion comment endpoint.

Deletes a comment on a team discussion. OAuth access tokens require the write:discussion scope.

API method documentation

Source

pub fn teams_update_discussion_comment_legacy<Content>( &self, team_id: i64, discussion_number: i64, comment_number: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Update a discussion comment (Legacy)

Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Update a discussion comment endpoint.

Edits the body text of a discussion comment. OAuth access tokens require the write:discussion scope.

API method documentation

§Content
Source

pub fn reactions_list_for_team_discussion_comment_legacy( &self, team_id: i64, discussion_number: i64, comment_number: i64, content: Option<&str>, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List reactions for a team discussion comment (Legacy)

Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new List reactions for a team discussion comment endpoint.

List the reactions to a team discussion comment. OAuth access tokens require the read:discussion scope.

API method documentation

Source

pub fn reactions_create_for_team_discussion_comment_legacy<Content>( &self, team_id: i64, discussion_number: i64, comment_number: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Create reaction for a team discussion comment (Legacy)

Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new “Create reaction for a team discussion comment” endpoint.

Create a reaction to a team discussion comment. OAuth access tokens require the write:discussion scope. A response with an HTTP 200 status means that you already added the reaction type to this team discussion comment.

API method documentation

§Content
Source

pub fn reactions_list_for_team_discussion_legacy( &self, team_id: i64, discussion_number: i64, content: Option<&str>, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List reactions for a team discussion (Legacy)

Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new List reactions for a team discussion endpoint.

List the reactions to a team discussion. OAuth access tokens require the read:discussion scope.

API method documentation

Source

pub fn reactions_create_for_team_discussion_legacy<Content>( &self, team_id: i64, discussion_number: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Create reaction for a team discussion (Legacy)

Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Create reaction for a team discussion endpoint.

Create a reaction to a team discussion. OAuth access tokens require the write:discussion scope. A response with an HTTP 200 status means that you already added the reaction type to this team discussion.

API method documentation

§Content
Source

pub fn teams_list_pending_invitations_legacy( &self, team_id: i64, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List pending team invitations (Legacy)

Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new List pending team invitations endpoint.

The return hash contains a role field which refers to the Organization Invitation role and will be one of the following values: direct_member, admin, billing_manager, hiring_manager, or reinstate. If the invitee is not a GitHub member, the login field in the return hash will be null.

API method documentation

Source

pub fn teams_list_members_legacy( &self, team_id: i64, role: Option<&str>, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List team members (Legacy)

Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new List team members endpoint.

Team members will include the members of child teams.

API method documentation

Source

pub fn teams_get_member_legacy( &self, team_id: i64, username: &str, ) -> Result<Response, ApiError>

Get team member (Legacy)

The “Get team member” endpoint (described below) is deprecated.

We recommend using the Get team membership for a user endpoint instead. It allows you to get both active and pending memberships.

To list members in a team, the team must be visible to the authenticated user.

API method documentation

Source

pub fn teams_add_member_legacy( &self, team_id: i64, username: &str, ) -> Result<Response, ApiError>

Add team member (Legacy)

The “Add team member” endpoint (described below) is deprecated.

We recommend using the Add or update team membership for a user endpoint instead. It allows you to invite new organization members to your teams.

Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see GitHub’s products in the GitHub Help documentation.

To add someone to a team, the authenticated user must be an organization owner or a team maintainer in the team they’re changing. The person being added to the team must be a member of the team’s organization.

Note: When you have team synchronization set up for a team with your organization’s identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team’s membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see “Synchronizing teams between your identity provider and GitHub.”

Note that you’ll need to set Content-Length to zero when calling out to this endpoint. For more information, see “HTTP verbs.”

API method documentation

Source

pub fn teams_remove_member_legacy( &self, team_id: i64, username: &str, ) -> Result<Response, ApiError>

Remove team member (Legacy)

The “Remove team member” endpoint (described below) is deprecated.

We recommend using the Remove team membership for a user endpoint instead. It allows you to remove both active and pending memberships.

Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see GitHub’s products in the GitHub Help documentation.

To remove a team member, the authenticated user must have ‘admin’ permissions to the team or be an owner of the org that the team is associated with. Removing a team member does not delete the user, it just removes them from the team.

Note: When you have team synchronization set up for a team with your organization’s identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team’s membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see “Synchronizing teams between your identity provider and GitHub.”

API method documentation

Source

pub fn teams_get_membership_for_user_legacy( &self, team_id: i64, username: &str, ) -> Result<Response, ApiError>

Get team membership for a user (Legacy)

Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Get team membership for a user endpoint.

Team members will include the members of child teams.

To get a user’s membership with a team, the team must be visible to the authenticated user.

Note: The response contains the state of the membership and the member’s role.

The role for organization owners is set to maintainer. For more information about maintainer roles, see Create a team.

API method documentation

Source

pub fn teams_add_or_update_membership_for_user_legacy<Content>( &self, team_id: i64, username: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Add or update team membership for a user (Legacy)

Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Add or update team membership for a user endpoint.

Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see GitHub’s products in the GitHub Help documentation.

If the user is already a member of the team’s organization, this endpoint will add the user to the team. To add a membership between an organization member and a team, the authenticated user must be an organization owner or a team maintainer.

Note: When you have team synchronization set up for a team with your organization’s identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team’s membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see “Synchronizing teams between your identity provider and GitHub.”

If the user is unaffiliated with the team’s organization, this endpoint will send an invitation to the user via email. This newly-created membership will be in the “pending” state until the user accepts the invitation, at which point the membership will transition to the “active” state and the user will be added as a member of the team. To add a membership between an unaffiliated user and a team, the authenticated user must be an organization owner.

If the user is already a member of the team, this endpoint will update the role of the team member’s role. To update the membership of a team member, the authenticated user must be an organization owner or a team maintainer.

API method documentation

§Content
Source

pub fn teams_remove_membership_for_user_legacy( &self, team_id: i64, username: &str, ) -> Result<Response, ApiError>

Remove team membership for a user (Legacy)

Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Remove team membership for a user endpoint.

Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see GitHub’s products in the GitHub Help documentation.

To remove a membership between a user and a team, the authenticated user must have ‘admin’ permissions to the team or be an owner of the organization that the team is associated with. Removing team membership does not delete the user, it just removes their membership from the team.

Note: When you have team synchronization set up for a team with your organization’s identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team’s membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see “Synchronizing teams between your identity provider and GitHub.”

API method documentation

Source

pub fn teams_list_projects_legacy( &self, team_id: i64, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List team projects (Legacy)

Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new List team projects endpoint.

Lists the organization projects for a team.

API method documentation

Source

pub fn teams_check_permissions_for_project_legacy( &self, team_id: i64, project_id: i64, ) -> Result<Response, ApiError>

Check team permissions for a project (Legacy)

Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Check team permissions for a project endpoint.

Checks whether a team has read, write, or admin permissions for an organization project. The response includes projects inherited from a parent team.

API method documentation

Source

pub fn teams_add_or_update_project_permissions_legacy<Content>( &self, team_id: i64, project_id: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Add or update team project permissions (Legacy)

Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Add or update team project permissions endpoint.

Adds an organization project to a team. To add a project to a team or update the team’s permission on a project, the authenticated user must have admin permissions for the project. The project and team must be part of the same organization.

API method documentation

§Content
Source

pub fn teams_remove_project_legacy( &self, team_id: i64, project_id: i64, ) -> Result<Response, ApiError>

Remove a project from a team (Legacy)

Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Remove a project from a team endpoint.

Removes an organization project from a team. An organization owner or a team maintainer can remove any project from the team. To remove a project from a team as an organization member, the authenticated user must have read access to both the team and project, or admin access to the team or project. Note: This endpoint removes the project from the team, but does not delete it.

API method documentation

Source

pub fn teams_list_repos_legacy( &self, team_id: i64, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List team repositories (Legacy)

Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new List team repositories endpoint.

API method documentation

Source

pub fn teams_check_permissions_for_repo_legacy( &self, team_id: i64, owner: &str, repo: &str, ) -> Result<Response, ApiError>

Check team permissions for a repository (Legacy)

Note: Repositories inherited through a parent team will also be checked.

Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Check team permissions for a repository endpoint.

You can also get information about the specified repository, including what permissions the team grants on it, by passing the following custom media type via the Accept header:

API method documentation

Source

pub fn teams_add_or_update_repo_permissions_legacy<Content>( &self, team_id: i64, owner: &str, repo: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Add or update team repository permissions (Legacy)

Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new “Add or update team repository permissions” endpoint.

To add a repository to a team or update the team’s permission on a repository, the authenticated user must have admin access to the repository, and must be able to see the team. The repository must be owned by the organization, or a direct fork of a repository owned by the organization. You will get a 422 Unprocessable Entity status if you attempt to add a repository to a team that is not owned by the organization.

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.”

API method documentation

§Content
Source

pub fn teams_remove_repo_legacy( &self, team_id: i64, owner: &str, repo: &str, ) -> Result<Response, ApiError>

Remove a repository from a team (Legacy)

Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Remove a repository from a team endpoint.

If the authenticated user is an organization owner or a team maintainer, they can remove any repositories from the team. To remove a repository from a team as an organization member, the authenticated user must have admin access to the repository and must be able to see the team. NOTE: This does not delete the repository, it just removes it from the team.

API method documentation

Source

pub fn teams_list_idp_groups_for_legacy( &self, team_id: i64, ) -> Result<Response, ApiError>

List IdP groups for a team (Legacy)

Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new List IdP groups for a team endpoint.

Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see GitHub’s products in the GitHub Help documentation.

List IdP groups connected to a team on GitHub.

API method documentation

Source

pub fn teams_create_or_update_idp_group_connections_legacy<Content>( &self, team_id: i64, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Create or update IdP group connections (Legacy)

Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new Create or update IdP group connections endpoint.

Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see GitHub’s products in the GitHub Help documentation.

Creates, updates, or removes a connection between a team and an IdP group. When adding groups to a team, you must include all new and existing groups to avoid replacing existing groups with the new ones. Specifying an empty groups array will remove all connections for a team.

API method documentation

§Content
Source

pub fn teams_list_child_legacy( &self, team_id: i64, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List child teams (Legacy)

Deprecation Notice: This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new List child teams endpoint.

API method documentation

Source

pub fn users_get_authenticated(&self) -> Result<Response, ApiError>

Get the authenticated user

If the authenticated user is authenticated through basic authentication or OAuth with the user scope, then the response lists public and private profile information.

If the authenticated user is authenticated through OAuth without the user scope, then the response lists only public profile information.

API method documentation

Source

pub fn users_update_authenticated<Content>( &self, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Update the authenticated user

Note: If your email is set to private and you send an email parameter as part of this request to update your profile, your privacy settings are still enforced: the email address will not be displayed on your public profile or via the API.

API method documentation

§Content
Source

pub fn users_list_blocked_by_authenticated_user( &self, ) -> Result<Response, ApiError>

List users blocked by the authenticated user

List the users you’ve blocked on your personal account.

API method documentation

Source

pub fn users_check_blocked(&self, username: &str) -> Result<Response, ApiError>

Check if a user is blocked by the authenticated user

API method documentation

Source

pub fn users_block(&self, username: &str) -> Result<Response, ApiError>

Source

pub fn users_unblock(&self, username: &str) -> Result<Response, ApiError>

Unblock a user

API method documentation

Source

pub fn codespaces_list_for_authenticated_user( &self, per_page: Option<i64>, page: Option<i64>, repository_id: Option<i64>, ) -> Result<Response, ApiError>

List codespaces for the authenticated user

Lists the authenticated user’s codespaces.

You must authenticate using an access token with the codespace scope to use this endpoint.

GitHub Apps must have read access to the codespaces repository permission to use this endpoint.

API method documentation

Source

pub fn codespaces_create_for_authenticated_user<Content>( &self, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Create a codespace for the authenticated user

Creates a new codespace, owned by the authenticated user.

This endpoint requires either a repository_id OR a pull_request but not both.

You must authenticate using an access token with the codespace scope to use this endpoint.

GitHub Apps must have write access to the codespaces repository permission to use this endpoint.

API method documentation

§Content
Source

pub fn codespaces_list_secrets_for_authenticated_user( &self, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List secrets for the authenticated user

Lists all secrets available for a user’s Codespaces without revealing their encrypted values.

You must authenticate using an access token with the codespace or codespace:secrets scope to use this endpoint. User must have Codespaces access to use this endpoint.

GitHub Apps must have read access to the codespaces_user_secrets user permission to use this endpoint.

API method documentation

Source

pub fn codespaces_get_public_key_for_authenticated_user( &self, ) -> Result<Response, ApiError>

Get public key for the authenticated user

Gets your public key, which you need to encrypt secrets. You need to encrypt a secret before you can create or update secrets.

You must authenticate using an access token with the codespace or codespace:secrets scope to use this endpoint. User must have Codespaces access to use this endpoint.

GitHub Apps must have read access to the codespaces_user_secrets user permission to use this endpoint.

API method documentation

Source

pub fn codespaces_get_secret_for_authenticated_user( &self, secret_name: &str, ) -> Result<Response, ApiError>

Get a secret for the authenticated user

Gets a secret available to a user’s codespaces without revealing its encrypted value.

You must authenticate using an access token with the codespace or codespace:secrets scope to use this endpoint. User must have Codespaces access to use this endpoint.

GitHub Apps must have read access to the codespaces_user_secrets user permission to use this endpoint.

API method documentation

Source

pub fn codespaces_create_or_update_secret_for_authenticated_user<Content>( &self, secret_name: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Create or update a secret for the authenticated user

Creates or updates a secret for a user’s codespace with an encrypted value. Encrypt your secret using LibSodium.

You must authenticate using an access token with the codespace or codespace:secrets scope to use this endpoint. User must also have Codespaces access to use this endpoint.

GitHub Apps must have read access to the codespaces_user_secrets user permission and codespaces_secrets repository permission on all referenced repositories to use this endpoint.

§Example encrypting a secret using Node.js

Encrypt your secret using the tweetsodium library.

const sodium = require('tweetsodium');
 
const key = "base64-encoded-public-key";
const value = "plain-text-secret";
 
// Convert the message and key to Uint8Array's (Buffer implements that interface)
const messageBytes = Buffer.from(value);
const keyBytes = Buffer.from(key, 'base64');
 
// Encrypt using LibSodium.
const encryptedBytes = sodium.seal(messageBytes, keyBytes);
 
// Base64 the encrypted secret
const encrypted = Buffer.from(encryptedBytes).toString('base64');
 
console.log(encrypted);
§Example encrypting a secret using Python

Encrypt your secret using pynacl with Python 3.

from base64 import b64encode
from nacl import encoding, public
 
def encrypt(public_key: str, secret_value: str) -> str:
  """Encrypt a Unicode string using the public key."""
  public_key = public.PublicKey(public_key.encode("utf-8"), encoding.Base64Encoder())
  sealed_box = public.SealedBox(public_key)
  encrypted = sealed_box.encrypt(secret_value.encode("utf-8"))
  return b64encode(encrypted).decode("utf-8")
§Example encrypting a secret using C#

Encrypt your secret using the Sodium.Core package.

var secretValue = System.Text.Encoding.UTF8.GetBytes("mySecret");
var publicKey = Convert.FromBase64String("2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvvcCU=");
 
var sealedPublicKeyBox = Sodium.SealedPublicKeyBox.Create(secretValue, publicKey);
 
Console.WriteLine(Convert.ToBase64String(sealedPublicKeyBox));
§Example encrypting a secret using Ruby

Encrypt your secret using the rbnacl gem.

require "rbnacl"
require "base64"
 
key = Base64.decode64("+ZYvJDZMHUfBkJdyq5Zm9SKqeuBQ4sj+6sfjlH4CgG0=")
public_key = RbNaCl::PublicKey.new(key)
 
box = RbNaCl::Boxes::Sealed.from_public_key(public_key)
encrypted_secret = box.encrypt("my_secret")
 
# Print the base64 encoded secret
puts Base64.strict_encode64(encrypted_secret)

API method documentation

§Content
Source

pub fn codespaces_delete_secret_for_authenticated_user( &self, secret_name: &str, ) -> Result<Response, ApiError>

Delete a secret for the authenticated user

Deletes a secret from a user’s codespaces using the secret name. Deleting the secret will remove access from all codespaces that were allowed to access the secret.

You must authenticate using an access token with the codespace or codespace:secrets scope to use this endpoint. User must have Codespaces access to use this endpoint.

GitHub Apps must have write access to the codespaces_user_secrets user permission to use this endpoint.

API method documentation

Source

pub fn codespaces_list_repositories_for_secret_for_authenticated_user( &self, secret_name: &str, ) -> Result<Response, ApiError>

List selected repositories for a user secret

List the repositories that have been granted the ability to use a user’s codespace secret.

You must authenticate using an access token with the codespace or codespace:secrets scope to use this endpoint. User must have Codespaces access to use this endpoint.

GitHub Apps must have read access to the codespaces_user_secrets user permission and write access to the codespaces_secrets repository permission on all referenced repositories to use this endpoint.

API method documentation

Source

pub fn codespaces_set_repositories_for_secret_for_authenticated_user<Content>( &self, secret_name: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Set selected repositories for a user secret

Select the repositories that will use a user’s codespace secret.

You must authenticate using an access token with the codespace or codespace:secrets scope to use this endpoint. User must have Codespaces access to use this endpoint.

GitHub Apps must have write access to the codespaces_user_secrets user permission and write access to the codespaces_secrets repository permission on all referenced repositories to use this endpoint.

API method documentation

§Content
Source

pub fn codespaces_add_repository_for_secret_for_authenticated_user( &self, secret_name: &str, repository_id: i64, ) -> Result<Response, ApiError>

Add a selected repository to a user secret

Adds a repository to the selected repositories for a user’s codespace secret. You must authenticate using an access token with the codespace or codespace:secrets scope to use this endpoint. User must have Codespaces access to use this endpoint. GitHub Apps must have write access to the codespaces_user_secrets user permission and write access to the codespaces_secrets repository permission on the referenced repository to use this endpoint.

API method documentation

Source

pub fn codespaces_remove_repository_for_secret_for_authenticated_user( &self, secret_name: &str, repository_id: i64, ) -> Result<Response, ApiError>

Remove a selected repository from a user secret

Removes a repository from the selected repositories for a user’s codespace secret. You must authenticate using an access token with the codespace or codespace:secrets scope to use this endpoint. User must have Codespaces access to use this endpoint. GitHub Apps must have write access to the codespaces_user_secrets user permission to use this endpoint.

API method documentation

Source

pub fn codespaces_get_for_authenticated_user( &self, codespace_name: &str, ) -> Result<Response, ApiError>

Get a codespace for the authenticated user

Gets information about a user’s codespace.

You must authenticate using an access token with the codespace scope to use this endpoint.

GitHub Apps must have read access to the codespaces repository permission to use this endpoint.

API method documentation

Source

pub fn codespaces_delete_for_authenticated_user( &self, codespace_name: &str, ) -> Result<Response, ApiError>

Delete a codespace for the authenticated user

Deletes a user’s codespace.

You must authenticate using an access token with the codespace scope to use this endpoint.

GitHub Apps must have write access to the codespaces repository permission to use this endpoint.

API method documentation

Source

pub fn codespaces_update_for_authenticated_user<Content>( &self, codespace_name: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Update a codespace for the authenticated user

Updates a codespace owned by the authenticated user. Currently only the codespace’s machine type and recent folders can be modified using this endpoint.

If you specify a new machine type it will be applied the next time your codespace is started.

You must authenticate using an access token with the codespace scope to use this endpoint.

GitHub Apps must have write access to the codespaces repository permission to use this endpoint.

API method documentation

§Content
Source

pub fn codespaces_export_for_authenticated_user( &self, codespace_name: &str, ) -> Result<Response, ApiError>

Export a codespace for the authenticated user

Triggers an export of the specified codespace and returns a URL and ID where the status of the export can be monitored.

You must authenticate using a personal access token with the codespace scope to use this endpoint.

GitHub Apps must have write access to the codespaces_lifecycle_admin repository permission to use this endpoint.

Source

pub fn codespaces_get_export_details_for_authenticated_user( &self, codespace_name: &str, export_id: &str, ) -> Result<Response, ApiError>

Get details about a codespace export

Gets information about an export of a codespace.

You must authenticate using a personal access token with the codespace scope to use this endpoint.

GitHub Apps must have read access to the codespaces_lifecycle_admin repository permission to use this endpoint.

Source

pub fn codespaces_codespace_machines_for_authenticated_user( &self, codespace_name: &str, ) -> Result<Response, ApiError>

List machine types for a codespace

List the machine types a codespace can transition to use.

You must authenticate using an access token with the codespace scope to use this endpoint.

GitHub Apps must have read access to the codespaces_metadata repository permission to use this endpoint.

API method documentation

Source

pub fn codespaces_start_for_authenticated_user( &self, codespace_name: &str, ) -> Result<Response, ApiError>

Start a codespace for the authenticated user

Starts a user’s codespace.

You must authenticate using an access token with the codespace scope to use this endpoint.

GitHub Apps must have write access to the codespaces_lifecycle_admin repository permission to use this endpoint.

API method documentation

Source

pub fn codespaces_stop_for_authenticated_user( &self, codespace_name: &str, ) -> Result<Response, ApiError>

Stop a codespace for the authenticated user

Stops a user’s codespace.

You must authenticate using an access token with the codespace scope to use this endpoint.

GitHub Apps must have write access to the codespaces_lifecycle_admin repository permission to use this endpoint.

API method documentation

Source

pub fn users_set_primary_email_visibility_for_authenticated_user<Content>( &self, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Set primary email visibility for the authenticated user

Sets the visibility for your primary email addresses.

API method documentation

§Content
Source

pub fn users_list_emails_for_authenticated_user( &self, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List email addresses for the authenticated user

Lists all of your email addresses, and specifies which one is visible to the public. This endpoint is accessible with the user:email scope.

API method documentation

Source

pub fn users_add_email_for_authenticated_user<Content>( &self, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Add an email address for the authenticated user

This endpoint is accessible with the user scope.

API method documentation

§Content
Source

pub fn users_delete_email_for_authenticated_user<Content>( &self, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Delete an email address for the authenticated user

This endpoint is accessible with the user scope.

API method documentation

§Content
Source

pub fn users_list_followers_for_authenticated_user( &self, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List followers of the authenticated user

Lists the people following the authenticated user.

API method documentation

Source

pub fn users_list_followed_by_authenticated_user( &self, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List the people the authenticated user follows

Lists the people who the authenticated user follows.

API method documentation

Source

pub fn users_check_person_is_followed_by_authenticated( &self, username: &str, ) -> Result<Response, ApiError>

Check if a person is followed by the authenticated user

API method documentation

Source

pub fn users_follow(&self, username: &str) -> Result<Response, ApiError>

Follow a user

Note that you’ll need to set Content-Length to zero when calling out to this endpoint. For more information, see “HTTP verbs.”

Following a user requires the user to be logged in and authenticated with basic auth or OAuth with the user:follow scope.

API method documentation

Source

pub fn users_unfollow(&self, username: &str) -> Result<Response, ApiError>

Unfollow a user

Unfollowing a user requires the user to be logged in and authenticated with basic auth or OAuth with the user:follow scope.

API method documentation

Source

pub fn users_list_gpg_keys_for_authenticated_user( &self, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List GPG keys for the authenticated user

Lists the current user’s GPG keys. Requires that you are authenticated via Basic Auth or via OAuth with at least read:gpg_key scope.

API method documentation

Source

pub fn users_create_gpg_key_for_authenticated_user<Content>( &self, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Create a GPG key for the authenticated user

Adds a GPG key to the authenticated user’s GitHub account. Requires that you are authenticated via Basic Auth, or OAuth with at least write:gpg_key scope.

API method documentation

§Content
Source

pub fn users_get_gpg_key_for_authenticated_user( &self, gpg_key_id: i64, ) -> Result<Response, ApiError>

Get a GPG key for the authenticated user

View extended details for a single GPG key. Requires that you are authenticated via Basic Auth or via OAuth with at least read:gpg_key scope.

API method documentation

Source

pub fn users_delete_gpg_key_for_authenticated_user( &self, gpg_key_id: i64, ) -> Result<Response, ApiError>

Delete a GPG key for the authenticated user

Removes a GPG key from the authenticated user’s GitHub account. Requires that you are authenticated via Basic Auth or via OAuth with at least admin:gpg_key scope.

API method documentation

Source

pub fn apps_list_installations_for_authenticated_user( &self, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List app installations accessible to the user access token

Lists installations of your GitHub App that the authenticated user has explicit permission (:read, :write, or :admin) to access.

You must use a user-to-server OAuth access token, created for a user who has authorized your GitHub App, to access this endpoint.

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.

You can find the permissions for the installation under the permissions key.

API method documentation

Source

pub fn apps_list_installation_repos_for_authenticated_user( &self, installation_id: i64, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List repositories accessible to the user access token

List repositories that the authenticated user has explicit permission (:read, :write, or :admin) to access for an installation.

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.

You must use a user-to-server OAuth access token, created for a user who has authorized your GitHub App, to access this endpoint.

The access the user has to each repository is included in the hash under the permissions key.

API method documentation

Source

pub fn apps_add_repo_to_installation_for_authenticated_user( &self, installation_id: i64, repository_id: i64, ) -> Result<Response, ApiError>

Add a repository to an app installation

Add a single repository to an installation. The authenticated user must have admin access to the repository.

You must use a personal access token (which you can create via the command line or Basic Authentication) to access this endpoint.

API method documentation

Source

pub fn apps_remove_repo_from_installation_for_authenticated_user( &self, installation_id: i64, repository_id: i64, ) -> Result<Response, ApiError>

Remove a repository from an app installation

Remove a single repository from an installation. The authenticated user must have admin access to the repository.

You must use a personal access token (which you can create via the command line or Basic Authentication) to access this endpoint.

API method documentation

Source

pub fn interactions_get_restrictions_for_authenticated_user( &self, ) -> Result<Response, ApiError>

Get interaction restrictions for your public repositories

Shows which type of GitHub user can interact with your public repositories and when the restriction expires.

API method documentation

Source

pub fn interactions_set_restrictions_for_authenticated_user<Content>( &self, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Set interaction restrictions for your public repositories

Temporarily restricts which type of GitHub user can interact with your public repositories. Setting the interaction limit at the user level will overwrite any interaction limits that are set for individual repositories owned by the user.

API method documentation

§Content
Source

pub fn interactions_remove_restrictions_for_authenticated_user( &self, ) -> Result<Response, ApiError>

Remove interaction restrictions from your public repositories

Removes any interaction restrictions from your public repositories.

API method documentation

Source

pub fn issues_list_for_authenticated_user( &self, filter: &IssueFilter<'_>, sort: &Sort<'_>, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List user account issues assigned to the authenticated user

List issues across owned and member repositories assigned to the authenticated user.

Note: GitHub’s REST API v3 considers every pull request an issue, but not every issue is a pull request. For this reason, “Issues” endpoints may return both issues and pull requests in the response. You can identify pull requests by the pull_request key. Be aware that the id of a pull request returned from “Issues” endpoints will be an issue id. To find out the pull request id, use the “List pull requests” endpoint.

API method documentation

Source

pub fn users_list_public_ssh_keys_for_authenticated_user( &self, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List public SSH keys for the authenticated user

Lists the public SSH keys for the authenticated user’s GitHub account. Requires that you are authenticated via Basic Auth or via OAuth with at least read:public_key scope.

API method documentation

Source

pub fn users_create_public_ssh_key_for_authenticated_user<Content>( &self, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Create a public SSH key for the authenticated user

Adds a public SSH key to the authenticated user’s GitHub account. Requires that you are authenticated via Basic Auth, or OAuth with at least write:public_key scope.

API method documentation

§Content
Source

pub fn users_get_public_ssh_key_for_authenticated_user( &self, key_id: i64, ) -> Result<Response, ApiError>

Get a public SSH key for the authenticated user

View extended details for a single public SSH key. Requires that you are authenticated via Basic Auth or via OAuth with at least read:public_key scope.

API method documentation

Source

pub fn users_delete_public_ssh_key_for_authenticated_user( &self, key_id: i64, ) -> Result<Response, ApiError>

Delete a public SSH key for the authenticated user

Removes a public SSH key from the authenticated user’s GitHub account. Requires that you are authenticated via Basic Auth or via OAuth with at least admin:public_key scope.

API method documentation

Source

pub fn apps_list_subscriptions_for_authenticated_user( &self, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List subscriptions for the authenticated user

Lists the active subscriptions for the authenticated user. You must use a user-to-server OAuth access token, created for a user who has authorized your GitHub App, to access this endpoint. . OAuth Apps must authenticate using an OAuth token.

API method documentation

Source

pub fn apps_list_subscriptions_for_authenticated_user_stubbed( &self, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List subscriptions for the authenticated user (stubbed)

Lists the active subscriptions for the authenticated user. You must use a user-to-server OAuth access token, created for a user who has authorized your GitHub App, to access this endpoint. . OAuth Apps must authenticate using an OAuth token.

API method documentation

Source

pub fn orgs_list_memberships_for_authenticated_user( &self, state: Option<&str>, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List organization memberships for the authenticated user

API method documentation

Source

pub fn orgs_get_membership_for_authenticated_user( &self, org: &str, ) -> Result<Response, ApiError>

Get an organization membership for the authenticated user

API method documentation

Source

pub fn orgs_update_membership_for_authenticated_user<Content>( &self, org: &str, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Update an organization membership for the authenticated user

API method documentation

§Content
Source

pub fn migrations_list_for_authenticated_user( &self, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List user migrations

Lists all migrations a user has started.

API method documentation

Source

pub fn migrations_start_for_authenticated_user<Content>( &self, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Start a user migration

Initiates the generation of a user migration archive.

API method documentation

§Content
Source

pub fn migrations_get_status_for_authenticated_user( &self, migration_id: i64, exclude: Option<&[Cow<'_, str>]>, ) -> Result<Response, ApiError>

Get a user migration status

Fetches a single user migration. The response includes the state of the migration, which can be one of the following values:

  • pending - the migration hasn’t started yet.
  • exporting - the migration is in progress.
  • exported - the migration finished successfully.
  • failed - the migration failed.

Once the migration has been exported you can download the migration archive.

API method documentation

Source

pub fn migrations_get_archive_for_authenticated_user( &self, migration_id: i64, ) -> Result<Response, ApiError>

Download a user migration archive

Fetches the URL to download the migration archive as a tar.gz file. Depending on the resources your repository uses, the migration archive can contain JSON files with data for these objects:

  • attachments
  • bases
  • commit_comments
  • issue_comments
  • issue_events
  • issues
  • milestones
  • organizations
  • projects
  • protected_branches
  • pull_request_reviews
  • pull_requests
  • releases
  • repositories
  • review_comments
  • schema
  • users

The archive will also contain an attachments directory that includes all attachment files uploaded to GitHub.com and a repositories directory that contains the repository’s Git data.

API method documentation

Source

pub fn migrations_delete_archive_for_authenticated_user( &self, migration_id: i64, ) -> Result<Response, ApiError>

Delete a user migration archive

Deletes a previous migration archive. Downloadable migration archives are automatically deleted after seven days. Migration metadata, which is returned in the List user migrations and Get a user migration status endpoints, will continue to be available even after an archive is deleted.

API method documentation

Source

pub fn migrations_unlock_repo_for_authenticated_user( &self, migration_id: i64, repo_name: &str, ) -> Result<Response, ApiError>

Unlock a user repository

Unlocks a repository. You can lock repositories when you start a user migration. Once the migration is complete you can unlock each repository to begin using it again or delete the repository if you no longer need the source data. Returns a status of 404 Not Found if the repository is not locked.

API method documentation

Source

pub fn migrations_list_repos_for_authenticated_user( &self, migration_id: i64, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List repositories for a user migration

Lists all the repositories for this user migration.

API method documentation

Source

pub fn orgs_list_for_authenticated_user( &self, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List organizations for the authenticated user

List organizations for the authenticated user.

OAuth scope requirements

This only lists organizations that your authorization allows you to operate on in some way (e.g., you can list teams with read:org scope, you can publicize your organization membership with user scope, etc.). Therefore, this API requires at least user or read:org scope. OAuth requests with insufficient scope receive a 403 Forbidden response.

API method documentation

Source

pub fn packages_list_packages_for_authenticated_user( &self, package_type: &str, visibility: Option<&str>, ) -> Result<Response, ApiError>

List packages for the authenticated user’s namespace

Lists packages owned by the authenticated user within the user’s namespace.

To use this endpoint, you must authenticate using an access token with the packages:read scope. If package_type is not container, your token must also include the repo scope.

API method documentation

Source

pub fn packages_get_package_for_authenticated_user( &self, package_type: &str, package_name: &str, ) -> Result<Response, ApiError>

Get a package for the authenticated user

Gets a specific package for a package owned by the authenticated user.

To use this endpoint, you must authenticate using an access token with the packages:read scope. If package_type is not container, your token must also include the repo scope.

API method documentation

Source

pub fn packages_delete_package_for_authenticated_user( &self, package_type: &str, package_name: &str, ) -> Result<Response, ApiError>

Delete a package for the authenticated user

Deletes a package owned by the authenticated user. You cannot delete a public package if any version of the package has more than 5,000 downloads. In this scenario, contact GitHub support for further assistance.

To use this endpoint, you must authenticate using an access token with the packages:read and packages:delete scopes. If package_type is not container, your token must also include the repo scope.

API method documentation

Source

pub fn packages_restore_package_for_authenticated_user( &self, package_type: &str, package_name: &str, token: Option<&str>, ) -> Result<Response, ApiError>

Restore a package for the authenticated user

Restores a package owned by the authenticated user.

You can restore a deleted package under the following conditions:

  • The package was deleted within the last 30 days.
  • The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package’s namespace first.

To use this endpoint, you must authenticate using an access token with the packages:read and packages:write scopes. If package_type is not container, your token must also include the repo scope.

API method documentation

Source

pub fn packages_get_all_package_versions_for_package_owned_by_authenticated_user( &self, package_type: &str, package_name: &str, page: Option<i64>, per_page: Option<i64>, state: Option<&str>, ) -> Result<Response, ApiError>

Get all package versions for a package owned by the authenticated user

Returns all package versions for a package owned by the authenticated user.

To use this endpoint, you must authenticate using an access token with the packages:read scope. If package_type is not container, your token must also include the repo scope.

API method documentation

Source

pub fn packages_get_package_version_for_authenticated_user( &self, package_type: &str, package_name: &str, package_version_id: i64, ) -> Result<Response, ApiError>

Get a package version for the authenticated user

Gets a specific package version for a package owned by the authenticated user.

To use this endpoint, you must authenticate using an access token with the packages:read scope. If package_type is not container, your token must also include the repo scope.

API method documentation

Source

pub fn packages_delete_package_version_for_authenticated_user( &self, package_type: &str, package_name: &str, package_version_id: i64, ) -> Result<Response, ApiError>

Delete a package version for the authenticated user

Deletes a specific package version for a package owned by the authenticated user. If the package is public and the package version has more than 5,000 downloads, you cannot delete the package version. In this scenario, contact GitHub support for further assistance.

To use this endpoint, you must have admin permissions in the organization and authenticate using an access token with the packages:read and packages:delete scopes. If package_type is not container, your token must also include the repo scope.

API method documentation

Source

pub fn packages_restore_package_version_for_authenticated_user( &self, package_type: &str, package_name: &str, package_version_id: i64, ) -> Result<Response, ApiError>

Restore a package version for the authenticated user

Restores a package version owned by the authenticated user.

You can restore a deleted package version under the following conditions:

  • The package was deleted within the last 30 days.
  • The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package’s namespace first.

To use this endpoint, you must authenticate using an access token with the packages:read and packages:write scopes. If package_type is not container, your token must also include the repo scope.

API method documentation

Source

pub fn projects_create_for_authenticated_user<Content>( &self, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

Source

pub fn users_list_public_emails_for_authenticated_user( &self, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List public email addresses for the authenticated user

Lists your publicly visible email address, which you can set with the Set primary email visibility for the authenticated user endpoint. This endpoint is accessible with the user:email scope.

API method documentation

Source

pub fn repos_list_for_authenticated_user( &self, visibility: Option<&str>, affiliation: Option<&str>, type: Option<&str>, sort: &Sort<'_>, per_page: Option<i64>, page: Option<i64>, since: Option<&str>, before: Option<&str>, ) -> Result<Response, ApiError>

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.

API method documentation

Source

pub fn repos_create_for_authenticated_user<Content>( &self, theContent: Content, ) -> Result<Response, ApiError>
where Content: Copy + TryInto<Content<Body>>, ApiError: From<<Content as TryInto<Content<Body>>>::Error>,

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 or repo scope to create a public repository. Note: For GitHub AE, use repo scope to create an internal repository.
  • repo scope to create a private repository.

API method documentation

§Content
Source

pub fn repos_list_invitations_for_authenticated_user( &self, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List repository invitations for the authenticated user

When authenticating as a user, this endpoint will list all currently open repository invitations for that user.

API method documentation

Source

pub fn repos_decline_invitation_for_authenticated_user( &self, invitation_id: i64, ) -> Result<Response, ApiError>

Decline a repository invitation

API method documentation

Source

pub fn repos_accept_invitation_for_authenticated_user( &self, invitation_id: i64, ) -> Result<Response, ApiError>

Accept a repository invitation

API method documentation

Source

pub fn activity_list_repos_starred_by_authenticated_user( &self, sort: &Sort<'_>, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List repositories starred by the authenticated user

Lists repositories the authenticated user has starred.

You can also find out when stars were created by passing the following custom media type via the Accept header:

API method documentation

Source

pub fn activity_check_repo_is_starred_by_authenticated_user( &self, owner: &str, repo: &str, ) -> Result<Response, ApiError>

Check if a repository is starred by the authenticated user

API method documentation

Source

pub fn activity_star_repo_for_authenticated_user( &self, owner: &str, repo: &str, ) -> Result<Response, ApiError>

Star a repository for the authenticated user

Note that you’ll need to set Content-Length to zero when calling out to this endpoint. For more information, see “HTTP verbs.”

API method documentation

Source

pub fn activity_unstar_repo_for_authenticated_user( &self, owner: &str, repo: &str, ) -> Result<Response, ApiError>

Unstar a repository for the authenticated user

API method documentation

Source

pub fn activity_list_watched_repos_for_authenticated_user( &self, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List repositories watched by the authenticated user

Lists repositories the authenticated user is watching.

API method documentation

Source

pub fn teams_list_for_authenticated_user( &self, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List teams for the authenticated user

List all of the teams across all of the organizations to which the authenticated user belongs. This method requires user, repo, or read:org scope when authenticating via OAuth.

API method documentation

Source

pub fn users_list( &self, since: Option<i64>, per_page: Option<i64>, ) -> Result<Response, ApiError>

List users

Lists all users, in the order that they signed up on GitHub. This list includes personal user accounts and organization accounts.

Note: Pagination is powered exclusively by the since parameter. Use the Link header to get the URL for the next page of users.

API method documentation

Source

pub fn users_get_by_username( &self, username: &str, ) -> Result<Response, ApiError>

Get a user

Provides publicly available information about someone with a GitHub account.

GitHub Apps with the Plan user permission can use this endpoint to retrieve information about a user’s GitHub plan. The GitHub App must be authenticated as a user. See “Identifying and authorizing users for GitHub Apps” for details about authentication. For an example response, see ‘Response with GitHub plan information’ below“

The email key in the following response is the publicly visible email address from your GitHub profile page. When setting up your profile, you can select a primary email address to be “public” which provides an email entry for this endpoint. If you do not set a public email address for email, then it will have a value of null. You only see publicly visible email addresses when authenticated with GitHub. For more information, see Authentication.

The Emails API enables you to list all of your email addresses, and toggle a primary email to be visible publicly. For more information, see “Emails API”.

API method documentation

Source

pub fn activity_list_events_for_authenticated_user( &self, username: &str, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List events for the authenticated user

If you are authenticated as the given user, you will see your private events. Otherwise, you’ll only see public events.

API method documentation

Source

pub fn activity_list_org_events_for_authenticated_user( &self, username: &str, org: &str, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List organization events for the authenticated user

This is the user’s organization dashboard. You must be authenticated as the user to view this.

API method documentation

Source

pub fn activity_list_public_events_for_user( &self, username: &str, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List public events for a user

API method documentation

Source

pub fn users_list_followers_for_user( &self, username: &str, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List followers of a user

Lists the people following the specified user.

API method documentation

Source

pub fn users_list_following_for_user( &self, username: &str, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List the people a user follows

Lists the people who the specified user follows.

API method documentation

Source

pub fn users_check_following_for_user( &self, username: &str, target_user: &str, ) -> Result<Response, ApiError>

Check if a user follows another user

API method documentation

Source

pub fn gists_list_for_user( &self, username: &str, since: Option<&str>, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List gists for a user

Lists public gists for the specified user:

API method documentation

Source

pub fn users_list_gpg_keys_for_user( &self, username: &str, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List GPG keys for a user

Lists the GPG keys for a user. This information is accessible by anyone.

API method documentation

Source

pub fn users_get_context_for_user( &self, username: &str, subject_type: Option<&str>, subject_id: Option<&str>, ) -> Result<Response, ApiError>

Get contextual information for a user

Provides hovercard information when authenticated through basic auth or OAuth with the repo scope. You can find out more about someone in relation to their pull requests, issues, repositories, and organizations.

The subject_type and subject_id parameters provide context for the person’s hovercard, which returns more information than without the parameters. For example, if you wanted to find out more about octocat who owns the Spoon-Knife repository via cURL, it would look like this:

 curl -u username:token
  https://api.github.com/users/octocat/hovercard?subject_type=repository&subject_id=1300192

API method documentation

Source

pub fn apps_get_user_installation( &self, username: &str, ) -> Result<Response, ApiError>

Get a user installation for the authenticated app

Enables an authenticated GitHub App to find the user’s installation information.

You must use a JWT to access this endpoint.

API method documentation

Source

pub fn users_list_public_keys_for_user( &self, username: &str, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List public keys for a user

Lists the verified public SSH keys for a user. This is accessible by anyone.

API method documentation

Source

pub fn orgs_list_for_user( &self, username: &str, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List organizations for a user

List public organization memberships for the specified user.

This method only lists public memberships, regardless of authentication. If you need to fetch all of the organization memberships (public and private) for the authenticated user, use the List organizations for the authenticated user API instead.

API method documentation

Source

pub fn packages_list_packages_for_user( &self, package_type: &str, visibility: Option<&str>, username: &str, ) -> Result<Response, ApiError>

List packages for a user

Lists all packages in a user’s namespace for which the requesting user has access.

To use this endpoint, you must authenticate using an access token with the packages:read scope. If package_type is not container, your token must also include the repo scope.

API method documentation

Source

pub fn packages_get_package_for_user( &self, package_type: &str, package_name: &str, username: &str, ) -> Result<Response, ApiError>

Get a package for a user

Gets a specific package metadata for a public package owned by a user.

To use this endpoint, you must authenticate using an access token with the packages:read scope. If package_type is not container, your token must also include the repo scope.

API method documentation

Source

pub fn packages_delete_package_for_user( &self, package_type: &str, package_name: &str, username: &str, ) -> Result<Response, ApiError>

Delete a package for a user

Deletes an entire package for a user. You cannot delete a public package if any version of the package has more than 5,000 downloads. In this scenario, contact GitHub support for further assistance.

To use this endpoint, you must authenticate using an access token with the packages:read and packages:delete scopes. In addition:

  • If package_type is not container, your token must also include the repo scope.
  • If package_type is container, you must also have admin permissions to the container you want to delete.

API method documentation

Source

pub fn packages_restore_package_for_user( &self, package_type: &str, package_name: &str, username: &str, token: Option<&str>, ) -> Result<Response, ApiError>

Restore a package for a user

Restores an entire package for a user.

You can restore a deleted package under the following conditions:

  • The package was deleted within the last 30 days.
  • The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package’s namespace first.

To use this endpoint, you must authenticate using an access token with the packages:read and packages:write scopes. In addition:

  • If package_type is not container, your token must also include the repo scope.
  • If package_type is container, you must also have admin permissions to the container that you want to restore.

API method documentation

Source

pub fn packages_get_all_package_versions_for_package_owned_by_user( &self, package_type: &str, package_name: &str, username: &str, ) -> Result<Response, ApiError>

Get all package versions for a package owned by a user

Returns all package versions for a public package owned by a specified user.

To use this endpoint, you must authenticate using an access token with the packages:read scope. If package_type is not container, your token must also include the repo scope.

API method documentation

Source

pub fn packages_get_package_version_for_user( &self, package_type: &str, package_name: &str, package_version_id: i64, username: &str, ) -> Result<Response, ApiError>

Get a package version for a user

Gets a specific package version for a public package owned by a specified user.

At this time, to use this endpoint, you must authenticate using an access token with the packages:read scope. If package_type is not container, your token must also include the repo scope.

API method documentation

Source

pub fn packages_delete_package_version_for_user( &self, package_type: &str, package_name: &str, username: &str, package_version_id: i64, ) -> Result<Response, ApiError>

Delete package version for a user

Deletes a specific package version for a user. If the package is public and the package version has more than 5,000 downloads, you cannot delete the package version. In this scenario, contact GitHub support for further assistance.

To use this endpoint, you must authenticate using an access token with the packages:read and packages:delete scopes. In addition:

  • If package_type is not container, your token must also include the repo scope.
  • If package_type is container, you must also have admin permissions to the container you want to delete.

API method documentation

Source

pub fn packages_restore_package_version_for_user( &self, package_type: &str, package_name: &str, username: &str, package_version_id: i64, ) -> Result<Response, ApiError>

Restore package version for a user

Restores a specific package version for a user.

You can restore a deleted package under the following conditions:

  • The package was deleted within the last 30 days.
  • The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package’s namespace first.

To use this endpoint, you must authenticate using an access token with the packages:read and packages:write scopes. In addition:

  • If package_type is not container, your token must also include the repo scope.
  • If package_type is container, you must also have admin permissions to the container that you want to restore.

API method documentation

Source

pub fn projects_list_for_user( &self, username: &str, state: Option<&str>, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List user projects

API method documentation

Source

pub fn activity_list_received_events_for_user( &self, username: &str, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List events received by the authenticated user

These are events that you’ve received by watching repos and following users. If you are authenticated as the given user, you will see private events. Otherwise, you’ll only see public events.

API method documentation

Source

pub fn activity_list_received_public_events_for_user( &self, username: &str, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List public events received by a user

API method documentation

Source

pub fn repos_list_for_user( &self, username: &str, type: Option<&str>, sort: &Sort<'_>, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

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.

API method documentation

Source

pub fn billing_get_github_actions_billing_user( &self, username: &str, ) -> Result<Response, ApiError>

Get GitHub Actions billing for a user

Gets the summary of the free and paid GitHub Actions minutes used.

Paid minutes only apply to workflows in private repositories that use GitHub-hosted runners. Minutes used is listed for each GitHub-hosted runner operating system. Any job re-runs are also included in the usage. The usage returned includes any minute multipliers for macOS and Windows runners, and is rounded up to the nearest whole minute. For more information, see “Managing billing for GitHub Actions”.

Access tokens must have the user scope.

API method documentation

Source

pub fn billing_get_github_packages_billing_user( &self, username: &str, ) -> Result<Response, ApiError>

Get GitHub Packages billing for a user

Gets the free and paid storage used for GitHub Packages in gigabytes.

Paid minutes only apply to packages stored for private repositories. For more information, see “Managing billing for GitHub Packages.”

Access tokens must have the user scope.

API method documentation

Source

pub fn billing_get_shared_storage_billing_user( &self, username: &str, ) -> Result<Response, ApiError>

Get shared storage billing for a user

Gets the estimated paid and estimated total storage used for GitHub Actions and GitHub Packages.

Paid minutes only apply to packages stored for private repositories. For more information, see “Managing billing for GitHub Packages.”

Access tokens must have the user scope.

API method documentation

Source

pub fn activity_list_repos_starred_by_user( &self, username: &str, sort: &Sort<'_>, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List repositories starred by a user

Lists repositories a user has starred.

You can also find out when stars were created by passing the following custom media type via the Accept header:

API method documentation

Source

pub fn activity_list_repos_watched_by_user( &self, username: &str, per_page: Option<i64>, page: Option<i64>, ) -> Result<Response, ApiError>

List repositories watched by a user

Lists repositories a user is watching.

API method documentation

Source

pub fn meta_get_zen(&self) -> Result<Response, ApiError>

Get the Zen of GitHub

Get a random sentence from the Zen of GitHub

Auto Trait Implementations§

§

impl<Sleep> Freeze for Caller<Sleep>
where Sleep: Freeze,

§

impl<Sleep> !RefUnwindSafe for Caller<Sleep>

§

impl<Sleep> Send for Caller<Sleep>
where Sleep: Send,

§

impl<Sleep> Sync for Caller<Sleep>
where Sleep: Sync,

§

impl<Sleep> Unpin for Caller<Sleep>
where Sleep: Unpin,

§

impl<Sleep> !UnwindSafe for Caller<Sleep>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> ErasedDestructor for T
where T: 'static,