Como funciona a organização e as permissões do GitHub?

Concluído

Na unidade anterior, você explorou as diferentes maneiras pelas quais os usuários podem se autenticar com o GitHub. Nesta unidade, você aprenderá sobre as permissões para cada nível hierárquico:

  • Permissões do repositório
  • Permissões da equipe
  • Permissões da Organização
  • Permissões empresariais

Níveis de permissão de repositório

Você pode personalizar o acesso a cada repositório atribuindo níveis de permissão específicos. Há cinco permissões padrão no nível do repositório:

  • Leia: Recomendado para colaboradores que não são de código e que desejam visualizar ou discutir seu projeto. Esse nível é bom para qualquer pessoa que precise visualizar o conteúdo dentro do repositório, mas não precise realmente fazer contribuições ou alterações.
  • Triagem: Recomendado para colaboradores que precisam gerir questões e pedidos de pull de forma proativa sem terem acesso de escrita. Este nível é útil para gerentes de projeto que controlam problemas e discussões sem modificar o código.
  • Escrever: Recomendado para colaboradores que contribuem ativamente para o seu projeto. Escrever é a permissão padrão para a maioria dos desenvolvedores.
  • Manter: Recomendado para gerentes de projeto que precisam gerenciar o repositório sem acesso a ações sensíveis ou destrutivas.
  • Admin: Recomendado para pessoas que precisam de acesso total ao projeto, incluindo ações sensíveis e destrutivas, como gerenciar a segurança ou excluir um repositório. Essas pessoas são proprietários e administradores de repositórios.

Você pode dar aos membros da organização, colaboradores externos e equipes diferentes níveis de acesso aos repositórios de propriedade de uma organização. Cada nível de permissão concede progressivamente mais acesso ao conteúdo e às configurações do repositório. Escolha o nível que melhor se adapta ao papel de cada pessoa ou equipe em seu projeto sem dar mais acesso ao projeto do que o necessário.

Os administradores também podem criar funções personalizadas no GitHub Enterprise, estendendo uma dessas funções base com permissões adicionais, conforme necessário.

O que é falsificação de repositório?

Forking é uma maneira de criar uma cópia pessoal do repositório de outra pessoa em sua própria conta do GitHub. Ao bifurcar um repositório, você obtém sua própria versão que pode ser modificada livremente sem afetar o projeto original. Este processo é um fluxo de trabalho comum para contribuir para o código aberto ou experimentar alterações com segurança.

Você também pode manter sua bifurcação atualizada puxando as alterações do repositório original, muitas vezes chamado de repositório "upstream".

Veja como bifurcar um repositório:

  1. No GitHub.com, navegue até a página principal do repositório que você deseja bifurcar.

  2. No canto superior direito, selecione Forquilha.

  3. Escolha um proprietário para a bifurcação (sua conta pessoal ou uma organização).

  4. Opcionalmente, renomeie o repositório bifurcado ou inclua todas as ramificações.

  5. Selecione Criar bifurcação.

    Captura de tela mostrando o botão de bifurcação no canto superior direito de um repositório GitHub.

Gerenciando permissões de fork (para administradores)

Para repositórios de propriedade da organização, os administradores podem controlar se os repositórios podem ser bifurcados:

  • Repositórios públicos: A bifurcação é sempre permitida.
  • Repositórios privados: a bifurcação pode ser desativada ou restrita apenas aos membros da organização.
  • Repositórios internos: estes só podem ser bifurcados dentro da mesma conta empresarial.

Para definir as configurações da bifurcação:

  1. Vá para as Configurações do repositório da organização.

  2. Na barra lateral esquerda, em Acesso, clique em Privilégios de membro.

  3. Localize as opções de bifurcação do repositório e atualize-as conforme necessário.

    Captura de tela mostrando as permissões de bifurcação de uma Organização GitHub.

Sugestão

Se você desativar a bifurcação para um repositório privado, ninguém (incluindo membros da organização) poderá bifurcá-lo.

Para saber mais, consulte o artigo do GitHub Docs sobre Fork a repo.

Visualizando o Repository Insights

