Gestão de organizações com GitHub

As organizações no GitHub são contas compartilhadas onde várias pessoas colaboram em repositórios, projetos e equipes ao mesmo tempo. Neste artigo, você entende a diferença entre conta pessoal e conta organizacional, conhece os papéis de acesso e aprende a usar as páginas de pessoas e de moderação.

Nos artigos anteriores da série, explicamos os recursos de repositórios, projetos e equipes. Agora, o foco é o papel da organização dentro do GitHub e o funcionamento de algumas páginas que ainda não apareceram por aqui.

O conteúdo tem caráter introdutório, porque o objetivo é apresentar funcionalidades que vão além do versionamento de código. Por isso, os exemplos e as descrições pensam em quem tem pouco ou nenhum contato com esses recursos.

O que são organizações no GitHub

Uma organização é um espaço compartilhado que reúne pessoas, repositórios, projetos e equipes sob uma mesma estrutura. Assim, uma empresa, uma comunidade ou um projeto open source consegue centralizar o trabalho em um único lugar.

Na prática, as organizações no GitHub permitem controlar quem acessa o quê, com níveis de permissão diferentes para cada pessoa. Além disso, elas facilitam a gestão de cobrança, de segurança e de moderação para grupos grandes.

Se você ainda não criou a sua, o artigo GitHub: trabalhando com projetos, equipes e organizações mostra o passo a passo da criação. Depois de criar, volte aqui para entender como administrar tudo.

Conta pessoal versus conta organizacional

Antes de tudo, vale esclarecer a diferença entre os dois tipos de conta. Tanto a conta pessoal quanto a organizacional podem ter inúmeros repositórios, projetos e equipes.

A conta pessoal representa a sua identidade no GitHub, com nome de usuário e perfil próprios. Toda pessoa que usa a plataforma entra com a sua conta pessoal.

Por outro lado, mesmo que usemos o termo "conta organizacional", ela não é uma conta onde alguém faz login. Segundo a documentação oficial sobre os tipos de conta, cada pessoa entra com a própria conta e acessa a organização a partir dela.

Com isso, cada integrante mantém a sua identidade, enquanto contribui com os recursos compartilhados. Além disso, uma mesma pessoa pode participar de várias organizações ao mesmo tempo.

A disponibilidade dos recursos dentro da organização depende do seu nível de acesso. Portanto, duas pessoas da mesma organização podem enxergar telas e opções bem diferentes.

Contas corporativas e organizações no GitHub

Existe ainda um terceiro tipo, a conta corporativa, disponível no GitHub Enterprise Cloud e no GitHub Enterprise Server. Ela permite que administradores gerenciem políticas e cobrança de várias organizações no GitHub de forma centralizada.

Para quem está começando, porém, a conta pessoal e a organização já cobrem quase todos os cenários. Por isso, este artigo não entra em detalhes sobre o modelo corporativo.

Papéis de acesso nas organizações no GitHub

Os recursos das organizações no GitHub se dividem em papéis, e cada papel define o que a pessoa pode ver e alterar. O artigo original desta série apresentava seis níveis, e a documentação atual também lista o papel de moderador.

A seguir, você confere cada um deles, com o que permitem e quando faz sentido atribuí-los.

Proprietário

Os proprietários têm acesso administrativo completo a todos os recursos da organização. Eles atribuem papéis, alteram configurações e podem até excluir a organização.

Por esse motivo, o próprio GitHub sugere que pelo menos duas pessoas tenham esse papel. Assim, a organização não fica sem administração caso uma delas perca o acesso.

Embora o número de proprietários seja ilimitado, a documentação recomenda manter esse grupo pequeno. Afinal, quanto mais pessoas com poder total, maior o risco de uma alteração indevida.

Integrante

O integrante é o papel padrão, sem poderes administrativos. Os integrantes conseguem criar e modificar equipes, projetos e repositórios, mas as configurações de cada recurso podem limitar essa capacidade.

Por padrão, o GitHub restringe o acesso às configurações gerais, então apenas administradores alteram esses pontos. Quando um integrante precisa de permissões extras, você usa os papéis descritos a seguir.

Moderador

O moderador é um integrante com capacidades adicionais de moderação nas organizações no GitHub. Ele pode bloquear e desbloquear quem não é membro, definir limites de interação e ocultar comentários em repositórios públicos.

Esse papel é útil quando a organização mantém projetos abertos com muita participação externa. Dessa forma, a moderação não depende apenas dos proprietários.

Gerente de cobrança

Nas organizações no GitHub, os gerentes de cobrança são integrantes com acesso às configurações de cobrança, como os dados de pagamento. Assim, a área financeira cuida dessas informações sem precisar de acesso aos repositórios.

