Skip to content

3. Administração do Github

João Pedro edited this page Sep 11, 2024 · 3 revisions

1. Conhecendo a Administração do Github

Você aprenderá os conceitos fundamentais para utilizar as ferramentas do GitHub, as medidas de segurança e os controle disponíveis para administradores do GitHub em uma organização ou empresa.

O que é a administração do Github?

Os administradores do GitHub possuem um trabalho super importante que é proteger os projetos e garantir que as equipes certas possam colaborar e compartilhar seus projetos/códigos fonte. Atualmente o Github possui três tipos de administrações, sendo, a Administração em nível de equipe, de organização e empresarial.

> Administração em Nível de Equipe

No GitHub, os usuários fazem parte de equipes em organizações. Essas equipes ajudam a organizar permissões e facilitam a comunicação. Além disso, você pode conectar suas equipes no GitHub com serviços de identidade, como o Microsoft Entra ID, para automatizar atualizações e facilitar a administração.

> Administração em Nível de Organização

No GitHub, organizações são espaços compartilhados para colaboração em projetos. Proprietários e administradores controlam acesso, convidam membros, organizam equipes e definem permissões.

> Administração em Nível Empresarial

Contas Enterprise no GitHub unificam o gerenciamento para várias organizações. Proprietários da empresa têm poder de:

  1. Ativar login único (SAML) para todos, conectando identidades externas ao GitHub.
  2. Adicionar ou remover organizações da empresa.
  3. Controlar cobrança e designar gerentes de cobrança para todas as organizações.
  4. Configurar políticas de segurança para repositórios, projetos e equipes.
  5. Extrair informações usando scripts.
  6. Aplicar mudanças globais, como migrações, usando scripts.

As Melhores Práticas

A criação de equipes na sua organização permite maior flexibilidade para colaboração e pode facilitar a separação de repositórios e permissões.:

  1. Crie equipes organizadas hierarquicamente para representar a estrutura da sua empresa ou grupo.
  2. Faça equipes com base em interesses ou tecnologias específicas para facilitar revisões de código.
  3. Conecte suas equipes no GitHub com seu provedor de identidade (IdP) para automatizar atualizações e simplificar tarefas administrativas.

2. Permissões do Github

Nesta aula, abordaremos sobre as permissões de nível hierárquico dentro do github.

O níveis que abordaremos, será:

  • Permissões de repositório
  • Permissões de equipe
  • Permissões da organização
  • Permissões da empresa

Permissões de Repositório

Nas permissões de repositório há cinco tipos diferentes, sendo eles:

  1. Leitura: Para quem só precisa visualizar ou discutir o projeto, sem fazer modificações.
  2. Triagem: Para gerenciar problemas e solicitações sem poder fazer alterações. Ideal para alguns gerentes de projeto.
  3. Gravação: Para colaboradores que ativamente contribuem ao fazer "push" no projeto. A permissão padrão para desenvolvedores.
  4. Manutenção: Para gerentes de projeto que precisam gerenciar o repositório, mas sem acesso a ações críticas.
  5. Administrador: Acesso total ao projeto, incluindo ações críticas. Indicado para administradores e proprietários de repositórios.

Você pode atribuir diferentes níveis de acesso a membros, colaboradores externos e equipes em sua organização, escolhendo o nível apropriado para cada pessoa ou função sem conceder mais acesso do que necessário. Depois de configurar permissões corretas em um repositório, você pode usá-lo como modelo para criar novos repositórios com a mesma estrutura e arquivos.

Para criarmos um modelo:

  1. No GitHub.com, acesse a página principal do repositório.
  2. Abaixo no nome do repositório, selecione Configurações. Se você não conseguir ver a guia Configurações, abra o menu suspenso e escolha Configurações.

Repositório de modelos
  1. Selecione Repositório de modelos.

Permissões de Equipe

As equipes facilitam a atribuição de permissões em vários usuários de uma vez. Membros herdam permissões da equipe pai, simplificando a propagação de autorizações com base na estrutura da empresa.

Dois níveis de permissão em equipes:

  1. Membro: Mesmas habilidades dos membros da organização.
  2. Mantenedor: Pode fazer tudo que membros fazem e mais, como alterar nome, adicionar membros e gerenciar revisões de código.

O dono da organização pode promover qualquer membro a mantenedor de uma equipe. Para auditar o acesso a um repositório, é possível ver uma lista de equipes e usuários com acesso nas configurações.

Permissões da Organização

  1. Proprietário: Faz tudo que membros fazem e pode adicionar/remover usuários. Geralmente, são duas pessoas no máximo.
  2. Membro: Cria e gerencia repositórios e equipes da organização.
  3. Moderador: Bloqueia/desbloqueia colaboradores, estabelece limites de interação e esconde comentários em repositórios públicos.
  4. Gerente de Cobrança: Visualiza e edita informações de cobrança.
  5. Gerente de Segurança: Gerencia alertas de segurança e configurações em toda a organização, lê permissões de todos os repositórios.
  6. Colaborador Externo: Pode acessar um ou mais repositórios, não sendo membro explícito da organização.

Além disso, também é possível definir permissões padrão para todos os membros da organização.

Por fim, para melhorar o gerenciamento e a segurança, também é possível conceder permissões de leitura padrão a todos os membros da sua organização e ajustar o acesso aos repositórios de acordo com cada caso.

Permissões da Empresa

Por extensão, cada conta de usuário individual que é membro de uma organização também é membro da empresa, e você pode controlar várias configurações relacionadas à autenticação por meio desse nível mais alto.

Há três níveis de permissão no âmbito da empresa:

  1. Proprietário Corporativo: Controle total, pode gerenciar administração, adicionar/remover organizações, configurar políticas, cobrança e mais.
  2. Membro Corporativo: Mesmas habilidades dos membros da organização.
  3. Gerente de Cobrança Corporativo: Vê/edita informações de cobrança e adiciona/remove outros gerentes de cobrança.

Além desses níveis, é possível definir uma política padrão para permissões de repositório em todas as organizações.

Buscando melhorar o gerenciamento e a segurança, você pode conceder permissões de leitura padrão a todos os membros da sua empresa e ajustar o acesso aos repositórios caso a caso.

Segurança e Gerenciamento de Repositórios

Regras de Proteção de Branch:

  • Controle as alterações no repositório.
  • Exija aprovações, pull requests, commits assinados e mais.
  • Defina regras para todos, incluindo administradores.
  • Restrinja quem pode fazer push para branches.

Arquivo CODEOWNERS:

  • Atribua membros ou equipes como proprietários de código.
  • Eles são automaticamente solicitados como revisores em pull requests que afetam seu código.

Visualizar Tráfego com Insights:

  • Qualquer um com acesso de push pode ver:
    • Clones completos.
    • Visitantes recentes.
    • Referências de sites.
    • Conteúdo popular.

Para acessar o grafo de tráfego:

  1. No GitHub.com, acesse a página principal do repositório.
  2. No nome do repositório, selecione Insights.

  1. À esquerda, selecione Tráfego:

Opcionalmente, selecione Clones ou Exibições para ver o grafo de tráfego de clones ou exibições.