Introdução
Note
Atualmente, os conjuntos de regras de código empresariais estão em versão prévia pública e estão sujeitos a alterações.
Você pode criar conjuntos de regras para controlar como os usuários podem interagir com o código nos repositórios da empresa. Você poderá:
- Crie um conjunto de regras de branch ou tag para controlar coisas como quem pode efetuar push de commits para determinado branch, como os commits precisam ser formatados ou quem pode excluir ou renomear uma tag.
- Crie um conjunto de regras de push para bloquear envios por push para um repositório privado ou interno e toda a rede de fork do repositório. Os conjuntos de regras por push permitem bloquear envios com base em extensões de arquivo, comprimentos de caminho de arquivo, caminhos de arquivo e pasta e tamanhos de arquivo.
Para saber mais, confira Sobre os conjuntos de regras.
Importar conjuntos de regras pré-criados
Para importar um conjunto de regras predefinido criado pela GitHub, confira github/ruleset-recipes
.
Você pode importar um conjunto de regras existente usando um arquivo JSON. Isso pode ser útil se você quiser aplicar o mesmo conjunto de regras a vários repositórios ou organizações. Para saber mais, confira Como gerenciar conjuntos de regras para repositórios na sua organização.
Como definir onde meu conjunto de regras se aplica?
Os conjuntos de regras permitem que você defina com flexibilidade as organizações, os repositórios e os branches a que deseja que as regras sejam aplicadas.
- Para definir organizações como alvo, você pode selecionar todas elas, escolher em uma lista ou definir um padrão dinâmico para os nomes das organizações usando a sintaxe
fnmatch
. Para obter detalhes da sintaxe, confira Criar conjuntos de regras para um repositório. - Nessas organizações, você pode definir como alvo todos os repositórios ou definir uma lista dinâmica por propriedade personalizada. Confira Como gerenciar propriedades personalizadas para repositórios na sua organização.
- Dentro dos repositórios, você pode definir como alvo determinados branches ou tags: todos os branches, o branch padrão ou uma lista dinâmica usando a sintaxe
fnmatch
.
Quando você cria um conjunto de regras voltado para branches em um repositório, os administradores do repositório não podem mais renomear branches ou alterar o branch padrão no repositório de destino. Eles ainda poderão criar e excluir branches se tiverem as permissões apropriadas.
Como posso controlar o formato dos commits?
Em conjuntos de regras de branch ou de tag, você pode adicionar uma regra que restringe o formato dos metadados de commit, como a mensagem do commit ou o email do autor.
Se você selecionar Must match a given regex pattern restriction, poderá usar a sintaxe de expressão regular para definir padrões a que os metadados devem ou não corresponder. Para obter detalhes e exemplos da sintaxe, confira Criar conjuntos de regras para um repositório.
Usar status de imposição de conjunto de regras
Ao criar ou editar seu conjunto de regras, você pode usar status de imposição para configurar como seu conjunto de regras será imposto.
Você pode selecionar qualquer um dos seguintes status de imposição para seu conjunto de regras.
- Active: seu conjunto de regras será imposto após a criação.
- Evaluate: seu conjunto de regras não será aplicado, mas você poderá monitorar quais ações violariam ou não as regras na página "Insights de regras".
- Disabled: seu conjunto de regras não será imposto ou avaliado.
Usar o modo "Avaliar" é uma ótima opção para testar seu conjunto de regras sem impô-lo. É possível usar a página "Insights da regra" para ver se a contribuição teria violado a regra. Para saber mais, confira Gerenciar conjuntos de regras para um repositório.
Criar um conjunto de regras de branch ou tag
-
No canto superior direito do GitHub, selecione sua foto de perfil.
-
Dependendo do ambiente, selecione Sua empresa ou Suas empresas e escolha a empresa que deseja ver.
-
Do lado esquerdo da página, na barra lateral da conta empresarial, clique em Políticas.
-
Em "Policies", clique em Code.
-
Clique em Novo conjunto de regras.
-
Para criar um conjunto de regras direcionado a branches, clique em Novo conjunto de regras de branch. Como alternativa, para criar um conjunto de regras segmentando tags, clique em Novo conjunto de regras de tags.
-
Em "Nome do conjunto de regras", digite um nome para o conjunto de regras.
-
Opcionalmente, para alterar o status de imposição padrão, clique em Desabilitado e selecione um status de imposição. Para obter mais informações sobre os status de imposição, confira Sobre os conjuntos de regras.
Conceder permissões de bypass para o conjunto de regras de branch ou tag
Você pode conceder a determinadas funções, equipes ou aplicativos permissões de bypass, bem como a capacidade de aprovar solicitações de bypass para seu conjunto de regras.
Os seguintes são qualificados para acesso de bypass:
- Administradores de repositório, proprietários da organização e proprietários corporativos
- A função de manutenção ou gravação, ou as chaves de implantação.
-
Para conceder permissões de bypass para o conjunto de regras, na seção "Bypass list", clique em Add bypass.
-
Na caixa de diálogo modal "Adicionar bypass" exibida, procure a função, a equipe ou o aplicativo ao qual você deseja conceder permissões de bypass, selecione a função, a equipe ou o aplicativo na seção "Sugestões" e clique em Adicionar selecionados.
-
Opcionalmente, para conceder bypass a um ator sem permitir que ele envie diretamente para um repositório, à direita de "Sempre permitir", clique em e, em seguida, clique em Somente para pull requests.
O ator selecionado agora é obrigado a abrir uma pull request para fazer alterações em um repositório, criando uma trilha digital clara com suas alterações no pull request e no log de auditoria. Em seguida, o ator pode optar por ignorar quaisquer proteções de branch e mesclar essa pull request.
Escolhendo quais organizações direcionar na empresa
Selecione todas as organizações, faça uma seleção entre as organizações existentes ou defina uma lista dinâmica por nome. Se você usar o Enterprise Managed Users, também poderá optar por definir como destino todos os repositórios de propriedade dos usuários de sua empresa.
Se você definir uma lista dinâmica, adicionará um ou mais padrões de nomenclatura usando a sintaxe fnmatch
. Por exemplo, a cadeia de caracteres *open-source
corresponderia a qualquer organização com um nome terminado em open-source
. Para obter detalhes da sintaxe, confira Criar conjuntos de regras para um repositório.
Escolhendo quais repositórios direcionar em sua empresa
Nas organizações selecionadas, você pode definir como alvo todos os repositórios ou definir uma lista dinâmica por propriedade personalizada. Confira Como gerenciar propriedades personalizadas para repositórios na sua organização.
Escolher quais branches ou tags direcionar
Para direcionar branches ou tags na seção "Branches de destino" ou "Tags de destino", selecione Adicionar um destino e escolha como deseja incluir ou excluir branches ou tags. Use a sintaxe fnmatch
para incluir ou excluir branches ou tags com base em um padrão. Para obter mais informações, confira Como usar a sintaxe de fnmatch
.
Você pode adicionar vários critérios de direcionamento ao mesmo conjunto de regras. Por exemplo, você pode incluir o branch padrão, incluir os branches que correspondam ao padrão *feature*
e excluir especificamente um branch que corresponda ao padrão not-a-feature
.
Selecionar proteções de branch ou tag
Na seção "Proteções de branch" ou "Proteções de tag", selecione as regras que deseja incluir no conjunto de regras. Ao selecionar uma regra, você poderá inserir configurações adicionais para ela. Para obter mais informações sobre as regras, confira Regras disponíveis para conjuntos de regras.
Adicionar restrições de metadados
As restrições de metadados devem se destinar a aumentar a consistência entre os commits no seu repositório. Elas não se destinam a substituir medidas de segurança, como exigir uma revisão de código por meio de solicitações de pull.
Note
Se você fizer uma mesclagem squash para uma ramificação, os commits nessa ramificação devem atender a todos os requisitos de metadados para a ramificação base.
-
Para adicionar uma regra para controlar metadados de commit ou nomes de branches, na seção “Restrições” ao criar ou editar um conjunto de regras, selecione Restringir metadados de commit ou Restringir nomes de branches.
-
Defina as configurações para a restrição e, em seguida, clique em Adicionar. Você pode adicionar várias restrições ao mesmo conjunto de regras.
-
Para corresponder a um determinado padrão regex, na lista suspensa "Requisito", selecione Deve corresponder a um determinado padrão regex.
Para a maioria dos requisitos, como "Precisa começar com um padrão correspondente", o padrão inserido é interpretado literalmente e não há suporte para curingas. Por exemplo, o caractere
*
representa apenas o caractere literal*
.Para padrões mais complexos, você pode selecionar "Precisa corresponder a determinado padrão regex" ou "Não precisa corresponder a determinado padrão regex" e usar a sintaxe de expressão regular para definir o padrão correspondente. Para obter mais informações, confira Sobre expressões regulares para metadados de commit."
Qualquer pessoa que visualizar os conjuntos de regras de um repositório poderá ver a descrição fornecida por você.
-
Opcionalmente, antes de aplicar o conjunto de regras com as restrições de metadados, escolha o status de imposição “Avaliar” para o conjunto de regras, a fim de testar os efeitos de todas as restrições de metadados sem afetar os colaboradores. Para obter mais informações sobre as restrições de metadados, confira Regras disponíveis para conjuntos de regras.
Finalizar o conjunto de regras de branch ou tag e próximas etapas
Para concluir a criação do conjunto de regras, clique em Criar. Se o status de imposição do conjunto de regras for definido como "Ativo", o conjunto de regras entrará em vigor imediatamente.
Você pode exibir insights para o conjunto de regras para ver como as regras estão afetando seus colaboradores. Se o status de imposição estiver definido como "Avaliar", você poderá ver quais ações teriam passado ou falhado se o conjunto de regras estivesse ativo. Para obter mais informações sobre insights para conjuntos de regras, confira Gerenciar conjuntos de regras para um repositório.
Como criar um conjunto de regras por push
Note
Esse conjunto de regras imporá restrições de push para toda a rede de fork desse repositório.
É possível criar um conjunto de regras de push para repositórios privados ou internos da empresa.
- No canto superior direito do GitHub, selecione sua foto de perfil.
- Dependendo do ambiente, selecione Sua empresa ou Suas empresas e escolha a empresa que deseja ver.
- Na barra lateral esquerda, na seção "Policies", clique em Code.
- Clique em Novo conjunto de regras.
- Clique em New push ruleset.
- Em "Nome do conjunto de regras", digite um nome para o conjunto de regras.
- Opcionalmente, para alterar o status de imposição padrão, clique em Disabled e selecione um status de imposição. Para obter mais informações sobre os status de imposição, confira Sobre os conjuntos de regras
Conceder permissões de bypass para seu conjunto de regras por push
Note
As permissões de bypass para conjuntos de regras por push que têm como meta um repositório serão herdadas por toda a rede de bifurcação desse repositório. Isso significa que os únicos usuários que podem ignorar esse conjunto de regras para qualquer repositório em toda a rede de bifurcação desse repositório são os usuários que podem ignorar esse conjunto de regras no repositório raiz.
Você pode conceder a determinadas funções, equipes ou aplicativos permissões de bypass, bem como a capacidade de aprovar solicitações de bypass para seu conjunto de regras. Os seguintes são qualificados para acesso de bypass:
- Administradores de repositório, proprietários da organização e proprietários corporativos
- A função de manutenção ou gravação, ou as chaves de implantação
- Para conceder permissões de bypass para o conjunto de regras, na seção "Bypass list", clique em Add bypass.
- Na caixa de diálogo modal "Adicionar bypass" exibida, procure a função, a equipe ou o aplicativo ao qual você deseja conceder permissões de bypass, selecione a função, a equipe ou o aplicativo na seção "Sugestões" e clique em Adicionar selecionados.
Escolhendo quais organizações direcionar na empresa
Selecione todas as organizações, faça uma seleção entre as organizações existentes ou defina uma lista dinâmica por nome. Se você usar o Enterprise Managed Users, também poderá optar por definir como destino todos os repositórios de propriedade dos usuários de sua empresa.
Se você definir uma lista dinâmica, adicionará um ou mais padrões de nomenclatura usando a sintaxe fnmatch
. Por exemplo, a cadeia de caracteres *open-source
corresponderia a qualquer organização com um nome terminado em open-source
. Para obter detalhes da sintaxe, confira Criar conjuntos de regras para um repositório.
Escolhendo quais repositórios direcionar em sua empresa
Nas organizações escolhidas, você pode definir como alvo todos os repositórios ou definir uma lista dinâmica usando propriedades personalizadas. Confira Como gerenciar propriedades personalizadas para repositórios na sua organização.
Selecionar proteções push
É possível bloquear envios por push para este repositório e toda a rede de bifurcação desse repositório com base em extensões de arquivo, comprimentos de caminho de arquivo, caminhos de arquivo e pasta e tamanhos de arquivo.
Qualquer proteção por push que você configurar bloqueará pushes nesse repositório e em toda a rede de bifurcação desse repositório.
-
Em "Proteções por push", clique nas restrições que você deseja aplicar. Em seguida, preencha os detalhes das restrições selecionadas.
Para restrições de caminho de arquivo, é possível usar caminhos parciais ou completos. É possível usar a sintaxe
fnmatch
para essa finalidade. Por exemplo, uma segmentação de restriçãotest/demo/**/*
impede qualquer envio por push para arquivos ou pastas no diretóriotest/demo/
. Uma segmentação de restriçãotest/docs/pushrules.md
impede envios por push especificamente para o arquivopushrules.md
no diretóriotest/docs/
. Para saber mais, confira Criar conjuntos de regras para um repositório.
Finalizar seu conjunto de regras por push e próximas etapas
Para concluir a criação do conjunto de regras, clique em Criar. Se o status de imposição do conjunto de regras for definido como "Ativo", o conjunto de regras entrará em vigor imediatamente.
Você pode exibir insights para o conjunto de regras para ver como as regras estão afetando seus colaboradores. Se o status de imposição estiver definido como "Avaliar", você poderá ver quais ações teriam passado ou falhado se o conjunto de regras estivesse ativo. Para obter mais informações sobre insights para conjuntos de regras, confira Gerenciar conjuntos de regras para um repositório.