Interactions

In this article

Did this doc help you?

Users interact with repositories by commenting, opening issues, and creating pull requests. The Interactions APIs allow people with owner or admin access to temporarily restrict certain users from interacting with public repositories.

Organization

The Organization Interactions API allows organization owners to temporarily restrict which users can comment, open issues, or create pull requests in the organization's public repositories. When restrictions are enabled, only the specified group of GitHub users will be able to participate in interactions. Restrictions expire 24 hours from the time they are set. Here's more about the groups of GitHub users:

  • Existing users: When you limit interactions to existing_users, new users with accounts less than 24 hours old who have not previously contributed and are not collaborators will be temporarily restricted in the organization.

  • Contributors only: When you limit interactions to contributors_only, users who have not previously contributed and are not collaborators will be temporarily restricted in the organization.

  • Collaborators only: When you limit interactions to collaborators_only, users who are not collaborators will be temporarily restricted in the organization.

    Get interaction restrictions for an organization

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

    get /orgs/{org}/interaction-limits

    Parameters

    Name Type In Description
    accept string header

    This API is under preview and subject to change. See preview notice

    org string path

    Code samples

    Shell
    curl \
      -H "Accept: application/vnd.github.sombra-preview+json" \
      https://api.github.com/orgs/ORG/interaction-limits
    
    JavaScript (@octokit/core.js)
    await octokit.request('GET /orgs/{org}/interaction-limits', {
      org: 'org',
      mediaType: {
        previews: [
          'sombra'
        ]
      }
    })
    

    Default response

    Status: 200 OK
    {
      "limit": "collaborators_only",
      "origin": "organization",
      "expires_at": "2018-08-17T04:18:39Z"
    }
    

    Notes

    Preview notice

    The Interactions API is currently in public preview. See the blog post preview for more details. To access the API during the preview period, you must provide a custom media type in the Accept header:

    application/vnd.github.sombra-preview
    
    ☝️ This header is required.

    Set interaction restrictions for an organization

    Temporarily restricts interactions to certain GitHub users in any public repository in the given organization. You must be an organization owner to set these restrictions.

    put /orgs/{org}/interaction-limits

    Parameters

    Name Type In Description
    accept string header

    This API is under preview and subject to change. See preview notice

    org string path
    limit string body

    Required. Specifies the group of GitHub users who can comment, open issues, or create pull requests in public repositories for the given organization. Must be one of: existing_users, contributors_only, or collaborators_only.

    Code samples

    Shell
    curl \
      -X PUT \
      -H "Accept: application/vnd.github.sombra-preview+json" \
      https://api.github.com/orgs/ORG/interaction-limits \
      -d '{"limit":"limit"}'
    
    JavaScript (@octokit/core.js)
    await octokit.request('PUT /orgs/{org}/interaction-limits', {
      org: 'org',
      limit: 'limit',
      mediaType: {
        previews: [
          'sombra'
        ]
      }
    })
    

    Default response

    Status: 200 OK
    {
      "limit": "collaborators_only",
      "origin": "organization",
      "expires_at": "2018-08-17T04:18:39Z"
    }
    

    Validation failed

    Status: 422 Unprocessable Entity

    Notes

    Preview notice

    The Interactions API is currently in public preview. See the blog post preview for more details. To access the API during the preview period, you must provide a custom media type in the Accept header:

    application/vnd.github.sombra-preview
    
    ☝️ This header is required.

    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.

    delete /orgs/{org}/interaction-limits

    Parameters

    Name Type In Description
    accept string header

    This API is under preview and subject to change. See preview notice

    org string path

    Code samples

    Shell
    curl \
      -X DELETE \
      -H "Accept: application/vnd.github.sombra-preview+json" \
      https://api.github.com/orgs/ORG/interaction-limits
    
    JavaScript (@octokit/core.js)
    await octokit.request('DELETE /orgs/{org}/interaction-limits', {
      org: 'org',
      mediaType: {
        previews: [
          'sombra'
        ]
      }
    })
    

    Default Response

    Status: 204 No Content

    Notes

    Preview notice

    The Interactions API is currently in public preview. See the blog post preview for more details. To access the API during the preview period, you must provide a custom media type in the Accept header:

    application/vnd.github.sombra-preview
    
    ☝️ This header is required.

