2017-10-20 37 views
2

J'essaye de construire une application pour suivre GitHub "Streaks" (Combien de jours de suite un utilisateur a commis à GitHub.) J'essaie pour utiliser l'API GitHub pour cela, mais je ne sais pas où. Si je ne peux pas reculer la ligne, si je pouvais trouver un moyen de voir si ils avaient commis un jour donné (comme hier), je pourrais récursivement déterminer la série en continuant à vérifier la veille jusqu'à ce qu'il n'y avait pas pas un commit.Vérifier si un utilisateur a fait un commit à Github en utilisant l'API sur un jour donné

Je peux trouver des détails sur un engagement spécifique https://developer.github.com/v3/repos/commits/

Et je peux récupérer des données pour un seul utilisateur: https://developer.github.com/v3/users/#get-a-single-user

Mais je ne peux pas sembler trouver comment interroger l'API pour déterminer si la l'utilisateur a fait un commit un jour donné.

+0

Je vois qu'il y a plusieurs champs "date" dans la réponse provenant de https://developer.github.com/v3/repos/commits/. Ne pourriez-vous pas utiliser ceux-là? – Michele

+0

Je pense que j'aurais besoin du 'owner' et du' repository' pour faire ça? '/ repos /: owner /: repo/commits' Je n'ai pas de repo spécifique que je cherche, je suis juste curieux de savoir s'ils ont fait un commit. –

Répondre

3

Vous pouvez essayer d'utiliser l'API GitHub Search Commits pour cela. Par exemple, pour rechercher les validations pour l'utilisateur km-poonacha sur 2017-08-28, vous pouvez effectuer la demande suivante.

curl -H 'Accept: application/vnd.github.cloak-preview' \https://api.github.com/search/commits?q=author:km-poonacha+author-date:2017-08-28

Ref. Searching commits

+0

C'est génial! Y a-t-il un moyen de récupérer simplement le "total_count": 12, 'de sorte que je ne reçoive pas la charge supplémentaire de tous les commits puisque je m'en fous? –

+2

Je pense que la meilleure façon de restreindre la charge utile est d'utiliser le paramètre '& per_page = 1' et de restreindre le nombre de résultats de recherche à afficher à sa valeur la plus basse" 1 ". Je ne suis pas trop sûr, mais je ne pense pas que vous pouvez simplement obtenir le paramètre 'total_count'. – Poonacha

+1

Cela a du sens, ce n'est pas une énorme charge utile, donc ce n'est pas la fin du monde, c'est juste beaucoup plus grand que nécessaire. –