Skip to main content

Configuração de exceções de regras para migrações de repositório

Ao migrar repositórios com GitHub Enterprise Importer, a avaliação de conjuntos de regras no nível da organização e da empresa pode causar falhas em pushes do Git, a menos que as Migrações de repositório sejam adicionadas à lista de bypasses com o modo Isento.

Tela de fundo

Quando você importa um repositório com GitHub Enterprise Importer, um serviço interno realiza o push dos dados Git do repositório para GitHub, agrupando referências em lote para melhorar o desempenho. Isso introduz um caso possível em que a avaliação de conjuntos de regras no nível da organização ou da empresa em relação às refs enviadas por push pode atingir o tempo limite, fazendo com que a migração do repositório falhe como um todo.

Como GitHub Enterprise Importer marca seus pushs do Git como operações de migração, você pode criar bypasses de conjunto de regras que se aplicam somente a migrações de repositório e não a outros atores. Isso evita que as avaliações de conjunto de regras atinjam o tempo limite e causem falhas de migração.

"Sempre permitir" vs. "Isentar"

As exceções de conjunto de regras vêm em dois tipos: "sempre permitido" e "isento". Suas diferenças são sutis, mas material para o caso de migrações de repositório:

ModoBehavior
Sempre permitirO conjunto de regras será avaliado e os atores selecionados serão solicitados a contornar
IsentosO conjunto de regras não será avaliado e nenhum prompt de bypass será mostrado

A distinção fundamental para fins de migrações do Git não é se o conjunto de regras será bem-sucedido ou não ("sempre permitir" seria suficiente nesse caso), mas se o conjunto de regras é avaliado (exigindo exceções "isentas").

Adicionando o bypass

As etapas a seguir explicam a configuração de bypasses necessários nos conjuntos de regras para migrações. Você precisará de permissões de administrador da organização ou administrador corporativo para editar os respectivos conjuntos de regras.

  1. Nas configurações da sua organização, expanda a seção Repositório e navegue até o Rulesets.

  2. Navegue até o conjunto de regras que você deseja atualizar. Na seção Lista de Bypasses, você verá uma lista vazia ou quaisquer bypasses já configurados.

  3. Se as migrações do repositório não estiverem presentes na lista de exceções, clique em Adicionar bypass. Uma lista suspensa é exibida com os atores de bypass disponíveis. Marque a caixa ao lado das migrações de repositório e observe que a entrada aparece em sua lista de exceções com um modo padrão de Sempre permitir.

  4. Clique no menu ··· na entrada de migrações no Repositório. Você verá duas opções de modo e uma ação de exclusão. Escolha Isentar. Não deixe o modo definido como Sempre permitir. Conforme observado acima, as exceções de Sempre permitir ainda permitem a avaliação, que é o que atinge o tempo limite. A lista de exceções agora mostra migrações de repositório com o modo Isento.

  5. Role até a parte inferior da página do conjunto de regras e clique em Salvar alterações. O bypass entra em vigor imediatamente para execuções de migração subsequentes.

Segurança e efeitos colaterais

Conforme observado acima, o GitHub Enterprise Importer usa um caminho específico para enviar dados do Git por push e as migrações de repositório ignoram apenas os destinos desse caminho. Não há nenhum caminho no qual usuários comuns ou pushes do Git para repositórios existentes possam ignorar conjuntos de regras usando o bypass das migrações de repositório.

É recomendável que todos os bypasses das migrações de repositório sejam mantidos enquanto você estiver executando as migrações. Depois que as migrações estiverem concluídas, manter o bypass em vigor não representará nenhum risco à segurança.