Skip to main content

Enforcing policies for GitHub Actions in your enterprise

You can enforce policies for GitHub Actions within your enterprise's organizations, or allow policies to be set in each organization.

Quem pode usar esse recurso?

Enterprise owners can enforce policies for GitHub Actions in an enterprise.

About policies for GitHub Actions in your enterprise

GitHub Actions helps members of your enterprise automate software development workflows on GitHub Enterprise Server. For more information, see "Entendendo o GitHub Actions."

If you enable GitHub Actions, any organization on sua instância do GitHub Enterprise Server can use GitHub Actions. You can enforce policies to control how members of your enterprise on GitHub Enterprise Server use GitHub Actions. By default, organization owners can manage how members use GitHub Actions. For more information, see "Desabilitar ou limitar o GitHub Actions para sua organização."

Enforcing a policy to restrict the use of GitHub Actions in your enterprise

You can choose to disable GitHub Actions for all organizations in your enterprise, or only allow specific organizations. You can also limit the use of public actions , so that people can only use local actions that exist in your enterprise.

  1. No canto superior à direita de GitHub Enterprise Server, clique na sua foto do perfil e clique em Configurações da empresa.

    Captura de tela do menu suspenso que aparece quando você clica na foto de perfil no GitHub Enterprise Server. A opção "Configurações da empresa" está realçada em um contorno laranja escuro.

  2. Na barra lateral da empresa, clique em Políticas.

  3. Em " Políticas", clique em Ações.

  4. Under "Policies", select your options.

    Se você escolher Permitir ações selecionadas, as ações na empresa serão permitidos, e haverá opções adicionais para permitir outras ações específicos. Para obter mais informações, confira "Como permitir a execução de ações selecionados".

    Note: To enable access to public actions, you must first configure sua instância do GitHub Enterprise Server to connect to GitHub.com. For more information, see "Enabling automatic access to GitHub.com actions using GitHub Connect."

  5. Click Save.

Permitindo a execução de ações selecionadas

Quando você escolhe Permitir ações selecionadas, as ações locais são permitidos e há opções adicionais para permitir outras ações específicas:

Observação: talvez você não consiga gerenciar essas configurações se a sua organização tem uma política de substituição ou é gerenciada por uma conta corporativa que tem uma política de substituição. Para obter mais informações, confira "Desabilitar ou limitar o GitHub Actions para sua organização" ou "Enforcing policies for GitHub Actions in your enterprise".

  • Permitir ações criadas pelo GitHub: você pode permitir que todas as ações criadas pelo GitHub sejam usadas por fluxos de trabalho. As ações criadas pelo GitHub estão localizadas nas organizações actions e github. Para obter mais informações, confira actions e organizações github.

  • Permitir ações do Marketplace de criadores verificados: Essa opção ficará disponível se você tiver o GitHub Connect habilitado e configurado com o GitHub Actions. Para obter mais informações, confira "Enabling automatic access to GitHub.com actions using GitHub Connect". Você pode permitir que todas as ações do GitHub Marketplace criadas por criadores verificados sejam usadas por fluxos de trabalho. Quando o GitHub verificou o criador da ação como uma organização parceira, o selo de é exibido ao lado da ação em GitHub Marketplace.

  • Permitir ações especificadas: você pode restringir os fluxos de trabalho a usar ações em organizações e repositórios específicos. Não é possível configurar mais de 1000 ações especificadas.

    Para restringir o acesso a tags ou SHAs de commit específicos de uma ação, use a mesma sintaxe usada no fluxo de trabalho para selecionar a ação.

    • Para uma ação, a sintaxe é OWNER/REPOSITORY@TAG-OR-SHA. Por exemplo, use actions/javascript-action@v1.0.1 para selecionar uma tag ou actions/javascript-action@a824008085750b8e136effc585c3cd6082bd575f para selecionar um SHA. Para obter mais informações, confira "Procurar e personalizar ações".

    Você pode usar o caractere curinga * para fazer a correspondência de padrões. Por exemplo, para permitir todas as ações em organizações que começam com space-org, especifique space-org*/*. Para permitir todas as ações em repositórios que começam com octocat, use */octocat**@*. Para saber mais sobre o uso do caractere curinga *, confira "Sintaxe de fluxo de trabalho para o GitHub Actions".

Este procedimento demonstra como adicionar ações específicos à lista de permissões.

  1. No canto superior à direita de GitHub Enterprise Server, clique na sua foto do perfil e clique em Configurações da empresa.

    Captura de tela do menu suspenso que aparece quando você clica na foto de perfil no GitHub Enterprise Server. A opção "Configurações da empresa" está realçada em um contorno laranja escuro.

  2. Na barra lateral da empresa, clique em Políticas.

  3. Em " Políticas", clique em Ações.

  4. Under "Policies", select Permitir ações selecionadas and add your required actions to the list.

