Permissões do GitHub para prestadores devem expirar
Defina permissões do GitHub para prestadores por tarefa, proteja a main, separe a implantação, guarde provas e revogue o acesso no prazo.

Equipes externas de remediação devem receber a função mais restrita do GitHub que permita concluir a tarefa em questão, e essa função deve ter uma data de expiração. Na maioria dos trabalhos, isso significa Read durante o diagnóstico, Write durante o reparo, nenhuma aprovação direta de produção e uma janela curta com Admin apenas quando uma configuração específica do repositório precisar mudar.
Um pedido vago de «acesso ao GitHub» pode transformar um reparo de dois dias em autoridade por tempo indeterminado sobre código-fonte, segredos, workflows, releases e configurações do repositório. Já vi proprietários concederem Admin porque não sabiam qual função menor seria suficiente e depois descobrirem que ninguém havia registrado o que mudou nem se lembrado de remover a conta. A abordagem mais segura é simples: divida o trabalho em fases, associe cada permissão a um resultado, mantenha branches protegidas entre a equipe de reparo e a produção e agende a revogação antes de enviar o convite.
Isso importa ainda mais em aplicações geradas por IA. Uma equipe talvez precise rastrear autenticação quebrada, segredos expostos, injeção de SQL, módulos emaranhados e uma implantação que só funciona no notebook de uma pessoa. Esses problemas justificam acesso próximo ao código. Eles não justificam automaticamente o controle de cobrança, colaboradores, regras de branch, webhooks, ambientes ou credenciais de produção.
Associe permissões a tarefas, não a cargos
As funções do GitHub descrevem autoridade, não confiabilidade. Um engenheiro externo respeitado ainda pode cometer um erro prejudicial com uma função ampla demais, enquanto uma função bem delimitada reduz o custo tanto dos erros honestos quanto do comprometimento de uma conta.
A documentação Repository roles for an organization do GitHub ordena as funções padrão como Read, Triage, Write, Maintain e Admin. As próprias descrições são úteis: Read é recomendada para quem precisa ver ou discutir um projeto, Triage acrescenta o gerenciamento de issues e pull requests sem acesso de escrita, Write permite contribuir ativamente com código, Maintain cobre o gerenciamento do repositório sem algumas ações sensíveis ou destrutivas e Admin fornece acesso completo. O erro está em tratar essa escala como uma hierarquia profissional. Ela é um mapa de capacidades.
Converta o trabalho em entregas antes de atribuir qualquer função:
- Um relatório de diagnóstico, inventário de dependências ou mapa de arquitetura normalmente precisa de Read.
- A classificação de issues, o acompanhamento de reproduções e a coordenação de pull requests podem precisar de Triage.
- Commits de reparo e pull requests precisam de Write, a menos que a equipe trabalhe por meio de um fork.
- Mudanças em regras de branch, colaboradores, ambientes ou configurações de segurança podem precisar de Admin por um período curto.
- A aprovação de uma release de produção deve permanecer com um responsável interno, mesmo quando a equipe externa prepara a release.
Registre esse mapeamento. Um pequeno contrato de acesso é mais útil do que um parágrafo em uma declaração de trabalho, porque um responsável pode compará-lo com as configurações do GitHub:
repository: acme/example-app
team: external-remediation
phase_1:
role: read
output: diagnosis-and-repair-plan
phase_2:
role: write
branches: repair/*
output: reviewed-pull-requests
admin_window:
allowed_changes:
- branch-protection
- deployment-environment
approved_by: internal-repository-owner
ends_at: 2026-08-15T18:00:00Z
revocation_owner: engineering-director
Esse arquivo não impõe nada sozinho. Ele evita a falha comum em que o escopo muda em uma conversa, mas o acesso não acompanha a mudança. Se a equipe descobrir que precisa de uma capacidade nova, atualize o registro, obtenha a aprovação e só então mude a função.
Se o repositório pertencer a uma organização, adicione pessoas identificadas como colaboradores externos ou use uma estrutura adequada da organização controlada pelos seus próprios administradores. Não compartilhe uma única conta do fornecedor. Identidades individuais dão sentido às revisões, aos eventos de auditoria e à revogação. Exija autenticação de dois fatores no nível da organização quando sua configuração permitir e confirme que cada pessoa aceitou com a própria identidade.
Read basta para uma auditoria
Uma auditoria de código séria não exige acesso para enviar alterações. O acesso Read a um repositório privado permite que a equipe inspecione e clone o código, estude o histórico de commits, revise branches e participe de discussões normais. Isso cobre a primeira etapa da maioria dos trabalhos de remediação.
A auditoria deve produzir evidências antes que alguém edite o código: um mapa dos pontos de entrada, uma lista de fluxos com falha, uma avaliação da exposição de segredos, uma revisão de dependências e build e uma sequência de reparo proposta. A equipe também pode precisar de acesso de leitura a repositórios relacionados que contenham pacotes compartilhados ou definições de infraestrutura. Conceda esses repositórios explicitamente, em vez de dar uma associação ampla à organização.
Read também tem consequências. Um colaborador pode criar um clone local, e revogar o acesso ao GitHub não recupera essa cópia. A documentação do GitHub sobre gerenciamento do acesso individual a repositórios afirma que a remoção corta o acesso ao repositório e exclui forks privados nos casos abrangidos, mas os clones locais permanecem. O tratamento contratual do código confidencial, a exclusão na saída e uma lista de dispositivos aprovados ficam, portanto, fora dos controles de função do GitHub. Não finja que um botão de revogação apaga dados já copiados.
A fase de auditoria também é o momento certo para controlar a exposição de segredos. O acesso Read ao repositório não significa que a equipe precisa de senhas de banco de dados, credenciais de nuvem, chaves de pagamento ou exportações de clientes. Segredos não deveriam estar no repositório. Se a auditoria encontrar uma credencial em um commit, presuma que o valor pode ter sido copiado, troque-o no sistema que o emitiu e retire-o do uso ativo. Reescrever o histórico do Git sem trocar a credencial corrige a aparência, não a exposição.
Read pode se tornar insuficiente quando o diagnóstico depende de logs privados de build, detalhes de alertas de segurança ou sistemas externos. Trate cada item como uma solicitação separada. A matriz de funções do GitHub indica que o acesso a algumas listas de alertas de segurança começa com Write, enquanto resultados de análise de código anexados a pull requests têm outra visibilidade. Não amplie toda a função do repositório sem identificar a visualização exata que falta. Muitas vezes, um responsável interno pode exportar o alerta necessário, reproduzir a falha ou compartilhar a tela de uma configuração.
Uma boa auditoria termina com uma verificação de permissões. A equipe de remediação deve nomear os arquivos que espera alterar, as branches que criará, as verificações que precisa executar e qualquer configuração do repositório que bloqueie o plano. Só então Read deve passar a Write. Se o relatório não explicar por que o código precisa ser modificado, mais acesso não melhorará o relatório.
Triage não autoriza reparos
Triage ajuda a administrar a fila de trabalho, mas não substitui Write. Ela permite que um coordenador externo gerencie issues, rótulos, marcos, discussões e partes do tratamento de pull requests sem permissão para enviar código.
Isso faz de Triage uma função razoável para um líder de projeto que reproduz bugs, remove duplicatas, atribui trabalho, pede evidências ausentes e mantém o proprietário informado. Ela também é útil quando uma equipe de reparo separada contribui por forks e um líder externo precisa organizar as pull requests recebidas. A função separa a coordenação da modificação do código-fonte.
As equipes muitas vezes entendem mal a palavra «triage» e presumem que ela inclui pequenas correções. Não inclui. Se uma pessoa precisa criar uma branch no repositório privado, enviar um commit, atualizar um workflow ou fazer merge de um reparo aprovado, avalie Write. Pedir repetidamente que um engenheiro interno copie patches do fornecedor para uma branch cria uma procedência ruim e desperdiça tempo de revisão. Mantenha a pessoa em uma função real de coordenação ou conceda a função correspondente à tarefa de programação.
Triage não é automaticamente mais segura do que Read para todo auditor. Ela acrescenta a capacidade de alterar como o trabalho é apresentado e priorizado. Um coordenador mal-intencionado ou descuidado pode fechar issues, alterar rótulos ou atrapalhar a fila de revisão sem tocar no código-fonte. Conceda essa função apenas quando o gerenciamento de issues fizer parte da entrega, não porque ela parece uma opção intermediária.
Não use Triage para compensar a falta de um processo. Decida quem pode fechar descobertas de segurança, quem aceita uma correção e quem comunica mudanças de escopo. Uma equipe externa pode marcar um item como pronto para verificação interna sem ter permissão para declarar o próprio trabalho aceito. Essa distinção mantém o registro honesto quando o prazo aperta.
Em um trabalho curto, Read com comentários normais em pull requests pode bastar na fase de diagnóstico. Acrescente Triage quando o volume de descobertas exigir o gerenciamento ativo da fila. Remova-a junto com o restante do acesso da equipe ao repositório no final, pois uma conta antiga de coordenador ainda expõe discussões privadas e código.
Write deve ficar nas branches de reparo
Write é a função normal para engenheiros que precisam reparar código dentro do seu repositório. Ela permite contribuição ativa, então combine-a com branches protegidas, revisão de pull requests, verificações automatizadas e uma proibição explícita de credenciais compartilhadas de longa duração.
Write deve abrir um caminho para propor alterações, não um caminho para redefinir a aceitação. Engenheiros externos podem criar branches repair/*, enviar commits, abrir pull requests, responder às revisões e atualizar a correção proposta. Responsáveis internos devem aprovar mudanças que afetem autenticação, autorização, migração de dados, pagamentos, workflows de build ou infraestrutura de produção.
A política de branch funcional mais simples tem quatro partes:
- Exija pull requests antes que alterações cheguem à branch padrão.
- Exija pelo menos uma aprovação interna para caminhos de alto impacto.
- Exija que as verificações de build, testes, lint e segurança do repositório sejam aprovadas.
- Bloqueie pushes forçados e a exclusão de branches protegidas de release.
Adicione proprietários de código em áreas onde uma alteração aparentemente pequena pode mudar a autoridade de produção. Um arquivo compacto poderia ser assim:
/.github/workflows/ @acme/platform-owners
/auth/ @acme/security-owners
/db/migrations/ @acme/data-owners
/infra/ @acme/platform-owners
Um arquivo CODEOWNERS identifica revisores, mas só se torna uma barreira quando a proteção de branch ou um conjunto de regras exige revisão dos proprietários do código. Sem essa aplicação, o arquivo é apenas uma indicação de encaminhamento. Essa é uma diferença que as equipes costumam confundir, e a consequência é uma pull request que parece governada enquanto o GitHub ainda permite o merge sem o proprietário indicado.
Evite dar à equipe externa um token de acesso pessoal compartilhado. Cada engenheiro deve usar uma conta individual, e a automação deve usar uma GitHub App de escopo restrito ou um token pertencente à sua organização quando a automação for realmente necessária. Remover usuários fica muito mais simples quando commits, aprovações e atividade da API apontam para atores separados.
Write pode expor mais do que a modificação do código. Arquivos de workflow merecem atenção especial porque uma pessoa que consegue alterar um fluxo de automação pode influenciar o que é executado em um runner ou como as credenciais disponíveis são usadas. Mantenha mudanças em workflows atrás de revisão interna, restrinja as permissões padrão de GITHUB_TOKEN ao que cada tarefa exige e nunca trate a aprovação de um workflow como prova de que a edição é segura.
Não permita que a conveniência do reparo apague o histórico. Proíba pushes forçados em branches de reparo compartilhadas, exija autoria clara dos commits e peça que a equipe explique mudanças sensíveis para a segurança no corpo da pull request. Compactar commits no merge pode ser aceitável, mas a pull request precisa conservar a discussão e as verificações que justificaram o resultado.
Admin é uma exceção curta e controlada
Admin deve ser uma exceção temporária para uma tarefa específica de configuração, não a função inicial de um trabalho de remediação. Ela abrange ações sensíveis e destrutivas, incluindo gerenciamento de acesso e regras do repositório, que um reparo comum de código não exige.
Há casos legítimos. A proteção de branch existente pode estar ausente ou mal configurada. Um ambiente de implantação pode precisar de um revisor ou de uma restrição de branch. Talvez seja necessário ativar configurações de segurança. Um webhook ou uma chave de implantação pode fazer parte da falha. Algumas dessas mudanças exigem Admin nas funções padrão do GitHub, dependendo do recurso e do plano.
A resposta errada é manter Admin durante todo o reparo porque várias configurações talvez precisem de atenção. Use uma janela de elevação:
- O líder externo envia a configuração atual exata, a configuração proposta, o motivo e a reversão.
- Um proprietário interno do repositório aprova a mudança e registra os horários de início e término.
- Um engenheiro externo identificado recebe Admin, enquanto os outros membros da equipe mantêm suas funções atuais.
- O responsável interno observa ou revisa a mudança de configuração e captura evidências.
- O proprietário devolve o engenheiro a Write imediatamente após a verificação.
Um administrador interno pode fazer a mudança seguindo a recomendação escrita da equipe quando a configuração for simples. Isso costuma ser mais rápido do que criar um acesso Admin temporário. Admin externo faz mais sentido quando o diagnóstico depende de uma interação complexa entre regras, ambientes, webhooks ou controles de segurança e o especialista precisa inspecionar a configuração diretamente.
Maintain às vezes é sugerida como uma concessão inofensiva. Ela consegue gerenciar partes de um repositório sem todas as ações de Admin, mas ainda é mais ampla do que a contribuição com código e talvez não inclua a configuração sensível específica que motivou a elevação. Conceder Maintain sem verificar a matriz de capacidades combina duas falhas: autoridade excessiva sobre ações não relacionadas e nenhuma garantia de que a tarefa necessária funcionará. Escolha-a apenas quando um conjunto documentado de ações de manutenção corresponder ao trabalho.
Nunca entregue Owner da organização para o reparo de um repositório. Admin de repositório e Owner de organização operam em escopos diferentes. Se a equipe precisar de informações de toda a organização, um proprietário pode exportá-las, realizar a mudança ou criar uma função personalizada compatível no GitHub Enterprise Cloud. Uma única aplicação quebrada não justifica o controle de todos os repositórios e membros.
O acesso Admin também aumenta a importância do comportamento de exceção. Algumas regras de proteção permitem que administradores as contornem, a menos que estejam configuradas de outra forma. Se você aumentar temporariamente a função de alguém, verifique se a regra ainda se aplica aos administradores. O rótulo «protegida» não responde a essa pergunta.
A proteção de branches deve sobreviver ao trabalho
Branches protegidas e conjuntos de regras devem restringir tanto a equipe externa quanto seus próprios administradores quando o risco exigir. Um processo de reparo falha se a barreira da branch desaparece sempre que alguém tem permissão suficiente e se sente incomodado por ela.
A documentação Managing a branch protection rule do GitHub diz que regras de branch protegida podem exigir aprovação de pull request e verificações de status aprovadas. Ela também alerta que apenas uma regra de proteção de branch se aplica por vez, o que pode dificultar a compreensão de padrões sobrepostos. O GitHub aponta conjuntos de regras como alternativa. Esse detalhe importa durante a remediação: adicionar uma nova regra com curinga talvez não se combine com a regra esperada, então teste a política efetiva nas branches padrão e de release reais.
Comece com a branch padrão e todas as branches ou tags capazes de implantar. Exija pull requests, descarte aprovações antigas quando o código mudar de maneira significativa, exija a resolução de conversas quando sua prática de revisão as utilizar e nomeie as verificações de status que realmente bloqueiam um build ruim. Uma verificação obrigatória que nunca é executada pode congelar merges, enquanto uma verificação com nome de tarefa variável pode deixar silenciosamente de corresponder à barreira pretendida. Confirme o comportamento com uma pull request descartável.
Mantenha curtas as listas de exceção. A equipe de remediação normalmente não deve fazer parte delas. Se uma migração ou reparo urgente não puder passar por uma verificação existente, registre por que a verificação está errada ou por que uma exceção controlada é necessária. Corrigir uma verificação instável faz parte de preparar o repositório para produção; ignorá-la em toda pull request apenas esconde o defeito.
As regras do repositório não substituem o julgamento da revisão. Um build aprovado pode confirmar sintaxe, testes e scanners configurados. Ele não pode decidir se um novo fluxo de autenticação corresponde à política de recuperação de conta do produto ou se uma migração de dados preserva o significado de negócio. Designe revisores internos que entendam essas consequências.
Revise as regras depois de qualquer janela com Admin. Compare a configuração final com o contrato de acesso aprovado, procure novos atores com permissão de exceção, confirme que pushes forçados continuam bloqueados e verifique se a revisão de proprietários de código se aplica aos caminhos pretendidos. Capture telas ou exporte a configuração quando apropriado, mas mantenha um registro textual da decisão para que futuros responsáveis consigam encontrá-lo.
Quando a FixMyMess repara uma aplicação gerada por IA, o limite de permissão útil é o mesmo que eu exigiria de qualquer equipe externa: acesso suficiente para diagnosticar e apresentar alterações verificadas, enquanto o proprietário do repositório mantém os controles finais. O diagnóstico de código, o reparo de lógica, o reforço de segurança, a refatoração e a preparação para implantação oferecidos pela plataforma não exigem propriedade permanente do repositório do cliente.
O acesso à implantação é uma decisão separada
Write no repositório não precisa incluir autoridade para aprovar a implantação em produção. Trate contribuição com código, modificação de workflow, aprovação de ambiente, acesso à nuvem e capacidade de ler segredos de produção como controles separados.
Os ambientes de implantação do GitHub podem exigir revisores, restringir branches ou tags de implantação e reter segredos do ambiente até que as regras de proteção sejam aprovadas. A documentação Deployments and environments também permite impedir a autoavaliação, para que a pessoa que iniciou uma implantação não possa aprovar a mesma tarefa protegida quando essa opção estiver ativada. Use essa separação em reparos externos: a equipe prepara a release, enquanto um revisor interno autoriza a produção.
Um fluxo seguro funciona assim:
- O engenheiro externo abre uma pull request de reparo e todas as verificações obrigatórias de código são executadas.
- Os responsáveis internos revisam caminhos sensíveis e fazem o merge do commit aprovado.
- Um workflow de implantação referencia o ambiente de produção protegido.
- Um revisor interno confere o commit, o plano de migração e a reversão e depois aprova a tarefa.
- O workflow recebe os segredos do ambiente apenas após a aprovação das regras de proteção.
O ambiente deve aceitar implantações somente da branch protegida ou do padrão de tag de release pretendido. Não presuma que proteger main restringe automaticamente todos os ambientes. Configure as regras de branch ou tag de implantação do ambiente e teste-as.
Tenha cuidado com edições de workflow. Um colaborador com Write pode propor uma mudança que altere gatilhos, comandos do runner, artefatos ou uso de credenciais. Exija revisão de proprietários do código para .github/workflows/, reduza as permissões do token do workflow, fixe ações confiáveis conforme sua política e revise qualquer uso de runners auto-hospedados. O GitHub observa que runners auto-hospedados não recebem isolamento de contêiner apenas porque uma tarefa usa um ambiente. Um workflow pode virar a rota para contornar uma política de repositório que, fora isso, seria cuidadosa.
Consoles de nuvem, provedores de hospedagem, bancos de dados, registradores de domínio e sistemas de observabilidade têm modelos de acesso próprios. Não coloque essas credenciais em uma issue do GitHub nem entregue uma conta geral de produção a um engenheiro externo porque a função do repositório parece controlada. Crie identidades separadas e com prazo limitado quando possível, registre seus responsáveis e revogue-as no mesmo processo de saída.
Se a equipe externa precisar executar um reparo em produção, exija um aprovador interno e uma reversão escrita. A pessoa que escreveu a mudança deve explicá-la, mas uma pessoa diferente deve decidir se ela será executada sobre dados reais. Equipes pequenas às vezes não conseguem uma separação perfeita. Mesmo assim, podem exigir um evento de aprovação explícito e preservar o motivo, em vez de permitir que a implantação aconteça como efeito colateral de um merge.
Evidências de auditoria precisam de responsável
Um log de auditoria só é útil quando alguém sabe quais eventos revisar e qual decisão o registro precisa sustentar. Colete evidências durante todo o trabalho, não depois de uma mudança suspeita ou de uma revogação apressada.
O log de auditoria da organização no GitHub registra quem agiu, qual ação ocorreu, quando ela aconteceu e qual repositório estava envolvido. A documentação informa que proprietários da organização podem pesquisá-lo e que os eventos de auditoria permanecem disponíveis por um período limitado. Por isso, designe um responsável interno para exportar ou reter as evidências exigidas pela sua política. A equipe externa não deve ser a única guardiã do registro usado para avaliar o próprio acesso.
Use uma pesquisa salva vinculada ao repositório, aos atores e às datas do trabalho. Por exemplo:
repo:acme/example-app actor:vendor-engineer created:2026-08-01..2026-08-15
O registro de revisão deve capturar campos como ação, ator, repositório, origem e data. Um evento normalizado e compacto pode ter este formato:
{"action":"protected_branch.update","actor":"vendor-engineer","repo":"acme/example-app","created_at":"2026-08-04T14:22:10Z"}
Os eventos exatos disponíveis dependem da ação e da configuração da conta, então teste a pesquisa antes de começar o trabalho. Faça uma mudança inofensiva e aprovada, confirme que o evento esperado aparece e que a pessoa responsável pela revisão consegue acessá-lo. Descobrir depois do trabalho que ninguém conseguia ver o log da organização não é uma estratégia de auditoria.
Audite também mudanças no código-fonte pelo Git. Pull requests devem ligar uma descoberta ao reparo, listar o comportamento afetado, identificar testes e preservar comentários de revisão. Releases ou implantações devem apontar para o commit incorporado. Mudanças nas configurações do repositório precisam de um registro de aprovação próprio, pois talvez não apareçam em um diff de código.
Revise eventos de acesso em três momentos: depois dos convites e atribuições de função, depois de qualquer elevação temporária e durante a revogação. Procure colaboradores extras, mudanças de função, chaves de implantação, novos aplicativos, webhooks, atores com exceção, mudanças de ambiente, modificações de workflow e caminhos pessoais de acesso inesperados. O GitHub alerta que remover um usuário não neutraliza uma chave de implantação mantida em outro lugar, então inclua chaves e automações instaladas na revisão de saída.
Não afogue o responsável em eventos brutos. O pacote final de evidências deve responder a quatro perguntas: quem teve acesso, o que essas pessoas alteraram, quem aprovou mudanças sensíveis e se todos os caminhos de acesso foram removidos ou transferidos. Guarde as exportações brutas de acordo com sua política, mas escreva uma lista curta de exceções que um futuro mantenedor consiga entender.
A revogação começa antes do primeiro commit
Defina a data de revogação quando conceder o acesso, nomeie a pessoa que fará a remoção e estabeleça o que significa concluir o trabalho. Uma data final escondida em um contrato não remove um colaborador, token, chave de implantação, conta de nuvem ou segredo copiado.
Use um evento de calendário ou ticket que seja aberto antes do fim planejado. O responsável interno deve ter tempo suficiente para inspecionar branches pendentes, transferir issues, confirmar a responsabilidade pela implantação e decidir se uma extensão restrita é justificada. Extensões devem ser explícitas e datadas. «Eles talvez ajudem de novo» não é motivo para manter o acesso a um repositório privado.
A lista de saída deve abranger todos os caminhos criados para o trabalho:
- Remova colaboradores externos ou a associação à organização concedida para o trabalho.
- Revogue acesso de equipes, tokens temporários, GitHub Apps, chaves de implantação e credenciais de máquinas que não sejam mais necessárias.
- Remova a equipe de listas de exceção, propriedade de código, grupos de revisores obrigatórios e aprovações de ambiente.
- Transfira pull requests, issues, manuais operacionais e responsabilidades de release em aberto para responsáveis internos identificados.
- Troque qualquer segredo que a equipe tenha recebido quando a posse contínua criar um risco inaceitável.
O GitHub informa que remover um colaborador de um repositório privado corta o acesso e exclui forks privados nos casos aplicáveis, mas os clones locais permanecem. Obtenha uma confirmação por escrito de que a equipe tratou o código-fonte e os dados retidos segundo os termos de exclusão acordados. Esse é um controle jurídico e operacional, não um recurso do GitHub.
Após a remoção, confirme o resultado com uma nova visualização do acesso ao repositório, em vez de confiar no status do ticket. Pesquise eventos de remoção no log de auditoria, inspecione aplicativos instalados e chaves de implantação, confirme revisores de ambiente e examine as permissões básicas da organização. Uma pessoa removida de uma atribuição direta ao repositório ainda pode herdar acesso por outro caminho.
Mantenha o histórico do reparo. Não exclua branches ou conversas apenas para fazer o repositório parecer limpo antes que os responsáveis internos tenham aceitado o trabalho. Faça merge ou feche pull requests de forma deliberada, preserve as evidências exigidas pela sua política e depois exclua branches obsoletas pelo processo normal do repositório.
Uma equipe de remediação deve deixar menos ambiguidade operacional do que encontrou. Se ninguém consegue nomear os administradores atuais do repositório, os aprovadores de produção, as credenciais ativas e a próxima data de revogação depois que o trabalho termina, o código pode estar melhor enquanto o problema de responsabilidade permanece. Resolva os dois.
Perguntas Frequentes
Um desenvolvedor externo pode auditar um repositório privado do GitHub com Read?
Sim. Read normalmente permite clonar e inspecionar o repositório, o histórico de commits, as branches e as discussões necessárias para uma auditoria inicial. Peça uma exceção específica apenas quando um alerta de segurança ou log externo necessário não estiver disponível nessa função.
A permissão Triage do GitHub deixa um prestador enviar código?
Não. Triage permite coordenar issues e pull requests sem conceder acesso para enviar código. Use Write para engenheiros que precisam criar branches no repositório e apresentar commits de reparo.
Uma empresa de remediação deve receber Admin no GitHub?
Apenas para uma mudança de configuração identificada que um administrador interno não possa concluir. Limite a elevação no tempo e a uma pessoa, registre a mudança aprovada e devolva a conta à função anterior imediatamente.
A permissão Write do GitHub é segura para uma equipe externa?
Ela pode ser adequada quando branches protegidas, revisões obrigatórias, verificações de status e contas individuais controlam como as mudanças chegam à produção. Write sem essas barreiras coloca a conveniência acima do controle.
A proteção de branch pode impedir administradores de ignorar revisões?
O GitHub oferece controles que podem aplicar regras a administradores ou restringir exceções, conforme o tipo de regra e a configuração do repositório. Confira a regra efetiva em vez de presumir que a palavra «protegida» cobre os administradores.
Prestadores precisam de segredos de produção para preparar uma implantação?
Normalmente não. Eles podem preparar e testar a release enquanto um revisor interno aprova o ambiente de produção protegido. Segredos do ambiente devem ficar disponíveis para a tarefa de implantação somente depois que as regras de proteção configuradas forem aprovadas.
O que um acordo de acesso ao GitHub para prestadores deve incluir?
Identifique os repositórios, pessoas, funções, branches permitidas, entregas esperadas, eventuais tarefas de Admin, aprovadores e a data de revogação. Acrescente regras para clones locais, dados confidenciais, credenciais e exclusão, pois o GitHub não consegue recuperar uma cópia já feita.
Como um proprietário pode monitorar a atividade de uma equipe externa no GitHub?
Use contas individuais, pull requests, histórico de implantações e o log de auditoria da organização. Salve pesquisas pelo repositório, atores externos e datas do trabalho e revise-as depois dos convites, da elevação e da revogação.
Quando o acesso externo ao GitHub deve ser revogado?
Revogue-o quando o trabalho aceito e a transferência estiverem concluídos, usando a data definida quando o acesso foi concedido. Se o trabalho continuar, aprove uma nova data final restrita em vez de deixar o acesso aberto indefinidamente.
Remover um colaborador do GitHub exclui todas as cópias do código?
Não. A remoção encerra o acesso ao repositório e pode excluir forks privados nos casos documentados pelo GitHub, mas não apaga clones locais. O contrato e o procedimento de saída precisam tratar o código-fonte e os dados confidenciais retidos.