GRV96 / commitfetch

This library helps obtaining the data of a repository's commits through the GitHub API. Authentication with GitHub credentials is required.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

commitfetch

FRANÇAIS

Cette bibliothèque aide à obtenir les données des commits d'un dépôt au moyen de l'API de GitHub. L'utilisateur doit fournir ses informations d'authentification.

Contenu

Commit

Cette classe contient des données d'un commit de GitHub.

GitHubCredentials

Cette classe contient le nom d'un utilisateur de GitHub et des jetons d'authentification qu'il possède. Elle aide à effectuer des requêtes authentifiées à l'API de GitHub. Chaque jeton permet 2000 requêtes par heure.

RepoIdentity

Cette classe identifie un dépôt GitHub par le nom de son propriétaire et le nom du dépôt. L'identité est souvent écrite sous le format propriétaire/nom.

extract_text_lines

Cette fonction lit le fichier texte spécifié et renvoie ses lignes dans une liste. Elle permet par exemple d'accéder à des jetons enregistrés dans un fichier texte, un par ligne.

get_repo_commits

Cette fonction est l'élément principal de commitfetch. C'est elle qui effectue les requêtes à l'API de GitHub pour obtenir les données des commits d'un dépôt. Il faut lui fournir des informations d'authentification dans une instance de GitHubCredentials.

read_commit_reprs

Cette fonction lit un fichier texte contenant les représentations d'instances de Commit puis recrée ces objets et les renvoie dans une liste. Les représetations sont des chaînes de caractères renvoyées par la fonction repr. Chaque ligne du fichier doit être une représentation. Les lignes vides sont ignorées.

write_commit_reprs

Cette fonction écrit les représentations d'instances de Commit dans un fichier texte. Les représetations sont des chaînes de caractères renvoyées par la fonction repr. Chaque ligne du fichier est une représentation. La fonction read_commit_reprs peut lire ce fichier.

Démos

Exécutez cette commande pour installer les dépendances.

pip install -r requirements.txt

Consultez les scripts demo_write_commits.py et demo_read_commits.py dans le dépôt de code pour savoir comment utiliser la bibliothèque commitfetch.

demo_write_commits.py obtient les commits d'un dépôt GitHub et enregistre leur représentation dans un fichier texte. Il a besoin d'un fichier listant les jetons d'authentification de l'utilisateur un par ligne pour effectuer des requêtes à l'API GitHub. Pour que ce dépôt ignore les fichiers de jetons, leur nom devrait contenir la chaîne «token».

Exemple d'exécution:

python demo_write_commits.py -u GRV96 -t tokens.txt -r scottyab/rootbeer

Pour essayer demo_write_commits.py avec des nombres de commits variés, utilisez les dépôts ci-dessous.

Dépôt Nombre de commits
k9mail/k-9 12 840
Skyscanner/backpack 7788
mendhak/gpslogger 2811
PeterIJia/android_xlight 397
scottyab/rootbeer 191

demo_read_commits.py montre comment lire les représentations de commits enregistrées par demo_write_commits.py. Pour confirmer que la lecture a fonctionné, il affiche les données d'un commit dans la console.

Exemple d'exécution:

python demo_read_commits.py -c scottyab_rootbeer_commits.txt

ENGLISH

This library helps obtaining the data of a repository's commits through the GitHub API. Authentication with GitHub credentials is required.

Content

Commit

This class contains data about a GitHub commit.

GitHubCredentials

This class contains the name of a GitHub user and authentication tokens that they own. It helps making authenticated requests to the GitHub API. Each token allows 2000 requests per hour.

RepoIdentity

This class identifies a GitHub repository by its owner's name and the repository's name. The identity is often written in the format owner/name.

extract_text_lines

This function reads the specified text file and returns its lines in a list. It allows for example to access tokens stored in a text file, one per line.

get_repo_commits

This function is the main element of commitfetch. It performs requests to the GitHub API to obtain data about a repository's commits. The user must provide their credentials in a GitHubCredentials instance.

read_commit_reprs

This function reads a text file that contains the representations of Commit instances then recreates those objects and returns them in a list. The representations are strings returned by function repr. Each line of the file must be a representation. Empty lines are ignored.

write_commit_reprs

This function writes the representations of Commit instances in a text file. The representations are strings returned by function repr. Each line of the file is a representation. Function read_commit_reprs can read this file.

Demos

Execute this command to install the dependecies.

pip install -r requirements.txt

See scripts demo_write_commits.py and demo_read_commits.py in the source code repository to know how to use library commitfetch.

demo_write_commits.py obtains a GitHub repository's commits and writes their representation in a text file. It needs a file that lists the user's authentication tokens one per line to perform requests to the GitHub API. This repository will ignore the token files if their name contains the string "token".

Execution example:

python demo_write_commits.py -u GRV96 -t tokens.txt -r scottyab/rootbeer

To try demo_write_commits.py with varied numbers of commits, use the repositories below.

Repository Number of commits
k9mail/k-9 12 840
Skyscanner/backpack 7788
mendhak/gpslogger 2811
PeterIJia/android_xlight 397
scottyab/rootbeer 191

demo_read_commits.py shows how to read the commit representations recorded by demo_write_commits.py. It confirms that the reading was successful by displaying a commit's data in the console.

Execution example:

python demo_read_commits.py -c scottyab_rootbeer_commits.txt

About

This library helps obtaining the data of a repository's commits through the GitHub API. Authentication with GitHub credentials is required.

License:MIT License


Languages

Language:Python 100.0%