GitHub v3 REST API

Set allowed actions for a repository

Sets the actions 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 set at the organization or enterprise levels, then you cannot override any of the allowed actions 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.

put
{protocol}://{hostname}/api/v3/repos/{owner}/{repo}/actions/permissions/selected-actions

Path Parameters

ownerstringrequired
repostringrequired

Body

application/json

selected-actions

github_owned_allowedbooleanrequired

Whether GitHub-owned actions are allowed. For example, this includes the actions in the actions organization.

patterns_allowedarray[string]required

Specifies a list of string-matching patterns to allow specific action(s). Wildcards, tags, and SHAs are allowed. For example, monalisa/octocat@*, monalisa/octocat@v2, monalisa/*."

Response

204

Response

put/repos/{owner}/{repo}/actions/permissions/selected-actions

Body

{ "github_owned_allowed": true, "verified_allowed": false, "patterns_allowed": [ "monalisa/octocat@*", "docker/*" ] }
 
204

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.

get
{protocol}://{hostname}/api/v3/repos/{owner}/{repo}/actions/runners

Query Parameters

per_pageinteger

Results per page (max 100)

Default:30

pageinteger

Page number of the results to fetch.

Default:1

Path Parameters

ownerstringrequired
repostringrequired

Response

200 application/json

Response

total_countintegerrequired
runnersarray[object]required

A self hosted runner

Show Child Parameters
get/repos/{owner}/{repo}/actions/runners
 
200 application/json

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.

get
{protocol}://{hostname}/api/v3/repos/{owner}/{repo}/actions/runners/downloads

Path Parameters

ownerstringrequired
repostringrequired

Response

200 application/json

Response

Runner Application

osstringrequired
architecturestringrequired
download_urlstringrequired
filenamestringrequired
temp_download_tokenstring

A short lived bearer token used to download the runner, if needed.

sha256_checksumstring
get/repos/{owner}/{repo}/actions/runners/downloads
 
200 application/json

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
post
{protocol}://{hostname}/api/v3/repos/{owner}/{repo}/actions/runners/registration-token

Path Parameters

ownerstringrequired
repostringrequired

Response

201 application/json

Response

Authentication Token

Authentication Token

tokenstringrequired

The token used for authentication

Example:v1.1f699f1069f60xxx

expires_atstring(date-time)required

The time this token expires

Example:2016-07-11T22:14:10Z

permissionsobject

Example:{"issues":"read","deployments":"write"}

repositoriesarray[object]

A git repository

Show Child Parameters
single_filestring | null

Example:config.yaml

repository_selectionstring

Describe whether all repositories have been selected or there’s a selection involved

Allowed values:allselected

post/repos/{owner}/{repo}/actions/runners/registration-token
 
201 application/json

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
post
{protocol}://{hostname}/api/v3/repos/{owner}/{repo}/actions/runners/remove-token

Path Parameters

ownerstringrequired
repostringrequired

Response

201 application/json

Response

Authentication Token

Authentication Token

tokenstringrequired

The token used for authentication

Example:v1.1f699f1069f60xxx

expires_atstring(date-time)required

The time this token expires

Example:2016-07-11T22:14:10Z

permissionsobject

Example:{"issues":"read","deployments":"write"}

repositoriesarray[object]

A git repository

Show Child Parameters
single_filestring | null

Example:config.yaml

repository_selectionstring

Describe whether all repositories have been selected or there’s a selection involved

Allowed values:allselected

post/repos/{owner}/{repo}/actions/runners/remove-token
 
201 application/json