Skip to main content

Blocking pull request merges that contain secrets

Prevent exposed secrets from reaching protected branches by requiring contributors to resolve secret scanning alerts before merging.

Quem pode usar esse recurso?

Proprietários da organização, gerentes de segurança e membros da organização com a função de administrador

A GitHub Secret Protection é um conjunto de recursos no GitHub Advanced Security que está disponível para os seguintes usuários:

  • Usuários do plano GitHub Team
  • Organizações empresariais no GitHub Enterprise Cloud e no GitHub Enterprise Server

Observação

The rule to require secret scanning alerts to be resolved before merging is in prévia pública and subject to change.

The Require secret scanning alerts are resolved rule is available for rulesets that target branches in repositories. You can use the rule to block a pull request from merging when either of these conditions applies:

  • A secret scanning scan has not completed for the head commit of the pull request.
  • A commit in the pull request introduced an open secret scanning alert that matches a secret type selected in the ruleset.

The rule supports provider, custom, and generic patterns. It does not support AI-detected secrets.

Prerequisites

The repositories that you want to protect must have:

Creating a merge protection ruleset for a repository

  1. Em GitHub, acesse a página principal do repositório.

  2. No nome do repositório, clique em Settings. Caso não consiga ver a guia "Configurações", selecione o menu suspenso , clique em Configurações.

    Captura de tela de um cabeçalho de repositório que mostra as guias. A guia "Configurações" é realçada por um contorno laranja-escuro.

  3. Na barra lateral esquerda, em "Código e automação", clique em Conjuntos de Regras e clique em Conjuntos de Regras.

  4. Click New ruleset.

  5. Click New branch ruleset.

  6. Em "Nome do conjunto de regras", digite um nome para o conjunto de regras.

  7. Opcionalmente, para alterar o status de imposição padrão, clique em Disabled e selecione um status de imposição. 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.

  1. Under "Branch protections", select Require secret scanning alerts are resolved.
  2. Under "Secret types", select one or more types of secrets that should block merging:
    • Provider patterns
    • Custom patterns
    • Generic patterns 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.

For information about configuring bypass permissions and other ruleset settings, see Criar conjuntos de regras para um repositório.

Creating a merge protection ruleset for repositories in an organization

  1. No canto superior direito de GitHub, clique na foto de perfil e clique em Your organizations.

  2. Selecione uma organização clicando nela.

  3. No nome da organização, clique em Settings. Caso não consiga ver a guia "Configurações", selecione o menu suspenso , clique em Configurações.

    Captura de tela das guias no perfil de uma organização. A guia "Configurações" está contornada em laranja escuro.

  4. Na barra lateral, em "Código, planejamento e automação", clique em Repositório e clique em Conjuntos de Regras.

  5. Click New ruleset.

  6. Click New branch ruleset.

  7. Em "Nome do conjunto de regras", digite um nome para o conjunto de regras.

  8. Opcionalmente, para alterar o status de imposição padrão, clique em Disabled e selecione um status de imposição.

  9. Under "Target repositories", choose the repositories that the ruleset will apply to. 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.

  1. Under "Branch protections", select Require secret scanning alerts are resolved.
  2. Under "Secret types", select one or more types of secrets that should block merging:
    • Provider patterns
    • Custom patterns
    • Generic patterns 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.

For information about configuring bypass permissions and other ruleset settings, see Criar conjuntos de regras para repositórios na sua organização.

Unblocking a pull request

When this rule blocks a pull request because of open alerts, you must resolve each alert that matches the secret types selected in the ruleset. See Resolução de alertas da verificação de segredos.