J'aimerais obtenir le corps, l'objet et l'URL de la demande d'extraction à partir du numéro de problème par la commande git, en particulier par la bibliothèque gitPython. Comment puis-je le faire?

1
jacobcan118 19 févr. 2020 à 18:48

1 réponse

Meilleure réponse

GitPython est utilisé pour git objets liés alors qu'une Pull Request est liée à GitHub et ne peut donc pas être utilisée pour obtenir des données GitHub.

Vous pouvez utiliser l'API GraphQL v4 de GitHub pour obtenir les détails de la demande d'extraction avec la requête ci-dessous

query {
  repository(name: "gitPython",owner:"gitpython-developers"){
    pullRequest(number:974){
      body
      title
      url
    }
  }
}

La requête curl pour la requête ci-dessus :

curl -L -X POST 'https://api.github.com/graphql' \
-H 'Authorization: bearer <token>' \
-H 'Content-Type: text/plain' \
--data-raw '{"query":"{\n repository(name: \"gitPython\",owner:\"gitpython-developers\"){\n pullRequest(number:974){\n body\n title\n url\n }\n }\n }"'

La réponse à la demande ci-dessus :

{
  "data": {
    "repository": {
      "pullRequest": {
        "body": "Removed A from Dockerfile that I added accidentally. THIS WILL BREAK THE BUILD",
        "title": "Remove A from Dockerfile",
        "url": "https://github.com/gitpython-developers/GitPython/pull/974"
      }
    }
  }
}

Remarque : Vous devez générer un token pour accéder à l'API GraphQL, que vous pouvez générer en suivant les étapes indiquées sur ici

Alternativement, vous pouvez même utiliser l'API v3 de GitHub comme ci-dessous pour obtenir les détails de la demande d'extraction, qui auraient le corps, le titre et champs URL dans le cadre de la réponse

GET https://api.github.com/repos/{owner}/{repoName}/pulls/{pullRequestNumber}

GET https://api.github.com/repos/gitpython-developers/GitPython/pulls/974
1
Madhu Bhat 19 févr. 2020 à 16:42