Configurar permissões no repositório de controle do código-fonte usando o GitHub
Para implementar permissões de repositório do GitHub de forma ideal, é importante encontrar um equilíbrio entre facilitar a colaboração e proteger as bases de código contra abusos e usos indevidos. O GitHub oferece uma variedade de opções de controle de acesso para facilitar que as equipes interajam entre si de forma eficiente, preservando os princípios de privacidade, segurança e integridade dos dados.
O modelo de permissão difere dependendo do tipo de conta do GitHub. Existem cinco tipos de contas que podem ser criadas tanto por indivíduos quanto por organizações:
- GitHub Free para contas pessoais: gratuito para uso individual, oferecendo colaboradores ilimitados em repositórios públicos ilimitados com todas as funcionalidades, e em repositórios privados ilimitados com funcionalidades limitadas, como
problemas e pull requests. - GitHub Pro: para desenvolvedores profissionais, inclui repositórios públicos e privados ilimitados, colaboradores ilimitados e ferramentas avançadas de revisão de código.
- GitHub Free para organizações: gratuito para organizações, permite colaboradores ilimitados em repositórios públicos ilimitados com todas as funcionalidades, e em repositórios privados ilimitados com funcionalidades limitadas. Além das funcionalidades disponíveis no GitHub Free para contas pessoais, o GitHub Free para organizações oferece limites mais altos de minutos do GitHub Actions por mês e mais armazenamento do GitHub Packages.
- GitHub Team: voltado para equipes, inclui todas as funcionalidades do GitHub Pro, além de permissões para equipes e usuários, ferramentas de revisão de código e funcionalidades avançadas em repositórios privados.
- GitHub Enterprise: para organizações de grande porte, abrange todas as funcionalidades do GitHub Team, além de recursos de segurança empresarial, como logon único, logs de auditoria e controles de conformidade. Esse plano é auto-hospedado e pode ser executado localmente ou em um ambiente de nuvem (GitHub Enterprise Cloud).
Permissões de repositório no GitHub Free para contas pessoais
GitHub Free para contas pessoais: Nos repositórios públicos, qualquer pessoa pode exibir e criar forks de repositórios. Nos repositórios privados, o dono do repositório controla totalmente quem pode acessar e contribuir, sendo permitidos até três colaboradores. Só pode existir um único proprietário, portanto, as permissões de propriedade não podem ser compartilhadas com outra conta pessoal. Além disso, em um repositório privado, os proprietários do repositório só podem conceder acesso para gravação aos colaboradores. Em outras palavras, os colaboradores não podem ter acesso somente leitura aos repositórios pertencentes a uma conta pessoal.
Permissões de repositório no GitHub Pro
O GitHub Pro inclui os mesmos níveis de permissão de repositório que o GitHub Free para contas pessoais, mas com funcionalidades de colaboração mais avançadas, como branches protegidos e proprietários de código.
Permissões de repositório no GitHub Free para organizações
O GitHub Free para organizações permite criar equipes, que podem ter acesso a repositórios específicos com diferentes níveis de permissão. As equipes podem ter acesso de gravação ou de administração, e é possível criar funções personalizadas para atribuir permissões específicas a diferentes usuários ou grupos.
A função padrão não administrativa para usuários em uma organização, é o de membro da organização. Por padrão, os membros da organização têm algumas permissões, incluindo a capacidade de criar repositórios.
Outras funções na organização possuem permissões mais ampla para repositórios, como:
- Moderadores da organização: podem ocultar comentários em repositórios públicos da organização.
- Gerentes de segurança: têm acesso de leitura a todos os repositórios da organização.
- Proprietários: possuem todas as permissões relacionadas a repositórios, incluindo adicionar colaboradores, bem como gravar e excluir repositórios.
Os proprietários da organização podem estabelecer permissões de base que se aplicam a todos os membros ao acessar qualquer repositório da organização. As permissões de base não se aplicam a colaboradores externos. A concessão de um nível de acesso mais alto para repositórios individuais substitui a permissão de base.
O acesso personalizado aos repositórios pode ser implementado atribuindo funções de repositório internas a membros da organização e colaboradores externos. Essas funções incluem:
- Leitura: recomendado para contribuidores que não trabalham com código e desejam revisar o conteúdo do repositório.
- Triagem: recomendado para colaboradores que precisam gerenciar problemas, discussões e pull requests proativamente, sem acesso para gravação.
- Gravação: recomendado para colaboradores que efetuam push ativamente no repositório.
- Manutenção: recomendado para gerentes de projetos que precisam gerenciar o repositório sem acesso a ações confidenciais ou destrutivas.
- Administração: recomendado para aqueles que necessitam de todos os privilégios, incluindo ações confidenciais e destrutivas, como gerenciar a segurança ou excluir o repositório.
Permissões de repositório no GitHub Team
O GitHub Team possui todos os mesmos níveis de permissão de repositório que o GitHub Free para organizações. Além disso, oferece suporte para equipes e recursos de segurança mais avançados, como intervalos de IP autorizados e autenticação de nível empresarial. As equipes são grupos de membros da organização. Tanto os proprietários da organização quanto os mantenedores das equipes podem atribuir permissões de repositórios às equipes.
Permissões de repositório no GitHub Enterprise Cloud
O GitHub Enterprise Cloud foi desenvolvido para organizações de nível empresarial. Além disso, inclui todas as funcionalidades do GitHub Team, bem como recursos de segurança
de nível empresarial, como logon único, logs de auditoria e controles de conformidade. O GitHub Enterprise Cloud oferece um controle extremamente detalhado das permissões de repositório, incluindo a capacidade de gerenciar permissões no nível do branch. Os proprietários da organização também podem criar funções personalizadas para conceder permissões mais específicas a diferentes usuários ou equipes, além daquelas disponíveis nas funções internas de leitura, triagem, gravação, manutenção e administração.