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 no nível empresarial pode fazer com que os pushes do Git falhem, a menos que Migrações de repositório seja adicionada à lista de exceções com o modo Exempt.

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 apresenta um possível caso em que a avaliação de conjuntos de regras no nível da organização ou de nível empresarial em relação aos refs enviados por push pode acabar, fazendo com que a migração do repositório como um todo falhe.

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 impede que as avaliações do conjunto de regras sejam finalizadas após 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 principal distinção para as finalidades das migrações do Git não é se o conjunto de regras será aprovado ou falhará ("sempre permitir" seria suficiente nesse caso), mas se o conjunto de regras é avaliado (exigir bypasss "isentos").

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 bypass, clique em Adicionar bypass. Uma lista suspensa é exibida listando os atores de bypass disponíveis; marque a caixa ao lado das migrações do Repositório e observe que a entrada aparece em sua lista de bypass 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, Sempre permitir permite que as avaliações, que eventualmente expiram, sejam feitas. A lista de bypass agora mostra migrações do 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, GitHub Enterprise Importer usa um caminho específico para enviar dados do Git por push e as migrações do Repositório ignoram apenas os destinos desse caminho. Não há nenhum caminho em que usuários comuns ou pushes do Git para repositórios existentes possam ignorar conjuntos de regras usando o bypass de migrações do Repositório .

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