Disabling repository-level self-hosted runners

Não há garantia de que executores auto-hospedados para GitHub Enterprise Server serão hospedados em máquinas virtuais efêmeras e limpas. Como resultado, eles podem ficar comprometidos por código não confiável em um fluxo de trabalho.

Da mesma forma, qualquer pessoa que possa criar um fork do repositório e abrir uma solicitação de pull (geralmente aqueles com acesso de leitura no repositório) pode comprometer o ambiente do executor auto-hospedado, incluindo a obtenção do acesso a segredos e ao GITHUB_TOKEN que, dependendo das configurações, pode permitir o acesso de gravação no repositório. Embora os fluxos de trabalho possam controlar o acesso a segredos de ambiente usando os ambientes e revisões necessários, estes fluxos de trabalho não são executados em um ambiente isolado e continuam sendo susceptíveis aos mesmos riscos quando são executados por um executor auto-hospedado.

Por esses e outros motivos, você pode decidir impedir que as pessoas criem executores auto-hospedados no nível do repositório. For more information on creating self-hosted runners at the repository level, see "Adicionar executores auto-hospedados."

By default anyone with admin access to a repository can add a self-hosted runner for the repository. The enterprise settings allow you to disable the use of repository-level self-hosted runners across all repositories in your enterprise. If you allow repository-level self-hosted runners for your enterprise, organization owners can choose to allow or prevent creation of repository-level self-hosted runners for some or all repositories in their organization. For more information see, "Desabilitar ou limitar o GitHub Actions para sua organização."

Observação: quando a criação de executores auto-hospedados no nível do repositório está desabilitada, os fluxos de trabalho ainda podem acessar executores auto-hospedados que foram configurados no nível da empresa ou da organização.

  1. No canto superior à direita de GitHub Enterprise Server, clique na sua foto do perfil e clique em Configurações da empresa.

    Captura de tela do menu suspenso que aparece quando você clica na foto de perfil no GitHub Enterprise Server. A opção "Configurações da empresa" está realçada em um contorno laranja escuro.

  2. Na barra lateral da empresa, clique em Políticas.

  3. Em " Políticas", clique em Ações.

  4. In the "Runners" section, select Disable for all organizations.

  5. Click Save to apply the change.

Enforcing a policy for artifact and log retention in your enterprise

GitHub Actions can store artifact and log files. For more information, see "Fazer o download de artefatos do fluxo de trabalho."

Por padrão, os artefatos e arquivos de registro gerados pelos fluxos de trabalho são mantidos por 90 dias antes de ser excluídos automaticamente. Você pode alterar esse período de retenção para um valor entre 1 dia e 400 dias.

Ao personalizar o período de retenção, ele só se aplica a novos artefatos e arquivos de registro e não se aplica retroativamente aos objetos existentes. Para repositórios e organizações gerenciadas, o período máximo de retenção não pode exceder o limite definido pela organização gerenciadora ou pela empresa.

  1. No canto superior à direita de GitHub Enterprise Server, clique na sua foto do perfil e clique em Configurações da empresa.

    Captura de tela do menu suspenso que aparece quando você clica na foto de perfil no GitHub Enterprise Server. A opção "Configurações da empresa" está realçada em um contorno laranja escuro.

  2. Na barra lateral da empresa, clique em Políticas.

  3. Em " Políticas", clique em Ações.

  4. Na seção "Artefato, log e configurações de cache", em Artefato e retenção de log, insira um novo valor.

  5. Clique em Salvar para aplicar a alteração.

Enforcing a policy for fork pull requests in your enterprise

You can enforce policies to control how GitHub Actions behaves for sua instância do GitHub Enterprise Server when members of your enterprise run workflows from forks.

Enforcing a policy for fork pull requests in private repositories

Se você depender do uso de forks dos seus repositórios privados, configure políticas que controlam como os usuários podem executar fluxos de trabalho em eventos pull_request. Disponíveis apenas para repositórios privados e internos, você pode definir essas configurações de política para sua empresa, organizações ou repositórios.

If a policy is enabled for an enterprise, the policy can be selectively disabled in individual organizations or repositories. If a policy is disabled for an enterprise, individual organizations or repositories cannot enable it.

  • Executar fluxos de trabalho por meio de solicitações de pull com fork – Permite que os usuários executem fluxos de trabalho por meio de solicitações de pull com fork usando um GITHUB_TOKEN com permissão somente leitura e sem acesso aos segredos.
  • Enviar tokens de gravação para fluxos de trabalho por meio de solicitações de pull – Permite que as solicitações de pull de forks usem um GITHUB_TOKEN com permissão de gravação.
  • Enviar segredos para fluxos de trabalho por meio de solicitações de pull: disponibiliza todos os segredos para a solicitação de pull.
  • Exigir aprovação para fluxos de trabalho de solicitação de pull de fork: as execuções de fluxo de trabalho em solicitações de pull de colaboradores sem permissão de gravação precisarão da aprovação de alguém com permissão de gravação antes de serem realizadas.
  1. No canto superior à direita de GitHub Enterprise Server, clique na sua foto do perfil e clique em Configurações da empresa.

    Captura de tela do menu suspenso que aparece quando você clica na foto de perfil no GitHub Enterprise Server. A opção "Configurações da empresa" está realçada em um contorno laranja escuro.

  2. Na barra lateral da empresa, clique em Políticas.

  3. Em " Políticas", clique em Ações.

  4. Em Criar fork de fluxos de trabalho de solicitação de pull, selecione suas opções.

  5. Clique em Salvar para aplicar as configurações.

