Skip to main content

Sobre as funções personalizadas do repositório

Você pode controlar o acesso aos repositórios da sua organização de forma mais granular, com funções de repositório personalizadas.

Note

Somente organizações que usam o GitHub Enterprise Cloud podem criar funções de repositórios personalizadas.Para obter mais informações sobre como você pode experimentar o GitHub Enterprise Cloud gratuitamente, confira "Como configurar uma avaliação do GitHub Enterprise Cloud".

Sobre as funções personalizadas do repositório

Para executar quaisquer ações em GitHub Enterprise Cloud, como criar um pull request em um repositório ou alterar as configurações de cobrança de uma organização, uma pessoa deve ter acesso suficiente à conta ou recurso relevante. Esse acesso é controlado por permissões. Uma permissão é a capacidade de executar uma ação específica. Por exemplo, a capacidade de excluir um problema é uma permissão. Uma função é um conjunto de permissões que você pode atribuir a pessoas ou equipes.

Dentro de uma organização, você pode atribuir funções ao nível da organização, equipe e repositório. Para obter mais informações sobre os diferentes níveis de funções, confira "Funções em uma organização".

Você pode ter um controle mais granular sobre as permissões concedidas no nível do repositório criando até cinco funções de repositório personalizadas. Uma função de repositório personalizado é um conjunto configurável de permissões com um nome personalizado que você escolheu. Para obter mais informações, confira "Gerenciando as funções de repositórios personalizados para uma organização".

Depois de criar um cargo personalizado, qualquer pessoa com acesso de administrador a um repositório pode atribuir a função a um indivíduo ou equipe. Para obter mais informações, confira "Gerenciar o acesso de um indivíduo a um repositório da organização" e "Gerenciar o acesso da equipe em um repositório da organização."

Você também pode usar a API REST para criar e gerenciar funções de repositório personalizadas. Para obter mais informações, confira "Pontos de extremidade de API REST para funções de repositório personalizadas".

As funções de repositório personalizadas gerenciam o acesso a repositórios específicos em sua organização. Para conceder acesso a todos os repositórios e para controlar o acesso às configurações de administração da sua organização, você pode usar funções personalizadas da organização. Confira "Sobre as funções da organização personalizadas".

As funções personalizadas da organização diferem das funções do repositório, concedendo permissões em todos os repositórios atuais e futuros da organização. As funções de repositório personalizadas, no entanto, permitem que você conceda permissões a repositórios específicos dentro da organização.

Sobre a função herdada

Ao criar uma função de repositório personalizado, você começa escolhendo uma função herdada de um conjunto de opções predefinidas. A função herdada determina o conjunto inicial de permissões incluídas na função personalizada. Em seguida, você pode personalizar ainda mais a função escolhendo as permissões adicionais para dar à função. Para ver a lista completa de permissões disponíveis, confira "Permissões adicionais para funções personalizadas".

As suas opções para a função herdada são padronizadas para diferentes tipos de contribuidores do seu repositório.

Função herdadaCriado para
LeituraContribuidores sem código que querem ver ou discutir seu projeto
TriagemOs colaboradores que precisam gerenciar proativamente problemas e pull requests sem acesso de gravação
GravarIntegrantes e colaboradores da organização que fazem push ativamente no seu projeto
ManterGerentes de projeto que precisam gerenciar o repositório sem acesso a ações sensíveis ou destrutivas

Exemplos de função personalizada

Aqui estão alguns exemplos de funções de repositórios personalizados que você pode configurar.

Função do repositório personalizadoResumoFunção herdadaPermissões adicionais
Engenheiro de segurançaCapaz de contribuir com código e manter o pipeline de segurançaManterExcluir resultados da varredura de código
Prestador de serviçoCapaz de desenvolver integrações de webhooksGravarGerenciar webhooks
Gerente de comunidadeCapaz de lidar com todas as interações da comunidade sem ser capaz de contribuir com códigoLeitura– Marcar um problema como duplicado
– Gerenciar as configurações de página do GitHub
– Gerenciar as configurações do wiki
– Definir a visualização social
– Editar os metadados do repositório
– Discussões sobre triagem

Permissões adicionais para funções personalizadas

Depois de escolher uma função herdada, você poderá selecionar as permissões adicionais para a sua função personalizada.

Você só pode escolher uma permissão adicional se já não estiver incluída na função herdada. Por exemplo, se a função herdada oferecer acesso de Gravação em um repositório, a permissão "Fechar uma solicitação de pull" já estará incluída na função herdada.

Discussões

  • Criar uma categoria de discussão
  • Editar uma categoria de discussão
  • Excluir uma categoria de discussão
  • Marcar ou desmarcar respostas de discussão
  • Ocultar ou mostrar comentários da discussão
  • Converter problemas em discussões

Para obter mais informações, confira "Documentação do GitHub Discussions".

Problemas e Pull Requests

  • Atribuir ou remover um usuário
  • Adicionar ou remover um rótulo

Problema

  • Fechar um problema
  • Reabrir um problema fechado
  • Excluir um problema
  • Marcar um problema como duplicado

Pull Request

  • Fechar uma solicitação de pull
  • Reabrir uma solicitação de pull fechada
  • Solicitar uma revisão de solicitação de pull

Repositório

  • Definir os marcos
  • Gerenciar as configurações do wiki
  • Gerenciar as configurações do projeto
  • Gerenciar as configurações de mesclagem de solicitação de pull
  • Gerenciar as configurações do GitHub Pages (confira "Configurar uma fonte de publicação para o site do GitHub Pages")
  • Gerenciar webhooks
  • Gerenciar as chaves de implantação
  • Editar os metadados do repositório
  • Definir os limites de interação
  • Definir a visualização social
  • Efetuar push em commits para branches protegidos
    • A função base deve ser write
    • As regras de proteção de branch ainda se aplicam
  • Criar marcas protegidas
  • Excluir marcas protegidas
  • Ignorar proteções de branch
  • Editar regras do repositório

Segurança

  • Exibir os resultados da code scanning
  • Ignorar ou reabrir os resultados da code scanning
  • Excluir os resultados da code scanning
  • Exibir os Dependabot alerts
  • Ignorar ou reabrir os Dependabot alerts
  • Exibir os resultados da secret scanning
  • Ignorar ou reabrir os resultados da secret scanning

Precedência para diferentes níveis de acesso

Funções e permissões são cumulativas. Se uma pessoa receber diferentes níveis de acesso por meio de caminhos diferentes como, por exemplo, a associação a uma equipe e as permissões básicas para uma organização, o usuário receberá a soma de todas as concessões de acesso. Por exemplo, se um proprietário da organização concede a um integrante dela uma função personalizada que use a função "ler" herdada e, em seguida, o proprietário da organização definir a permissão de base da organização para "gravar", os membros com a função personalizada terão acesso de gravação, com todas as outras permissões incluídas na função personalizada.

Se uma pessoa tiver recebido um acesso conflitante, você verá um aviso na página de acesso ao repositório. O aviso é exibido com " Funções mistas" ao lado da pessoa com o acesso conflitante. Para ver a origem do acesso conflitante, posicione o cursor sobre o ícone de aviso ou clique em Funções mistas.

Para resolver o acesso conflitante, você pode ajustar as permissões básicas da sua organização ou o acesso da equipe ou editar a função personalizada. Para obter mais informações, consulte: