Publicamos atualizações frequentes em nossa documentação, e a tradução desta página ainda pode estar em andamento. Para obter as informações mais recentes, acesse a documentação em inglês. Se houver problemas com a tradução desta página, entre em contato conosco.

Escopos para aplicativos OAuth

Os escopos permitem especificar exatamente que tipo de acesso você precisa. Os escopos limitam o acesso para tokens do OAuth. Não concedem qualquer autorização adicional para além da que o usuário já possui.

Neste artigo

Ao configurar um aplicativo OAuth no GitHub, os escopos solicitados são exibidos para o usuário no formulário de autorização.

Observação: Se você está criando um aplicativo no GitHub, você não precisa fornecer escopos na sua solicitação de autorização. Para obter mais informações sobre isso, consulte "Identificar e autorizar usuários para aplicativos GitHub".

Verifique os cabeçalhos para ver quais escopos do OAuth você tem e o que a ação da API aceita:

$ curl -H "Authorization: token OAUTH-TOKEN" http(s)://[hostname]/api/v3/users/codertocat -I
HTTP/1.1 200 OK
X-OAuth-Scopes: repo, user
X-Accepted-OAuth-Scopes: user
  • X-OAuth-Scopes lista o escopo que seu token autorizou.
  • X-Accepted-OAuth-Scopes lista os escopos verificados pela ação.

Escopos disponíveis

NomeDescrição
(sem escopo)Concede acesso somente leitura a informações públicas (inclui informações de perfil do usuário público, informações de repositório público e gists)
site_adminConcede acesso de administrador aos pontos de extremidades da API de administração GitHub Enterprise Server.
repoConcede acesso total a repositórios privados e públicos. Isso inclui acesso de leitura/gravação ao código, status do commit, repositório e projetos da organização, convites, colaboradores, adição de associações de equipe, status de implantação e webhooks de repositórios para repositórios e organizações públicos e privados. Também concede capacidade para gerenciar projetos de usuário.
repo:statusConcede acesso de leitura/gravação aos status do commit do repositório público e privado. Esse escopo só é necessário para conceder a outros usuários ou serviços acesso a status de compromisso de repositórios privados sem conceder acesso ao código.
repo_deploymentConcede acesso aos status de implantação para repositórios públicos e privados. Esse escopo só é necessário para conceder a outros usuários ou serviços acesso ao status de implantação, sem conceder acesso ao código.
public_repoLimita o acesso a repositórios públicos. Isso inclui acesso de leitura/gravação em código, status de commit, projetos de repositório, colaboradores e status de implantação de repositórios e organizações públicos. Também é necessário para repositórios públicos marcados com uma estrela.
repo:inviteConcede habilidades de aceitar/recusar convites para colaborar em um repositório. Este escopo só é necessário para conceder a outros usuários ou servicos acesso a convites sem conceder acesso ao código.
admin:repo_hookConcede acesso de leitura, gravação e ping aos hooks do repositório em repositórios públicos e privados. O escopos do repo e public_repo concede acesso total aos repositórios, incluindo hooks de repositório. Use o escopo admin:repo_hook para limitar o acesso apenas a hooks de repositório.
write:repo_hookConcede acesso de leitura, escrita e ping para os hooks em repositórios públicos ou privados.
read:repo_hookConcede acesso de leitura e ping para hooks em repositórios públicos ou privados.
admin:orgGerencia totalmente a organização e suas equipes, projetos e associações.
write:orgAcesso de leitura e gravação à associação da organização, aos projetos da organização e à associação da equipe.
read:orgAcesso somente leitura à associação da organização, aos projetos da organização e à associação da equipe.
admin:public_keyGerenciar totalmente as chaves públicas.
write:public_keyCriar, listar e visualizar informações das chaves públicas.
read:public_keyListar e visualizar informações para as chaves públicas.
admin:org_hookConcede acesso de leitura, gravação, ping e e exclusão de hooks da organização. Observação: Os tokens do OAuth só serão capazes de realizar essas ações nos hooks da organização que foram criados pelo aplicativo OAuth. Os tokens de acesso pessoal só poderão realizar essas ações nos hooks da organização criados por um usuário.
gistConcede acesso de gravação aos gists.
notificaçõesCondece:
acesso de gravação a notificações de um usuário
acesso para marcar como leitura nos threads
acesso para inspecionar e não inspecionar um repositório e
acesso de leitura, gravação e exclusão às assinaturas dos threads.
usuárioConcede acesso de leitura/gravação apenas às informações do perfil. Observe que este escopo inclui user:email e user:follow.
read:userConcede acesso para ler as informações do perfil de um usuário.
usuário:emailConcede acesso de leitura aos endereços de e-mail de um usuário.
user:followConcede acesso para seguir ou deixar de seguir outros usuários.
delete_repoConcede acesso para excluir repositórios administráveis.
write:discussionPermite acesso de leitura e gravação para discussões da equipe.
leia:discussionPermite acesso de leitura para as discussões de equipe.
admin:gpg_keyGerenciar totalmente as chaves GPG.
write:gpg_keyCriar, listar e visualizar informações das chaves GPG.
read:gpg_keyListe e visualize informações para as chaves GPG.

Observação: O seu aplicativo OAuth pode solicitar os escopos no redirecionamento inicial. Você pode especificar vários escopos separando-os com um espaço:

https://github.com/login/oauth/authorize?
  client_id=...&
  scope=user%20public_repo

Escopos solicitados e escopos concedidos

O atributo escopo lista os escopos adicionados ao token que foram concedido pelo usuário. Normalmente, estes escopos são idênticos aos que você solicitou. No entanto, os usuários podem editar seus escopos, concedendo, efetivamente, ao seu aplicativo um acesso menor do que você solicitou originalmente. Além disso, os usuários podem editar o escopo do token depois que o fluxo do OAuth for concluído. Você deve ter em mente esta possibilidade e ajustar o comportamento do seu aplicativo de acordo com isso.

É importante lidar com casos de erro em que um usuário escolhe conceder menos acesso do que solicitado originalmente. Por exemplo, os aplicativos podem alertar ou informar aos seus usuários que a funcionalidade será reduzida ou não serão capazes de realizar algumas ações.

Além disso, os aplicativos sempre podem enviar os usuários de volta através do fluxo para obter permissão adicional, mas não se esqueça de que os usuários sempre podem dizer não.

Confira o Príncípios do guia de autenticação, que fornece dicas para lidar com escopos de token modificável.

Escopos normalizados

Ao solicitar vários escopos, o token é salvo com uma lista normalizada de escopos, descartando aqueles que estão implicitamente incluídos pelo escopo solicitado. Por exemplo, a solicitação do usuário user,gist,user:email irá gerar apenas um token com escopos de usuário e gist, desde que o acesso concedido com o escopo user:email esteja incluído no escopo usuário.

Esse documento ajudou você?

Privacy policy

Ajude-nos a tornar esses documentos ótimos!

Todos os documentos do GitHub são de código aberto. Você percebeu que algo que está errado ou não está claro? Envie um pull request.

Faça uma contribuição

Ou, aprenda como contribuir.