Note
As políticas de repositório estão em versão prévia pública e estão sujeitas a alterações.
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.
Tip
Se você for proprietário da empresa, poderá criar uma política de repositório que se aplique a várias organizações. Confira Controlando como as pessoas usam repositórios em sua empresa.
Exemplos
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.
Como definirei repositórios como alvo?
É recomendável usar políticas de repositório juntamente com propriedades de repositório personalizadas. Ao adicionar propriedades personalizadas a repositórios, você poderá definir de maneira flexível os repositórios que são alvo de uma política.
Por exemplo, você pode adicionar uma propriedade para marcar repositórios que contêm dados de produção ou outras informações confidenciais e impedir que qualquer pessoa torne esses repositórios públicos.
Para criar e definir propriedades personalizadas, confira "Como gerenciar propriedades personalizadas para repositórios na sua organização".
Como alternativa às propriedades personalizadas, você pode escolher entre uma lista de repositórios ou usar a sintaxe fnmatch
para definir como alvo repositórios com determinados padrões de nomenclatura.
Interação com outras políticas
Algumas das restrições disponíveis são duplicatas de políticas que você pode ter definido na página "Member privileges" nas configurações da organização ou da empresa.
A criação de uma política de repositório não substitui suas políticas existentes de "privilégio de membro". Em vez disso, as políticas são aditivas, de modo que a versão mais restritiva de uma política se aplica. Isso se aplica tanto a políticas de privilégio de membro quanto a outras políticas de repositório que as pessoas criaram no nível da empresa ou da organização.
Em comparação com as políticas de privilégio de membro, as políticas de repositório têm várias vantagens:
- Elas oferecem uma definição mais flexível de organizações e repositórios alvo.
- Elas permitem que você dê a determinados atores a opção de ignorar as políticas.
Criando uma política de repositório
- No canto superior direito de GitHub, selecione sua foto de perfil e selecione Suas organizações.
- Ao lado da organização, clique em Configurações.
- Do lado esquerdo da página, na barra lateral, clique em Policies.
- Em "Policies", clique em Repository.
- Clique em Nova política.
- Configure a nova política e clique em Create. Para obter ajuda, consulte as subseções a seguir.
Nome de política
Use algo descritivo para indicar a finalidade da política. Por exemplo: Prevent public repos on production
.
Status da imposição
Se não quiser que a política seja imposta quando ela for criada, defina como "Disabled". Caso contrário, defina como "Active".
Lista de permissões
Escolha quais funções e equipes podem ignorar as restrições na política.
Destinos
Escolha a quais repositórios da organização a política se aplica. Você pode selecionar todos os repositórios, fazer uma seleção de repositórios existentes ou criar uma regra dinâmica por nome ou propriedade personalizada para repositórios atuais e futuros.
Se você definir uma lista dinâmica por nome, adicionará um ou mais padrões de nomenclatura usando a sintaxe fnmatch
.
- Por exemplo, a cadeia de caracteres
*open-source
corresponderia a qualquer repositório com um nome terminado emopen-source
. Para obter detalhes da sintaxe, confira Criar conjuntos de regras para um repositório. - Opcionalmente, você pode impedir que qualquer pessoa fora da lista de permissões renomeie os repositórios selecionados. Como alternativa, você pode controlar o formato de nomes na seção "Policies".
Políticas
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.