[PYTHON] Dans la fusion via pull request, il n'y a pas d'informations de committer dans la réponse de l'API Github

Doit être dans la documentation de l'API Github Il y a un état où le contenu de la réponse ne peut pas être pris, J'enquêtais sur la cause de ce qui n'allait pas, mais je ne comprenais toujours pas, alors je suis rentré chez moi et j'ai vérifié.

Vérifiez la réponse de / repos /: owner /: repo / commun '' de l'API Github. http://developer.github.com/v3/repos/commits/

Tout d'abord, obtenons un jeton en utilisant OAuth.

curl https://api.github.com/authorizations \
--user "futoase" \
--data '{"scopes": ["repo"], "note": "Test"}'

Référence

Puisqu'il est difficile de comprendre ce qui ne va pas avec la bibliothèque (est-ce l'influence de la méthode d'analyse ou du singleton sur le contenu de la réponse de la bibliothèque) Tirez les données de texte via curl et tirez-les Vérifiez le contenu en exécutant l'analyseur json de Python. (Pour la réponse, la partie d'en-tête est supprimée)

... à titre d'exemple, récupérez les comits du dépôt npm d'isaacs.

curl -i "https://api.github.com/repos/isaacs/npm/commits?access_token={access_token}" > npm

Découpez la partie du corps de la réponse et analysez json pour vérifier le contenu.

cat npm | python -mjson.tool

Perth est bien fait. Vérifiez donc s'il existe une clé de validation.

verify.py


#!/usr/bin/env python
# -*- coding:utf-8 -*-

import json
import sys


def parse(file_name):
    with open(file_name, 'r') as f:
        results = json.loads(f.read())

    for result in results:
        if result.get('committer') is None:
            print('\ncommitter is None: ' + result.get('sha'))
        else:
            print('.', end="")


if __name__ == '__main__':
    parse(sys.argv[1])

Je vais alimenter le fichier que je n'ai eu aucun problème avec l'analyse plus tôt.

./verify.py npm

Quand je l'ai retourné, 3 cas sur 30, le résultat était qu'il n'y avait pas de committer. (Ignorer Page Nation etc.)

............…..
commiter is None: 4638a792fda9a322c4084a46728ebcc9cdab0036
commiter is None: e9e1db1cafcc7e311ddbd8137ae3b74857768469
.
commiter is None: 94de57821d58f3e36a9747f0212f9d4545a896e7

Comme test, vérifions e9e1db1.

https://api.github.com/repos/isaacs/npm/commits/e9e1db1cafcc7e311ddbd8137ae3b74857768469

committer: nul.

Je me demande pourquoi, vérifiez le contenu du commit à partir du journal git.

git log -p e9e1db1cafcc7e311ddbd8137ae3b74857768469

commit e9e1db1cafcc7e311ddbd8137ae3b74857768469
Author: Domenic Denicola <[email protected]>
Date: Mon Jan 28 03:10:42 2013 -0500

    Fix bug in prettyWhere calculation

Jetons un coup d'œil à la Pull Request basée sur le journal de validation ...

https://github.com/isaacs/npm/pull/3100

C'était dans Pull Request. Vérifiez le contenu des autres journaux de validation qui sont `` committer: null ''.

https://api.github.com/repos/isaacs/npm/commits/4638a792fda9a322c4084a46728ebcc9cdab0036

Recherchez Pull Request. https://github.com/isaacs/npm/pull/3103 était.

https://api.github.com/repos/isaacs/npm/commits/94de57821d58f3e36a9747f0212f9d4545a896e7

Recherchez Pull Request. https://github.com/isaacs/npm/pull/3097 était.

Vérifiez le contenu de la réponse de l'API pour le contenu du commit qui était normalement engagé (je ne suis pas sûr de ce que j'ai écrit ...), pas la fusion via Pull Request.

https://api.github.com/repos/isaacs/npm/commits/4f511b99520b5fc76e6bf8e1c44bf71423fddda4

Le committer contient des informations. Si vous y réfléchissez, c'est naturel, mais en tant que réponse API, Parce qu'il n'y a aucun moyen de savoir si le validateur est nul ou non Ne vous attendez pas à ce que la réponse [: committer] vienne, utilisons la réponse [: author] ...

Recommended Posts

Dans la fusion via pull request, il n'y a pas d'informations de committer dans la réponse de l'API Github
Appelez l'API github en python pour obtenir des informations sur la demande d'extraction
Que faire s'il n'y a pas de réponse en raison des paramètres de proxy dans le scraping Web Python
Malheureusement, il n'y a pas de sens d'unité dans la méthode where
J'ai essayé d'utiliser l'API COTOHA (il y a aussi du code sur GitHub)
Il n'y a pas de commutateur en python
Que faire lorsque le résultat téléchargé via scrapy est en anglais
Lorsque la cible est Ubuntu 16.04 dans Ansible
Y a-t-il NaN dans le DataFrame pandas?