Os insights do repositório no GitHub oferecem uma maneira poderosa de monitorar e analisar a atividade, as contribuições e as dependências do seu projeto. Ao aproveitar esses insights, você pode acompanhar a integridade do projeto, identificar gargalos e garantir a segurança. Esta seção irá guiá-lo pelas etapas para acessar as informações do repositório e fornecer práticas recomendadas para usá-las de forma eficaz.

Etapas para visualizar o Repository Insights

  1. Navegue até o repositório no GitHub.
  2. Sob o nome do repositório, clique na guia Insights .
  3. Explore as seguintes seções na guia Insights:
    • Contribuidores: visualize um gráfico das contribuições ao longo do tempo, incluindo confirmações, adições e exclusões de cada colaborador.
    • Tráfego: monitore o tráfego do repositório, incluindo visitantes únicos e visualizações de página.
    • Commits: Analise a atividade de commit ao longo do tempo.
    • Freqüência de código: rastreie o número de linhas adicionadas e excluídas ao longo do tempo.
    • Gráfico de dependência: visualize as dependências do repositório e identifique possíveis vulnerabilidades de segurança.

Práticas recomendadas para usar o Repository Insights

  • Monitorar contribuições: use a seção Colaboradores para identificar contribuidores ativos e áreas do repositório que estão recebendo mais atenção.
  • Rastrear tráfego: use a seção Tráfego para entender como os usuários estão interagindo com seu repositório e identificar tendências no engajamento.
  • Corrigir vulnerabilidades: revise regularmente o gráfico de dependência para garantir que seu repositório permaneça seguro.

Ao aproveitar os insights do repositório, você pode tomar decisões orientadas por dados para melhorar a colaboração, a segurança e o gerenciamento de projetos.

Maneiras como os usuários recebem acesso ao repositório

Ações de um usuário que recebe uma lista de suas permissões de repositório

As permissões efetivas de um usuário em um repositório são influenciadas por vários fatores, incluindo:

  • Função do repositório: (por exemplo, Admin, Write, Read)
  • Associação à equipe: (por exemplo, permissões herdadas de uma equipe)
  • Associação à organização: (por exemplo, permissões de organização padrão, requisitos de SSO)

Quando você combina essas diferentes fontes de permissão, o GitHub aplica o mais alto nível de acesso concedido ao usuário. Por exemplo, se um utilizador tiver acesso de Leitura por meio de uma equipa, mas também tiver acesso de Escrita atribuído diretamente como colaborador, ele terá efetivamente permissões de Escrita.

Opções de associação ao repositório

Ao conceder acesso a um repositório, há várias maneiras de um usuário se tornar um colaborador:

Tipo de associação Descrição
Colaborador Direto Adicionado explicitamente ao repositório com uma função específica (Leitura, Triagem, Gravação, Manutenção ou Administrador).
Recomendado para colaboradores externos ou pequenas equipas.
Membros da Equipa Um usuário herda o acesso ao repositório por meio de sua associação à equipe.
As permissões de equipe geralmente são definidas no nível da organização para um gerenciamento consistente e escalável.
Permissões padrão da organização Se o repositório fizer parte de uma organização, pode haver um nível de permissão padrão para todos os membros da organização (por exemplo, Nenhum, Leitura).
Os proprietários podem substituir esses padrões para equipes ou usuários específicos.
Colaborador Externo Um usuário que não é membro da organização, mas tem acesso explícito a um repositório.
Útil para contratantes, freelancers ou colaboradores de código aberto que precisam de acesso limitado.

Monitoramento e auditoria de acesso ao repositório

Auditar regularmente quem tem acesso a um repositório garante segurança e conformidade adequadas. Aqui estão algumas etapas e ferramentas recomendadas:

  • Ver acesso nas configurações do repositório:

    • Navegue até Configurações > Gerenciar acesso (para o repositório).
    • Revise a lista de usuários e equipes, juntamente com seus níveis de permissão.
  • Log de auditoria da organização (GitHub Enterprise ou nível da organização):

    • Os proprietários da organização podem visualizar as alterações na associação, no acesso ao repositório e nas permissões no log de auditoria.
    • Filtre eventos por nome de repositório ou alterações de acesso para uma visualização mais focada.
  • Log de auditoria empresarial (GitHub Enterprise):

    • Se você gerencia várias organizações, use o log de auditoria da conta Enterprise para controlar as alterações em todas as organizações e repositórios.
    • Isso é especialmente valioso para relatórios de conformidade ou revisões de segurança em larga escala.
  • Scripts automatizados:

    • Use a API REST do GitHub ou a API do GraphQL para listar programaticamente colaboradores, equipes e permissões.
    • Integre scripts com seu pipeline de CI/CD ou painéis de segurança para monitorar e sinalizar anomalias continuamente.

