Skip to main content

Autorisation des applications GitHub

Vous pouvez autoriser une GitHub App à permettre à une application de récupérer des informations sur votre compte GitHub et, dans certains cas, d’apporter des modifications sur GitHub en votre nom.

Les applications tierces qui doivent vérifier votre identité GitHub ou interagir avec les données sur GitHub pour votre compte peuvent vous demander d’autoriser l’GitHub App pour cela.

Quand vous autorisez l’GitHub App, veillez à ce qu’il s’agisse d’une application de confiance, à vérifier par qui elle a été développée et à passer en revue les types d’informations auxquels elle veut accéder.

Dans le cadre de l’autorisation, vous êtes invité à accorder à l’GitHub App les autorisations suivantes :

  • Vérifier votre identité GitHub
    Quand elle est autorisée, l’GitHub App peut récupérer par programmation votre profil GitHub public ainsi que certains détails privés (tels que votre adresse e-mail) selon le niveau d’accès demandé.
  • Connaître les ressources auxquelles vous pouvez accéder
    Quand elle est autorisée, l’GitHub App peut lire par programmation les ressources GitHub privées auxquelles vous pouvez accéder (par exemple, des dépôts GitHub) et une installation de l’GitHub App est également présente. L’application peut utiliser ceci, par exemple, pour pouvoir vous montrer une liste de dépôts appropriée.
  • Agir en votre nom
    L’application peut avoir besoin d’effectuer des tâches sur GitHub en votre nom, par exemple créer un problème ou commenter une demande de tirage (pull request). Cette capacité à agir en votre nom est limitée aux ressources GitHub auxquelles l’GitHub App et vous-même avez accès. Toutefois, dans certains cas, l’application n’apportera jamais de modifications en votre nom.

Dans quelles situations une GitHub App agit-elle en votre nom ?

Les situations dans lesquelles une GitHub App agit en votre nom varient selon l’objectif de l’GitHub App et le contexte dans lequel elle est utilisée.

Par exemple, un environnement de développement intégré (IDE) peut utiliser une GitHub App pour interagir en votre nom afin de pousser (push) des modifications que vous avez créées avec l’IDE sur des dépôts sur GitHub. L’GitHub App effectue cette opération à l’aide d’une requête d’utilisateur à serveur.

Quand une GitHub App agit en votre nom de cette façon, l’action est identifiée sur GitHub à l’aide d’une icône spéciale avec un petit avatar de l’GitHub App superposé à votre propre avatar, comme illustré ci-dessous.

Problème créé par une requête d’« utilisateur à serveur » à partir d’une GitHub App

Dans quelle mesure une GitHub App peut-elle savoir à quelles ressources vous pouvez accéder et agir en votre nom ?

La mesure dans laquelle une GitHub App peut savoir à quelles ressources vous pouvez accéder et agir en votre nom quand vous l’avez autorisée est limitée par :

  • Les organisations ou dépôts sur lesquels l’application est installée
  • Les autorisations demandées par l’application
  • Votre accès aux ressources GitHub

Utilisons un exemple pour expliquer cela.

Alice, utilisatrice de GitHub, se connecte à une application web tierce, ExampleApp, avec son identité GitHub. Pendant ce processus, Alice autorise ExampleApp à effectuer des actions en son nom.

Toutefois, l’activité qu’ExampleApp est en mesure d’effectuer au nom d’Alice sur GitHub est limitée par : les dépôts sur lesquels ExampleApp est installée, les autorisations demandées par ExampleApp et l’accès d’Alice aux ressources GitHub.

Ainsi, pour qu’ExampleApp puisse créer un problème au nom d’Alice dans un dépôt appelé Dépôt A, toutes les conditions suivantes doivent être remplies :

  • L’GitHub App d’ExampleApp demande l’accès en écriture aux problèmes.
  • Un utilisateur disposant d’un accès administrateur au Dépôt A doit avoir installé l’GitHub App d’ExampleApp sur le Dépôt A.
  • Alice doit avoir l’autorisation de lecture sur le Dépôt A. Pour obtenir des informations sur les autorisations nécessaires pour effectuer différentes activités, consultez « Rôles de dépôt pour une organisation ».