Skip to main content

Defining policies for repositories in your enterprise

Enforce repository policies across your enterprise using custom properties and targeting rules.

Observação

As políticas de repositório estão em versão prévia pública e estão sujeitas a alterações. Você pode ter até 75 conjuntos de regras e políticas no total por organização e até 75 conjuntos de regras e políticas no total por empresa.

Para controlar os principais eventos no ciclo de vida dos repositórios, como quem pode criar ou excluí-los, você pode criar uma política de repositório. Uma política de repositório é uma coleção de restrições que oferece controle flexível sobre quais usuários são afetados e quais repositórios são alvos.

Em uma política de repositório, você pode restringir:

  • Quais visibilidades são permitidas para novos repositórios e alterações de visibilidade.
  • Quem pode criar repositórios.
  • Quem pode excluir repositórios.
  • Quem pode transferir repositórios para fora da organização.
  • Como as pessoas podem nomear os repositórios.

Examples

Você pode usar uma política de repositório para fazer coisas como:

  • Garantir que todos os novos repositórios usem uma determinada convenção de nomenclatura, como kebab-case.
  • Impedir exclusões de repositório, exceto por administradores da organização.
  • Permitir que repositórios públicos sejam criados apenas na organização de "código aberto" em sua empresa.
  • Impedir que repositórios públicos sejam alterados para privados para evitar a perda potencial de metadados.

Creating a repository policy

  1. No canto superior direito do GitHub, selecione sua imagem de perfil.
  2. Dependendo do ambiente, selecione Sua empresa ou Suas empresas e escolha a empresa que deseja ver.
  3. Na parte superior da página, clique em Policies.{ % else %}No lado esquerdo da página, na barra lateral da conta empresarial, clique em Policies.
  4. Under "Policies", click Repository.
  5. Click New policy.
  6. Configure your new policy, then click Create. For help, consult the following subsections.

Policy name

Use something descriptive to communicate the purpose of the policy. Organization owners can view the policy, so good names help add clarity. For example: Prevent public repos on production.

Enforcement status

Se não quiser que a política seja imposta quando ela for criada, defina como "Disabled". Caso contrário, defina como "Active".

Allow list

Escolha quais funções podem ignorar as restrições nesta política.

Targets

Choose which organizations and repositories the policy applies to.

Target organizations

Select all organizations, choose a selection of existing organizations, or set a dynamic list by name. If you use Enterprise Managed Users, you can also choose to target all repositories owned by users in your enterprise.

If you set a dynamic list, you'll add one or more naming patterns using fnmatch syntax. For example, the string *open-source would match any organization with a name that ends with open-source. For syntax details, see Criar conjuntos de regras para um repositório.

Target repositories

Choose which repositories (current or future) to target in the selected organizations. You can select all repositories or set a dynamic list by custom property.

Policies

Escolha quais restrições são incluídas. Quando a política está ativa, restrições se aplicam a todos os repositórios de destino, mas podem ser ignoradas por usuários ou equipes na lista de permissões.

Se você escolher a política "Restrict names", precisará usar a sintaxe de expressão regular para definir um padrão a que os nomes do repositório devem ou não corresponder. Por exemplo, um padrão para impor a nomenclatura kebab-case seria semelhante a ^([a-z][a-z0-9]*)(-[a-z0-9]+)*$.

  • Os padrões dão suporte à sintaxe RE2. Consulte o guia de sintaxe do Google.
  • Para validar suas expressões, clique em Test pattern e insira um padrão e um valor de teste.

Delegating bypass of policies

Observação

O bypass delegado de políticas de repositório estão em versão prévia pública e estão sujeitas a alterações.

O bypass delegado para políticas de repositório permite controlar quem pode ignorar políticas de repositório no caso de exclusões e alterações de visibilidade de repositórios.

Com o bypass delegado, os administradores do repositório precisam enviar uma solicitação para alterar a visibilidade do repositório ou exclui-lo. A solicitação é enviada a um grupo designado de revisores, que aprovam ou negam a solicitação para ignorar políticas do repositório.

Se a solicitação para ignorar políticas do repositório for aprovada, a alteração da solicitação será concluída imediatamente. Se a solicitação for negada, a alteração solicitada não será feita, mas poderá ser solicitada novamente.

Para configurar o bypass delegado, os proprietários da empresa ou da organização criam primeiro uma "lista de bypass". A lista de desvio inclui funções e equipes específicas, como administradores de equipe ou de repositório, que supervisionam as solicitações de bypass de políticas do repositório. Para saber mais, confira Controlando como as pessoas usam repositórios em sua empresa.

Next steps

Create rulesets to consistently govern important branches in your enterprise's repositories. See Protecting branches in your enterprise with rulesets.