Skip to main content

Enterprise Server 3.20 está disponível no momento como versão candidata a lançamento.

Gerenciando e padronizando solicitações de pull

Siga estas etapas para gerenciar e padronizar as pull requests que os colaboradores criam em seu repositório.

Se você é um mantenedor de repositório, há várias maneiras de gerenciar e padronizar as pull requests que os colaboradores criam em seu repositório. Essas etapas podem ajudar você a garantir que as pull requests sejam revisadas pelas pessoas certas e que atendam aos padrões do repositório.

Usando modelos de solicitações de pull

Os modelos de pull request permitem personalizar e padronizar as informações que você gostaria de incluir quando alguém cria uma pull request em seu repositório. Quando você adicionar um modelo de pull request ao repositório, os contribuidores do projeto verão automaticamente o conteúdo do modelo no texto da pull request. Para saber mais, confira Criar um modelo de pull request para o seu repositório.

Você pode usar modelos de pull requests para padronizar o processo de revisão do repositório. Por exemplo, você pode incluir uma lista de tarefas que gostaria que os autores concluíssem antes de mesclar suas pull requests, adicionando uma lista de tarefas ao modelo. Para saber mais, confira Sobre as listas de tarefas.

Você pode solicitar que os colaboradores incluam uma referência de problema no corpo da pull request, para que a mesclagem da pull request feche automaticamente o problema. Para saber mais, confira Vinculando uma pull request a um problema.

Definindo proprietários de código

Você talvez queira garantir que indivíduos específicos sempre revisem as alterações em determinados códigos ou arquivos em seu repositório. Por exemplo, talvez você queira garantir que um membro da equipe de segurança sempre examine as alterações em seu arquivo de SECURITY.md ou dependabot.yml.

Você pode definir indivíduos ou equipes que você considera responsáveis pelo código ou arquivos em um repositório como proprietários do código. Quando alguém abre uma solicitação de pull que modifica os arquivos que eles possuem, os proprietários do código serão automaticamente solicitados para revisão. É possível definir proprietários de código para tipos específicos de arquivos ou diretórios, bem como para diferentes branches em um repositório. Para saber mais, confira Sobre os proprietários de código.

Usando branches protegidos

É possível usar branches protegidos para impedir que pull requests sejam mescladas em branches importantes, como main, até que determinadas condições sejam atendidas. Por exemplo, você pode exigir uma revisão de aprovação ou exigir que todas as verificações de status sejam aprovadas. Confira Sobre os branches protegidos.

Usando conjuntos de regras

Ao trabalhar em conjunto com ramificações protegidas, os conjuntos de regras permitem que você aplique políticas em todo o seu repositório, como exigir que verificações de status ou fluxos de trabalho sejam aprovados antes que uma solicitação de pull possa ser mesclada.

Os conjuntos de regras são especialmente úteis para manter a segurança do repositório quando combinados com outras verificações de segurança automatizadas. Por exemplo:

  • Você pode usar conjuntos de regras para impor a ação de revisão de dependência, um fluxo de trabalho que bloqueia pull requests que estão introduzindo dependências vulneráveis em sua base de código. Confira Como aplicar a revisão de dependências em uma organização.
  • Se o repositório estiver configurado com o code scanning, você poderá usar regras para definir a proteção de integração do code scanning, que impede que os pull requests sejam integrados se houver um alerta do code scanning de determinada severidade, ou se uma análise do code scanning ainda estiver em andamento. Confira Definir proteção contra mesclagem de verificação de código.

Utilizando conjuntos de regras de push

Com os conjunto de regras por push, é possível bloquear envios por push para um repositório privado ou interno e para 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.

As regras de push não exigem nenhum direcionamento de branch porque se aplicam a cada envio por push para o repositório.

Os conjuntos de regras por push permitem:

  • Restringir caminhos de arquivo: impedir que confirmações que incluam alterações em caminhos de arquivo especificados sejam enviadas.

    É possível usar a sintaxe fnmatch para essa finalidade. Por exemplo, uma segmentação de restrição test/demo/**/* impede qualquer envio por push para arquivos ou pastas no diretório test/demo/. Uma segmentação de restrição test/docs/pushrules.md impede envios por push especificamente para o arquivo pushrules.md no diretório test/docs/. Para saber mais, confira Criar conjuntos de regras para um repositório.

  • Restringir o comprimento do caminho do arquivo: impedir que confirmações que incluam caminhos de arquivo que excedam um limite de caracteres especificado sejam enviadas.

  • Restringir extensões de arquivo: impedir que confirmações que incluam arquivos com extensões de arquivo especificadas sejam enviadas.

  • Restringir o tamanho do arquivo: impedir que confirmações que excedam um limite de tamanho de arquivo especificado sejam enviadas.

Sobre os conjuntos de regras por push para repositórios bifurcados

As regras de push se aplicam a toda a rede de bifurcação de um repositório, garantindo que cada ponto de entrada do repositório esteja protegido. Por exemplo, se você bifurcar um repositório que tenha conjuntos de regras por push habilitados, os mesmos conjuntos de regras por push também se aplicarão ao repositório bifurcado.

Para um repositório bifurcado, as únicas pessoas que têm permissões de bypass para uma regra de push são as pessoas que têm permissões de bypass no repositório raiz.

Para saber mais, confira Sobre os conjuntos de regras.

Usando ferramentas automatizadas para revisar o estilo do código

Use ferramentas automatizadas, como linters, nas pull requests do repositório para manter o estilo consistente e tornar o código mais compreensível. O uso de ferramentas automatizadas para detectar problemas menores, como erros de digitação ou estilo, deixa mais tempo para os revisores se concentrarem na substância de uma pull request.

Por exemplo, você pode usar GitHub Actions para configurar linters de código que possam ser executados em pull requests como parte do fluxo de trabalho de integração contínua (CI). Para saber mais, confira Integração contínua.