Comment puis-je obtenir une liste de tous les pull requests pour les pensions de titres par le biais de l'API github?
Je veux obtenir une liste de tous les pull requests sur les pensions de titres par le biais de l'API github. J'ai suivi les instructions à http://developer.github.com/v3/pulls/ mais quand j'ai une requête '/repos/:propriétaire/:repo/tire sa constante de retour de moins en moins de tirer les demandes que sont affichés sur le site web.
Par exemple, quand j'ai une requête à la torvalds/linux repo-je obtenir 9 ouvrez pull requests (il y en a 14 sur le site). Si je ajouter?état=fermé " je reçois un ensemble différent de 11 fermé pull requests (le site montre autour de 20).
Personne ne sait où cette anomalie se produit, et si il y a moyen d'obtenir une liste complète de tirer les demandes de pensions de titres via l'API?
OriginalL'auteur ResearchMills | 2013-07-02
Vous devez vous connecter pour publier un commentaire.
PyGithub (https://github.com/PyGithub/PyGithub), une bibliothèque Python pour accéder à l'API GitHub v3, vous permet d'obtenir paginé ressources.
Par exemple,
Voir la documentation (http://pygithub.readthedocs.io/en/latest/index.html).
OriginalL'auteur Daisuke SHIBATO
Vous pouvez obtenir tous les pull requests (fermé, ouvert, fusionnées) par le biais de la variable
state
.Juste mis
state=all
dans la requête, comme this->Pour plus d'info: vérifier les Paramètres de la table à https://developer.github.com/v3/pulls/#list-pull-requests
Edit: Comme par Tomáš Votruba commentaire:
Mon problème est que si je REÇOIS ?etat=tous, il donne un plus petit nombre de ?état=fermé + ?etat=ouvert
Important: la valeur par défaut, "per_page=30". Le maximum est de per_page=100. Pour obtenir plus de 100 résultats, vous avez besoin de l'appeler plusieurs les itmes: "&page=1", "&page=2"...
OriginalL'auteur akshaynagpal
Si vous voulez récupérer tous les pull requests (s'engage, commentaires, questions, etc) vous devez utiliser la pagination.
https://developer.github.com/v3/#pagination
La requête GET "tire", vous obtiendrez uniquement ouvert tirez-les demandes.
Si vous souhaitez obtenir toutes les pull-demandes, soit vous définissez le paramètre de l'etat à tous, ou que vous utilisez des questions.
Informations supplémentaires
Si vous avez besoin d'autres données à partir de Github, tels que les questions, alors vous pouvez identifier tirez-les demandes de questions, et vous pouvez ensuite récupérer chaque pull-request peu importe si il est ouvert ou fermé. Il vous donnera également un couple de plusieurs attributs (fusionnables, de fusionner, de fusion-commit-sha, n ° de validations etc)
Si un problème est un pull-request, puis il contiendra cet attribut. Sinon, c'est juste une question.
À partir de l'API: https://developer.github.com/v3/pulls/#labels-assignees-and-milestones
"Tous les pull request est un problème, mais pas chaque question est une demande d'extraction. Pour cette raison, “partagé” des actions pour les deux fonctions, comme la manipulation des contrôleurs, des étiquettes et des jalons, sont fournis dans les Questions de l'API."
Modifier j'ai juste trouvé que les questions se comporte de façon similaire à la traction demandes, donc on aurait besoin de le faire récupérer tous en définissant le paramètre d'état à tous les
all
)pardonnez-moi de vous demander, je viens de voir qu'il est fourni par @akshaynagpal
OriginalL'auteur scas
Il y a un moyen pour obtenir une liste complète et vous êtes en train de faire. Qu'utilisez-vous pour communiquer avec l'API? Je soupçonne que vous ne pouvez pas être en train de faire quelque chose correctement. Par exemple (il y a seulement 13 ouvert pull demandes en cours) à l'aide de mon API (wrapper github3.py), je reçois tous les ouvrir pull requests. Un exemple de comment le faire sans mon wrapper python est:
et je peux aussi obtenir ce résultat (vaguement) en cURL, en comptant les résultats de moi-même:
curl https://api.github.com/repos/torvalds/linux/pulls
.Toutefois, si vous exécutez dans un référentiel avec plus de 25 (ou 30) tirez les demandes c'est une tout autre question, mais certainement il n'est pas ce que vous avez des maintenant.
de nombreux points de terminaison sur le GitHub de l'API sont paginés et peut être consulté à l'aide de la Lien les en-têtes sur la réponse. Si vous essayez d'utiliser du python ou ruby pour faire la demande, je peux certainement vous aider à cela.
OriginalL'auteur Ian Stapleton Cordasco
L'API de recherche devraient aider: https://help.github.com/enterprise/2.2/user/articles/searching-issues/
q = repo:org/nom:pr ...
OriginalL'auteur sibidiba