Enforcing a policy for workflow permissions in your enterprise

Você pode definir as permissões padrão concedidas ao GITHUB_TOKEN. Para obter mais informações sobre GITHUB_TOKEN, confira "Autenticação automática de token". Você pode escolher um conjunto restrito de permissões como padrão ou aplicar configurações permissivas.

You can set the default permissions for the GITHUB_TOKEN in the settings for your enterprise, organizations, or repositories. If you choose a restricted option as the default in your enterprise settings, this prevents the more permissive setting being chosen in the organization or repository settings.

Qualquer pessoa com acesso de gravação em um repositório pode modificar as permissões concedidas ao GITHUB_TOKEN, adicionando ou removendo o acesso conforme necessário, pela edição da chave permissions no arquivo de fluxo de trabalho. Para obter mais informações, confira permissions.

Configuring the default GITHUB_TOKEN permissions

By default, when you create a new enterprise, GITHUB_TOKEN only has read access for the contents and packages scopes.

  1. No canto superior à direita de GitHub Enterprise Server, clique na sua foto do perfil e clique em Configurações da empresa.

    Captura de tela do menu suspenso que aparece quando você clica na foto de perfil no GitHub Enterprise Server. A opção "Configurações da empresa" está realçada em um contorno laranja escuro.

  2. Na barra lateral da empresa, clique em Políticas.

  3. Em " Políticas", clique em Ações.

  4. Em "Permissões de fluxo de trabalho", escolha se deseja que o GITHUB_TOKEN tenha acesso de leitura e gravação em todos os escopos (a configuração permissiva) ou apenas acesso de leitura nos escopos contents e packages (a configuração restrita).

  5. Click Save to apply the settings.

Preventing GitHub Actions from creating or approving pull requests

Você pode optar por permitir ou impedir que fluxos de trabalho do GitHub Actions do criem ou aprovem solicitações de pull.

By default, when you create a new enterprise, workflows are not allowed to create or approve pull requests.

  1. No canto superior à direita de GitHub Enterprise Server, clique na sua foto do perfil e clique em Configurações da empresa.

    Captura de tela do menu suspenso que aparece quando você clica na foto de perfil no GitHub Enterprise Server. A opção "Configurações da empresa" está realçada em um contorno laranja escuro.

  2. Na barra lateral da empresa, clique em Políticas.

  3. Em " Políticas", clique em Ações.

  4. Under "Workflow permissions", use the Allow GitHub Actions to create and approve pull requests setting to configure whether GITHUB_TOKEN can create and approve pull requests.

  5. Click Save to apply the settings.

Enforcing a policy for cache storage in your enterprise

Por padrão, o armazenamento em cache total usado por GitHub Actions no armazenamento externo do sua instância do GitHub Enterprise Server está limitado a um máximo de 10 GB por repositório e o tamanho máximo permitido que pode ser definido para um repositório é de 25 GB. Se você exceder o limite, GitHub salvará o novo cache, mas começará a despejar caches até que o tamanho total seja menor que o limite do repositório.

However, you can set an enterprise policy to customize both the default total cache size for each repository, as well as the maximum total cache size allowed for a repository. For example, you might want the default total cache size for each repository to be 5 GB, but also allow organization owners and repository administrators to configure a total cache size up to 15 GB if necessary.

Organization owners can set a lower total cache size that applies to each repository in their organization. People with admin access to a repository can set a total cache size for their repository up to the maximum cache size allowed by the enterprise or organization policy setting.

  1. No canto superior à direita de GitHub Enterprise Server, clique na sua foto do perfil e clique em Configurações da empresa.

    Captura de tela do menu suspenso que aparece quando você clica na foto de perfil no GitHub Enterprise Server. A opção "Configurações da empresa" está realçada em um contorno laranja escuro.

  2. Na barra lateral da empresa, clique em Políticas.

  3. Em " Políticas", clique em Ações.

  4. In the "Artifact, log, and cache settings" section, under Maximum cache size limit, enter a value, then click Save to apply the setting.

  5. In the "Artifact, log, and cache settings" section, under Default cache size limit, enter a value, then click Save to apply the setting.