Essas funções são delicadas, então pense bem antes de atribuí-las a alguém. Afinal, uma alteração errada na cobrança afeta toda a organização.

Gerente de segurança

Assim como acontece com a cobrança, também é possível dar funções de segurança a um integrante. Com isso, ele visualiza alertas de segurança e gerencia as configurações dos recursos de segurança da organização.

Além disso, o gerente de segurança recebe permissão de leitura em todos os repositórios. Na prática, esse papel ajuda a organizar uma equipe de segurança existente com o mínimo de acesso necessário.

Gerente de aplicativo

O gerente de aplicativo administra as configurações de alguns ou de todos os registros de GitHub Apps da organização. Dessa forma, você delega o cuidado com integrações específicas.

Contudo, esse papel não permite instalar nem desinstalar aplicativos. Ou seja, ele cuida das configurações, mas a decisão de instalação continua com quem tem mais permissões.

Colaboradores externos

Nas organizações no GitHub, os colaboradores externos contribuem com projetos, mas não fazem parte delas como membros. Eles recebem acesso a um ou mais repositórios específicos e nada além disso.

Esse papel faz sentido para consultores ou pessoas temporárias, porque elas não enxergam as informações internas da organização. Assim, você libera o trabalho sem expor equipes, membros e outros repositórios.

Página de pessoas nas organizações no GitHub

A página de pessoas fica na aba People e mostra todos os membros da organização. Nela, você visualiza e modifica informações como nível de acesso, segurança, visibilidade e as equipes de cada pessoa.

Além disso, é nessa página que você adiciona e remove membros das organizações no GitHub. Por isso, ela costuma ser a tela mais visitada por quem administra.

Página de pessoas das organizações no GitHub listando membros com papel, visibilidade e equipes
A aba People reúne todos os membros e permite gerenciar acessos em um só lugar.

A visibilidade da participação também aparece aqui. Quando a participação é pública, a organização aparece no perfil da pessoa, enquanto a participação privada mantém esse vínculo oculto.

Cada integrante consegue alterar a própria visibilidade nessa mesma página. Assim, quem prefere discrição não precisa expor o vínculo com a empresa.

Perfil do integrante na organização

Quando você clica no nome de uma pessoa, o GitHub abre o perfil dela dentro da organização. Ali, você encontra mais detalhes sobre os acessos daquele usuário.

Perfil de um integrante dentro da organização mostrando equipes, repositórios e opções de acesso
O perfil do integrante concentra os detalhes de acesso e as ações administrativas.

Nessa tela, também ficam as opções de transformar a pessoa em colaborador externo ou removê-la da organização. Em seguida, veremos o que acontece em cada caso.

Converter em colaborador externo ou remover

Para converter alguém, selecione a pessoa na aba People e escolha a opção Convert to outside collaborator. Depois, confirme a ação.

Com a conversão, a pessoa sai de todas as equipes e deixa de ver os membros e as equipes da organização. No entanto, ela mantém o acesso aos repositórios que recebeu diretamente ou por meio das equipes antigas.

Já a remoção tira a pessoa da organização por completo. Nesse caso, ela perde o acesso às bifurcações privadas dos repositórios, embora mantenha as cópias locais que já tinha.

Em ambos os casos, o GitHub guarda os dados de participação por três meses. Assim, se você convidar a pessoa de novo dentro desse prazo, consegue restaurar os privilégios anteriores.

Vale um cuidado extra quando a organização usa SCIM ou um provedor de identidade. Nesse cenário, a remoção acontece pelo próprio provedor, e não pela aba People.

Moderação nas organizações no GitHub

Os recursos de moderação ficam nas configurações da organização e reúnem três funcionalidades principais. Eles ajudam a manter as conversas saudáveis, principalmente em projetos públicos.

Proprietários e moderadores podem usar esses recursos nas organizações no GitHub. A seguir, você confere cada funcionalidade e os cuidados necessários.

Bloqueio de usuários

Nas organizações no GitHub, o bloqueio impede que o usuário favorite, bifurque ou observe os repositórios. Além disso, ele não consegue editar páginas da wiki nem abrir ou comentar issues e pull requests.

Quando você bloqueia alguém, o GitHub também remove as estrelas, as atribuições de issues e o acesso de colaborador dessa pessoa. Convites pendentes também deixam de valer.

Na hora do bloqueio, você escolhe se ele vale por tempo indeterminado ou por um período definido. Também dá para ocultar os comentários do usuário e enviar uma notificação explicando o motivo.

Limitar interações

O limite de interação restringe ações de quem está fora da organização, como comentar, abrir issues ou criar pull requests. Por exemplo, você pode limitar contas novas, pessoas que nunca contribuíram ou quem não tem permissão de escrita.