Repository

The Repository Interactions API allows people with owner or admin access to temporarily restrict which users can comment, open issues, or create pull requests in a public repository. When restrictions are enabled, only the specified group of GitHub users will be able to participate in interactions. Restrictions expire 24 hours from the time they are set. Here's more about the groups of GitHub users:

  • Existing users: When you limit interactions to existing_users, new users with accounts less than 24 hours old who have not previously contributed and are not collaborators will be temporarily restricted in the respository.
  • Contributors only: When you limit interactions to contributors_only, users who have not previously contributed and are not collaborators will be temporarily restricted in the respository.
  • Collaborators only: When you limit interactions to collaborators_only, users who are not collaborators will be temporarily restricted in the respository.

Get interaction restrictions for a repository

Shows which group of GitHub users can interact with this repository and when the restriction expires. If there are no restrictions, you will see an empty response.

get /repos/{owner}/{repo}/interaction-limits

Parameters

Name Type In Description
accept string header

This API is under preview and subject to change. See preview notice

owner string path
repo string path

Code samples

Shell
curl \
  -H "Accept: application/vnd.github.sombra-preview+json" \
  https://api.github.com/repos/octocat/hello-world/interaction-limits
JavaScript (@octokit/core.js)
await octokit.request('GET /repos/{owner}/{repo}/interaction-limits', {
  owner: 'octocat',
  repo: 'hello-world',
  mediaType: {
    previews: [
      'sombra'
    ]
  }
})

Default response

Status: 200 OK
{
  "limit": "collaborators_only",
  "origin": "repository",
  "expires_at": "2018-08-17T04:18:39Z"
}

Notes

Preview notice

The Interactions API is currently in public preview. See the blog post preview for more details. To access the API during the preview period, you must provide a custom media type in the Accept header:

application/vnd.github.sombra-preview
☝️ This header is required.

Set interaction restrictions for a repository

Temporarily restricts interactions to certain GitHub users within the given repository. You must have owner or admin access to set restrictions.

put /repos/{owner}/{repo}/interaction-limits

Parameters

Name Type In Description
accept string header

This API is under preview and subject to change. See preview notice

owner string path
repo string path
limit string body

Required. Specifies the group of GitHub users who can comment, open issues, or create pull requests for the given repository. Must be one of: existing_users, contributors_only, or collaborators_only.

Code samples

Shell
curl \
  -X PUT \
  -H "Accept: application/vnd.github.sombra-preview+json" \
  https://api.github.com/repos/octocat/hello-world/interaction-limits \
  -d '{"limit":"limit"}'
JavaScript (@octokit/core.js)
await octokit.request('PUT /repos/{owner}/{repo}/interaction-limits', {
  owner: 'octocat',
  repo: 'hello-world',
  limit: 'limit',
  mediaType: {
    previews: [
      'sombra'
    ]
  }
})

Default response

Status: 200 OK
{
  "limit": "collaborators_only",
  "origin": "repository",
  "expires_at": "2018-08-17T04:18:39Z"
}

Notes

Preview notice

The Interactions API is currently in public preview. See the blog post preview for more details. To access the API during the preview period, you must provide a custom media type in the Accept header:

application/vnd.github.sombra-preview
☝️ This header is required.

Remove interaction restrictions for a repository

Removes all interaction restrictions from the given repository. You must have owner or admin access to remove restrictions.

delete /repos/{owner}/{repo}/interaction-limits

Parameters

Name Type In Description
accept string header

This API is under preview and subject to change. See preview notice

owner string path
repo string path

Code samples

Shell
curl \
  -X DELETE \
  -H "Accept: application/vnd.github.sombra-preview+json" \
  https://api.github.com/repos/octocat/hello-world/interaction-limits
JavaScript (@octokit/core.js)
await octokit.request('DELETE /repos/{owner}/{repo}/interaction-limits', {
  owner: 'octocat',
  repo: 'hello-world',
  mediaType: {
    previews: [
      'sombra'
    ]
  }
})

Default Response

Status: 204 No Content

Notes

Preview notice

The Interactions API is currently in public preview. See the blog post preview for more details. To access the API during the preview period, you must provide a custom media type in the Accept header:

application/vnd.github.sombra-preview
☝️ This header is required.

Did this doc help you?