Dica: Configure regras de proteção de ramificação e revisões necessárias para adicionar outra camada de segurança e responsabilidade por todas as alterações de código.

Níveis de permissão da Equipa

Uma equipe em uma organização do GitHub é um grupo de usuários que colaboram em repositórios compartilhados. As equipes ajudam a simplificar o gerenciamento de acesso e a comunicação aplicando permissões consistentes em vários repositórios de uma só vez. Os principais benefícios incluem:

  • Controle de acesso centralizado: Atribua permissões de repositório (por exemplo, Leitura, Gravação) a toda a equipe em vez de gerenciar cada usuário individualmente.
  • Colaboração estruturada: Organize os membros por departamento, projeto ou função para uma colaboração mais eficiente.
  • Visibilidade e Comunicação: Cada equipe pode ter seu próprio quadro de discussão, facilitando o compartilhamento de atualizações e a coordenação de esforços.

As equipes fornecem uma maneira fácil de atribuir permissões de repositório a vários usuários relacionados ao mesmo tempo. Os membros de uma equipa subordinada também herdam as configurações de permissão da equipa principal, fornecendo uma maneira fácil de replicar permissões com base na estrutura hierárquica de uma empresa.

Há dois níveis de permissões no nível da equipe:

Nível de permissão Descrição
Membro Os membros da equipe têm o mesmo conjunto de habilidades que os membros da organização
Mantenedor Os mantenedores da equipe podem fazer tudo o que os membros da equipe podem, além de:
- Alterar o nome, a descrição e a visibilidade da equipa.
- Solicitar que a equipa altere as equipas de pais e filhos.
- Defina a foto do perfil da equipe.
- Editar e excluir discussões da equipe.
- Adicionar e remover membros de organização da equipa.
- Promova os membros da equipe para também ter a permissão do mantenedor da equipe.
- Remover o acesso da equipe aos repositórios.
- Gerenciar a atribuição de revisão de código para a equipe.
- Gerencie lembretes agendados para solicitações pull.

Um proprietário de organização também pode promover qualquer membro da organização para ser um mantenedor de uma equipe.

Para auditar o acesso a um repositório que você administra, você pode exibir uma lista combinada de equipes e usuários com acesso ao repositório em suas configurações:

Captura de ecrã do ecrã de gestão de acesso.

O GitHub oferece vários níveis de permissão que podem ser atribuídos às equipes. Ao conceder a uma equipe acesso a um repositório, você pode escolher entre os seguintes modelos de permissão:

Modelos de permissão

Nível de permissão Descrição Melhor para
Leia Os usuários podem visualizar e clonar o repositório. Pode abrir e comentar problemas e puxar solicitações. Indivíduos que precisam de acesso de somente leitura ou revisão.
Triagem Os utilizadores podem gerir problemas e pull requests (por exemplo, rotular, atribuir, comentar). Não é possível enviar alterações por push para o repositório. Gerentes de projeto ou colaboradores que precisam triar e organizar problemas sem contribuir com código.
Escrever Os utilizadores podem fazer push para ramificações (exceto ramificações protegidas). Pode gerenciar problemas e receber solicitações. Colaboradores ativos que precisam confirmar código ou atualizar documentação.
Manter Os usuários podem gerenciar configurações de repositório, problemas e solicitações pull. Não é possível excluir ou transferir o repositório. Mantenedores de projeto que lidam com o gerenciamento de repositório de rotina, mas não exigem direitos totais de administrador.
Administrador Os usuários têm controle total sobre o repositório, incluindo a definição de permissões, a exclusão do repositório e o gerenciamento de todas as configurações. Aqueles que precisam de acesso administrativo de alto nível.

Dica: Siga sempre o Princípio do Menor Privilégio — atribua o nível de permissão mais baixo necessário para que cada equipe execute suas tarefas de forma eficaz. Esta abordagem reduz o risco de alterações acidentais ou não autorizadas.