Em geral, os Apps são mais indicados que os OAuth apps.
O OAuth apps e o Apps usam o OAuth 2.0.
OAuth apps só podem agir em nome de um usuário, enquanto Apps podem agir em nome de um usuário ou independentemente.
Para saber mais, confira Diferenças entre os aplicativos e os aplicativos OAuth.
Para obter informações sobre como migrar um OAuth app existente para um App, confira Migrar aplicativos OAuth para aplicativos .
Os Apps fornecem mais controle sobre o que o aplicativo pode fazer. Em vez dos escopos amplos usados pelos OAuth apps, os Apps usam permissões refinadas. Por exemplo, se o seu aplicativo precisar ler o conteúdo de um repositório, um OAuth app exigirá o escopo repo
, o que também permitirá ao aplicativo editar o conteúdo e as configurações do repositório. Um App pode solicitar o acesso somente leitura ao conteúdo do repositório, o que não permitirá que o aplicativo execute ações mais privilegiadas, como editar o conteúdo ou as configurações do repositório.
Os Apps também oferecem mais controle sobre o acesso ao repositório. Com um App, o usuário ou o proprietário da organização que instalou o aplicativo pode decidir quais repositórios o aplicativo pode acessar. Por outro lado, um OAuth app pode acessar todos os repositórios que o usuário que autorizou o aplicativo pode acessar.
Os Apps usam tokens de curta duração. Se o token for vazado, ele será válido por um período menor, o que reduz os danos que podem ser causados. Por outro lado, os tokens do OAuth app só expiram quando a pessoa que autorizou o OAuth app revoga o token.
Esses recursos de segurança ajudam a fortalecer a segurança do seu App, limitando o dano que poderia ser causado se as credenciais do seu aplicativo vazassem. Além disso, isso permite que as organizações com políticas de segurança mais rigorosas usem seu aplicativo.
Os Apps podem agir de maneira independente de um usuário. Isso é útil para automações que não exigem a entrada de usuário.
Assim como os OAuth apps, os Apps ainda podem executar ações em nome de um usuário. Ao contrário dos OAuth apps, que não indicam que a ação foi executada pelo aplicativo, os Apps indicam que a ação foi executada pelo aplicativo em nome do usuário.
Os Apps não estão vinculados a uma conta de usuário de não consomem uma licença. Os Apps permanecem instalados mesmo quando a pessoa que inicialmente instalou o aplicativo deixa a organização. Isso permite que suas integrações continuem funcionando mesmo que as pessoas saiam da sua equipe.
O limite de taxa dos Apps que usam um token de acesso de instalação é escalado com o número de repositórios e o número de usuários da organização. Por outro lado, os OAuth apps têm limites de taxa mais baixos e não são escalados. Para saber mais, confira Limites de taxa para aplicativos .
Os Apps têm webhooks internos e centralizados. Os Apps podem receber eventos de webhook relativos a todos os repositórios e organizações que o aplicativo pode acessar. Por outro lado, os OAuth apps precisam configurar webhooks individualmente para cada repositório e organização.
Em geral, os Apps e os OAuth apps podem fazer as mesmas solicitações de API. No entanto, há algumas diferenças:
- A API REST usada para gerenciar as execuções de verificação e os pacotes de verificação só está disponível para os Apps.
- Recursos de nível empresarial, como o próprio objeto corporativo, não estão disponíveis para Apps. Isso significa que Apps não podem chamar pontos de extremidade como
GET /enterprise/settings/license
. No entanto, recursos empresariais de organização e repositório estão disponíveis. - Algumas solicitações podem retornar dados incompletos dependendo das permissões e do acesso ao repositório que foi permitido a um App. Por exemplo, se o aplicativo fizer uma solicitação para obter todos os repositórios aos quais um usuário pode acessar, a resposta incluirá apenas os repositórios aos quais o aplicativo também recebeu acesso.
Para obter mais informações sobre os pontos de extremidade da API REST disponíveis para os Apps, confira Pontos de extremidade disponíveis para tokens de acesso de instalação do aplicativo .
Caso você deseje acessar os recursos do em nome de um usuário ou em uma organização, ou se você prevê uma integração de longa duração, recomendamos criar um App.
Use personal access tokens para testes de API ou scripts de curta duração. Como um personal access token está associado a um usuário, sua automação pode ser interrompida se o usuário não tiver mais acesso aos recursos de que você precisa. Um App instalado em uma organização não depende de um usuário. Além disso, ao contrário de um usuário, um App não consome uma licença.
O dá suporte a dois tipos de personal access tokens, mas recomenda que você use fine-grained personal access tokens em vez de personal access tokens (classic) sempre que possível. Para obter mais informações sobre os personal access tokens, confira Gerenciar seus tokens de acesso pessoal.
Os Apps e o Actions fornecem maneiras de criar ferramentas de automação e fluxo de trabalho.
O Actions fornece automação que pode executar trabalhos como integração contínua, tarefas de implantação e gerenciamento de projetos em um repositório. Eles são executados diretamente em computadores do executor hospedado no ou em executores auto-hospedados configurados pelo administrador. O Actions não é executado de maneira persistente. Os fluxos de trabalho dele são executados em resposta a eventos que ocorrem no repositório e só têm acesso aos recursos do repositório para os quais estão configurados. No entanto, as ações personalizadas podem ser compartilhadas entre repositórios e organizações, permitindo que os desenvolvedores reutilizem e modifiquem as ações existentes de acordo com as necessidades. O Actions também é fornecido com um gerenciamento de segredos interno, que você pode usar para interagir com segurança com serviços de terceiros e gerenciar chaves de implantação com segurança.
Apps executados de forma persistente em um servidor ou infraestrutura de computação que você fornece ou executa em um dispositivo de usuário. Eles podem reagir a eventos de webhook de , bem como eventos de fora do ecossistema de . Elas são uma boa opção para operações que abrangem vários repositórios ou organizações ou para fornecer serviços hospedados a outras organizações. Um App é a melhor opção ao criar uma ferramenta com funções que ocorrem principalmente fora do ou que exigem mais tempo ou permissões do que um fluxo de trabalho Actions alocado.
Para obter mais informações sobre como comparar o Actions com o Apps, confira Sobre ações personalizadas.
É possível usar um App para autenticar em um fluxo de trabalho Actions se o _TOKEN
integrado não tiver permissões suficientes. Para saber mais, confira Fazer solicitações de API autenticadas com um Aplicativo do em um fluxo de trabalho do Actions.