Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Adicionando colaborador sem permissão para commit

Olá, adicionei um usuário como colaborador mas não encontrei uma forma de restringir o commit no github. A partir da conta do dono do repositório, enviei o convite para o usuário colaborador, o qual aceitou, porém não encontrei opção de restrição. Como faço?

2 respostas
solução!

Fala Roger, tudo bem ?

Então, em repositórios pessoais (que tem um -unico- usuário padrão como owner) não é possível fazer esse tipo de controle. Todo collaborator tem acesso a escrita, não é possível fazer que um collaborator tenha apenas acesso leitura, por exemplo.

Fonte da documentações: https://help.github.com/articles/access-permissions-on-github/

Veja essa parte da documentação sobre permission levels for a user account repository:

Collaborators can't have read-only access to repositories owned by a user account

Todo Collaborator sempre tem os seguintes acessos:

Collaborators on a personal repository can:

  • Push to (write), pull from (read), and fork (copy) the repository

  • Create, apply, and delete labels and milestones

  • Open, close, re-open, and assign issues

  • Edit and delete comments on commits, pull requests, and issues

... e várias outras descritas no link..

Só é possível ter esse tipo de configuração mais granular em repositórios de organization accounts. Tem até uma dica a respeito disso na mesma documentação.

note

Você pode criar uma organization no github e ter esse gerenciamento nos repos dela. =)

Alternativamente, o que você poderia fazer pra ter um pouco de proteção à escrita mesmo no repo do seu usuario do github, é utilizar alguma restrição sobre branches, como a master por exemplo.

Na área de Settings, você pode selecionar Branches:

branches

Perceba que nesse exemplo não existe nenhuma regra adicionada. Se você clicar em Add rule você pode por exemplo proibir pushes para a branch master, obrigando qualquer colaborador a fazer push pra uma outra branch e que só pode ser "mergeada" para a master a partir de quantidades predefinidas de aprovações de reviews.

Exemplo: add rule

Enfim, espero ter ajudado. Abraço!

Rafael, obrigado! Ficou bastante claro.