Managing GitHub Actions settings for a repository

You can disable or configure GitHub Actions for a specific repository.

About GitHub Actions permissions for your repository

By default, after GitHub Actions is enabled on your enterprise, it is enabled on all repositories and organizations. You can choose to disable GitHub Actions or limit them to local actions only, which means that people can only use actions that exist in your repository. For more information about GitHub Actions, see "About GitHub Actions."

You can enable GitHub Actions for your repository. When you enable GitHub Actions, workflows are able to run actions located within your repository and any other internal repository. You can disable GitHub Actions for your repository altogether. When you disable GitHub Actions, no workflows run in your repository.

Alternatively, you can enable GitHub Actions in your repository but limit the actions a workflow can run. When you enable local actions only, workflows can only run actions located in your repository, organization, or enterprise.

Managing GitHub Actions permissions for your repository

You can disable all workflows for a repository or set a policy that configures which actions can be used in a repository.

If you choose Allow select actions, local actions are allowed, and there are additional options for allowing other specific actions. For more information, see "Allowing specific actions to run."

When you allow local actions only, the policy blocks all access to actions authored by GitHub. For example, the actions/checkout action would not be accessible.

Note: You might not be able to manage these settings if your organization has an overriding policy or is managed by an enterprise that has overriding policy. For more information, see "Disabling or limiting GitHub Actions for your organization" or "Enforcing policies for GitHub Actions in your enterprise."

  1. On your enterprise, navigate to the main page of the repository.
  2. Under your repository name, click Settings. Repository settings button
  3. In the left sidebar, click Actions.
  4. Under Actions permissions, select an option. Set actions policy for this organization
  5. Click Save.

Allowing specific actions to run

When you choose Allow select actions, local actions are allowed, and there are additional options for allowing other specific actions:

  • Allow actions created by GitHub: You can allow all actions created by GitHub to be used by workflows. Actions created by GitHub are located in the actions and github organizations. For more information, see the actions and github organizations.

  • Allow specified actions: You can restrict workflows to use actions in specific organizations and repositories.

    To restrict access to specific tags or commit SHAs of an action, use the same <OWNER>/<REPO>@<TAG OR SHA> syntax used in the workflow to select the action. For example, actions/javascript-action@v1.0.1 to select a tag or actions/javascript-action@172239021f7ba04fe7327647b213799853a9eb89 to select a SHA. For more information, see "Finding and customizing actions."

    You can use the * wildcard character to match patterns. For example, to allow all actions in organizations that start with space-org, you can specify space-org*/*. To add all actions in repositories that start with octocat, you can use */octocat*@*. For more information about using the * wildcard, see "Workflow syntax for GitHub Actions."

This procedure demonstrates how to add specific actions to the allow list.

  1. On your enterprise, navigate to the main page of the repository.
  2. Under your repository name, click Settings. Repository settings button
  3. In the left sidebar, click Actions.
  4. Under Actions permissions, select Allow select actions and add your required actions to the list. Add actions to allow list
  5. Click Save.

Enabling workflows for private repository forks

If you rely on using forks of your private repositories, you can configure policies that control how users can run workflows on pull_request events. Available to private and internal repositories only, you can configure these policy settings for your enterprise, organizations, or repositories. For enterprises, the policies are applied to all repositories in all organizations.

  • Run workflows from fork pull requests - Allows users to run workflows from fork pull requests, using a GITHUB_TOKEN with read-only permission, and with no access to secrets.
  • Send write tokens to workflows from pull requests - Allows pull requests from forks to use a GITHUB_TOKEN with write permission.
  • Send secrets to workflows from pull requests - Makes all secrets available to the pull request.

Configuring the private fork policy for a repository

  1. On your enterprise, navigate to the main page of the repository.
  2. Under your repository name, click Settings. Repository settings button
  3. In the left sidebar, click Actions.
  4. Under Fork pull request workflows, select your options. For example: Enable, disable, or limits actions for this repository
  5. Click Save to apply the settings.

Configuring the retention period for GitHub Actions artifacts and logs in your repository

You can configure the retention period for GitHub Actions artifacts and logs in your repository.

By default, the artifacts and log files generated by workflows are retained for 90 days before they are automatically deleted. You can adjust the retention period, depending on the type of repository:

  • For private and internal repositories: you can change this retention period to anywhere between 1 day or 400 days.

When you customize the retention period, it only applies to new artifacts and log files, and does not retroactively apply to existing objects. For managed repositories and organizations, the maximum retention period cannot exceed the limit set by the managing organization or enterprise.

You can also define a custom retention period for a specific artifact created by a workflow. For more information, see "Setting the retention period for an artifact."

Setting the retention period for a repository

  1. On your enterprise, navigate to the main page of the repository.
  2. Under your repository name, click Settings. Repository settings button
  3. In the left sidebar, click Actions.
  4. Under Artifact and log retention duration, enter a new value.
  5. Click Save to apply the change.

Did this doc help you?

Privacy policy

Help us make these docs great!

All GitHub docs are open source. See something that's wrong or unclear? Submit a pull request.

Make a contribution

Or, learn how to contribute.