Esses limites duram 24 horas, 3 dias, 1 semana, 1 mês ou 6 meses. Assim, eles funcionam bem para conter um pico de spam ou uma discussão que saiu do controle.

Mas cuidado, porque o limite definido na moderação da organização se sobrepõe às configurações de cada repositório. Enquanto ele estiver ativo, você não consegue ligar ou desligar limites de interação em repositórios individuais.

Limitar revisão de código

Por padrão, qualquer usuário pode aprovar ou pedir mudanças em um pull request de um repositório público das organizações no GitHub. Com o limite de revisão de código, apenas quem tem acesso explícito ao repositório consegue aprovar ou solicitar alterações.

Mesmo assim, qualquer pessoa continua livre para comentar no pull request. Ou seja, a discussão segue aberta, mas a decisão fica com quem participa do projeto.

Assim como no limite de interações, é preciso ter cuidado ao ativar essa opção. Afinal, a configuração da organização reescreve os limites de revisão definidos em cada repositório.

Como acessar a moderação nas organizações no GitHub

Para acessar a moderação nas organizações no GitHub, abra a página da organização e clique em Settings, a opção de configurações. As imagens abaixo mostram esse caminho.

Menu superior da organização com a aba de configurações em destaque
O primeiro passo é abrir a aba de configurações da organização.

Em seguida, procure a seção Moderation no menu lateral. Ali estão os itens Blocked users, Interaction limits e Code review limits.

Menu lateral das configurações com a seção de moderação e suas opções
A seção de moderação agrupa bloqueios, limites de interação e limites de revisão.

Boas práticas para organizações no GitHub

Depois de conhecer os papéis e as telas, vale reunir alguns cuidados que evitam problemas comuns. Essas práticas seguem as recomendações da documentação e o bom senso de administração.

Primeiro, mantenha pelo menos dois proprietários nas organizações no GitHub, mas não muito mais do que isso. Dessa forma, você evita tanto o risco de perder o acesso quanto o excesso de poder distribuído.

Em seguida, aplique o princípio do menor privilégio. Ou seja, cada pessoa recebe apenas o papel de que precisa para trabalhar, nem mais nem menos.

Também use papéis específicos, como gerente de cobrança e gerente de segurança, em vez de transformar todos em proprietários. Assim, a área financeira e a equipe de segurança trabalham sem tocar no que não é delas.

Para consultores e pessoas temporárias, prefira o papel de colaborador externo. Com isso, eles acessam apenas os repositórios necessários e não enxergam o restante da organização.

Por fim, revise a aba People com frequência. Quando alguém sai da empresa, remova o acesso logo, porque contas esquecidas são uma porta aberta.

Além disso, organize as pessoas em equipes para facilitar a atribuição de permissões. O artigo sobre gestão de equipes com GitHub mostra como criar e administrar essas equipes.

Se a sua organização também cuida do planejamento do trabalho, vale conhecer o artigo sobre gestão de projetos com GitHub. Assim, você une pessoas, equipes e tarefas na mesma estrutura.

Próximos passos com organizações no GitHub

Este artigo encerra a série sobre gestão de projetos, organizações e equipes com GitHub. Agora, você pode usar esses recursos em projetos pessoais para ganhar prática e entender como eles afetam a sua produtividade.

Uma boa ideia é criar uma organização de teste e convidar um colega, porque a prática fixa como as organizações no GitHub funcionam. Então, experimente atribuir papéis diferentes e observe o que cada pessoa consegue ver.

Depois, avance para temas como documentação com GitHub e automação com deploy de ASP.NET usando GitHub Actions e Microsoft Azure. Também vale ler sobre GitHub Packages e GitHub Actions para distribuir contextos delimitados.

Para aprofundar o controle de versão, o curso gratuito Fundamentos do Git e Azure DevOps é um ótimo complemento. Vamos lá, mão na massa!

FAQ

Dá para fazer login em uma organização no GitHub?

Não, porque a organização é uma conta compartilhada sem login próprio. Cada pessoa entra com a sua conta pessoal e acessa a organização conforme o papel que recebeu.

Quantos proprietários uma organização deve ter?

O GitHub recomenda pelo menos dois proprietários. Ao mesmo tempo, sugere manter esse grupo pequeno para reduzir riscos.

Qual a diferença entre integrante e colaborador externo?

O integrante é membro da organização e enxerga equipes e outros membros. Já o colaborador externo acessa apenas repositórios específicos, sem fazer parte da organização.

O que acontece com os dados de quem foi removido?

O GitHub guarda os dados de participação por três meses. Se a pessoa voltar nesse prazo, você consegue restaurar os privilégios anteriores.

Quem pode usar os recursos de moderação?

Proprietários e moderadores podem bloquear usuários, limitar interações e limitar revisões de código. Esses recursos ficam em Settings, na seção Moderation.