Aperçu
Le package d'extracteur GitHub est une bibliothèque Python conçue pour faciliter l'extraction des données de GitHub.
Ce package fournit des fonctions pour récupérer des informations sur les référentiels, y compris les langages utilisés, les versions, les contributeurs, les sujets, les workflows, et plus encore avec une gestion des erreurs robuste et une prise en charge de la configuration.
Caractéristiques
- Répertoriez les organisations pour un utilisateur de GitHub.
- Réservez les référentiels pour un utilisateur de GitHub.
- Réservez les référentiels pour une organisation spécifiée de GitHub.
- Prise en charge de l'authentification à l'aide de jetons API GitHub.
- Filtrage des organisations et des référentiels basés sur des modèles donnés.
- Gestion de la pagination pour les demandes d'API.
Installation
Vous pouvez installer l'extracteur GitHub via PIP:
pip install wolfsoftware.github-extractor
Usage
Obtenir des informations de jeton
Vous obtenez des informations de base relatives au jeton donné.
Il existe également un outil de ligne de commande spécifique pour ce validateur de jeton GitHub.
from wolfsoftware . github_extractor import get_token_information
config = {
"token" : "your_github_token" ,
} Paramètres
| Nom | Requis | But |
|---|
| jeton | Oui | Authentification pour l'API GitHub. |
| temps mort | Non | Le délai d'expiration à utiliser lorsque vous parlez à l'API GitHub (par défaut est de 10 secondes). |
| limaces | Non | Si nous renvoyons les résultats sous forme de limaces. (Liste des noms et rien d'autre). |
Obtenir des informations utilisateur
Vous obtenez des informations de base relatives à l'utilisateur authentifié (propriétaire du jeton). Les informations seront limitées par la portée du jeton.
from wolfsoftware . github_extractor import get_authenticated_user
config = {
"token" : "your_github_token" ,
} Paramètres
| Nom | Requis | But |
|---|
| jeton | Oui | Authentification pour l'API GitHub. |
| temps mort | Non | Le délai d'expiration à utiliser lorsque vous parlez à l'API GitHub (par défaut est de 10 secondes). |
| limaces | Non | Si nous renvoyons les résultats sous forme de limaces. (Liste des noms et rien d'autre). |
Listing des organisations
Vous pouvez répertorier les organisations que vous êtes membre de l'utilisation de l'orthographe anglaise britannique ou américaine.
from wolfsoftware . github_extractor import list_organisations , list_organizations
config = {
"token" : "your_github_token" ,
"ignore_orgs" : [ "Test*" ]
}
# Using British English spelling
organisations = list_organisations ( config )
# Using American English spelling
organisations_us = list_organizations ( config ) Paramètres
| Nom | Requis | But |
|---|
| jeton | Oui | Authentification pour l'API GitHub. |
| temps mort | Non | Le délai d'expiration à utiliser lorsque vous parlez à l'API GitHub (par défaut est de 10 secondes). |
| limaces | Non | Si nous renvoyons les résultats sous forme de limaces. (Liste des noms et rien d'autre). |
Filtrage des paramètres
| Nom | Requis | But |
|---|
| include_orgs | Non | Une liste des noms d'organisation à inclure dans les résultats. |
| ignorer_orgs | Non | Une liste des noms d'organisation à exclure des résultats. |
| get_members | Non | Si nous incluons les membres de l'organisation dans les résultats. |
Répertorier les référentiels des utilisateurs
Vous pouvez répertorier les référentiels pour un utilisateur avec des filtres facultatifs:
from wolfsoftware . github_extractor import list_user_repositories
config = {
"token" : "your_github_token" ,
"ignore_repos" : [ "Test*" ],
"include_repos" : [ "Project*" ]
}
repositories = list_user_repositories ( config ) Paramètres
| Nom | Requis | But |
|---|
| jeton | Non | Authentification pour l'API GitHub. |
| temps mort | Non | Le délai d'expiration à utiliser lorsque vous parlez à l'API GitHub (par défaut est de 10 secondes). |
| limaces | Non | Si nous renvoyons les résultats sous forme de limaces. (Liste des noms et rien d'autre). |
| nom d'utilisateur | Non | Le nom d'utilisateur GitHub pour énumérer les référentiels pour. (L'utilisateur authentifié sera utilisé s'il n'est pas fourni). |
Paramètre de données supplémentaire
| Nom | Requis | But |
|---|
| get_branches | Non | Ajoutez des détails sur toutes les branches à chaque référentiel. |
| get_Contributeurs | Non | Ajoutez des détails sur tous les contributeurs à chaque référentiel. |
| get_languages | Non | Ajoutez la liste des langages identifiés pour chaque référentiel. |
| get_releases | Non | Ajoutez des détails sur toutes les versions à chaque référentiel. |
| get_tags | Non | Ajoutez des détails sur toutes les balises à chaque référentiel. |
| get_topics | Non | Ajoutez la liste des sujets définis à chaque référentiel. |
| get_workflows | Non | Ajoutez des détails sur tous les flux de travail à chaque référentiel. |
Paramètre de filtrage
| Nom | Requis | But |
|---|
| Inclure_name | Non | Une liste de noms de référentiel à inclure dans les résultats. |
| Ignore_Names | Non | Une liste de noms de référentiel à exclure des résultats. |
| inclure_repos | Non | Une liste des noms d'organisation / noms de référentiel à inclure dans les résultats. |
| ignorer_repos | Non | Une liste des noms d'organisation / noms de référentiel à exclure des résultats. |
| skip_private | Non | N'incluez pas les référentiels privés, c'est pour l'utilisateur authentifié uniquement. |
Ignorer et inclure les noms utilisent le nom complet du référentiel, qui est le nom de l'organisation / nom du référentiel, par exemple, GitHubToolbox / GitHub-Extractor-Package
Listing des référentiels par organisation
Vous pouvez énumérer les référentiels pour une organisation spécifique avec des filtres facultatifs:
from wolfsoftware . github_extractor import list_repositories_by_org
config = {
"token" : "your_github_token" ,
"org_name" : "your_organization" ,
"ignore_repos" : [ "Test*" ],
"include_repos" : [ "Project*" ]
}
repositories = list_repositories_by_org ( config ) Paramètres
| Nom | Requis | But |
|---|
| jeton | Non | Authentification pour l'API GitHub. |
| temps mort | Non | Le délai d'expiration à utiliser lorsque vous parlez à l'API GitHub (par défaut est de 10 secondes). |
| limaces | Non | Si nous renvoyons les résultats sous forme de limaces. (Liste des noms et rien d'autre). |
| org_name | Non | L'organisation GitHub pour répertorier les référentiels. |
Paramètre de données supplémentaire
| Nom | Requis | But |
|---|
| get_branches | Non | Ajoutez des détails sur toutes les branches à chaque référentiel. |
| get_Contributeurs | Non | Ajoutez des détails sur tous les contributeurs à chaque référentiel. |
| get_languages | Non | Ajoutez la liste des langages identifiés pour chaque référentiel. |
| get_releases | Non | Ajoutez des détails sur toutes les versions à chaque référentiel. |
| get_tags | Non | Ajoutez des détails sur toutes les balises à chaque référentiel. |
| get_topics | Non | Ajoutez la liste des sujets définis à chaque référentiel. |
| get_workflows | Non | Ajoutez des détails sur tous les flux de travail à chaque référentiel. |
Paramètre de filtrage
| Nom | Requis | But |
|---|
| Inclure_name | Non | Une liste de noms de référentiel à inclure dans les résultats. |
| Ignore_Names | Non | Une liste de noms de référentiel à exclure des résultats. |
| inclure_repos | Non | Une liste des noms d'organisation / noms de référentiel à inclure dans les résultats. |
| ignorer_repos | Non | Une liste des noms d'organisation / noms de référentiel à exclure des résultats. |
| skip_private | Non | N'incluez pas les référentiels privés, c'est pour l'utilisateur authentifié uniquement. |
Ignorer et inclure les noms utilisent le nom complet du référentiel, qui est le nom de l'organisation / nom du référentiel, par exemple, GitHubToolbox / GitHub-Extractor-Package
Énumérer tous les référentiels de l'organisation
Vous pouvez répertorier tous les référentiels pour toutes les organisations dont vous êtes membre.
from wolfsoftware . github_extractor import list_all_org_repositories
config = {
"token" : "your_github_token" ,
"ignore_repos" : [ "Test*" ],
"include_repos" : [ "Project*" ]
}
repositories = list_all_org_repositories ( config ) Paramètres
| Nom | Requis | But |
|---|
| jeton | Oui | Authentification pour l'API GitHub. |
| temps mort | Non | Le délai d'expiration à utiliser lorsque vous parlez à l'API GitHub (par défaut est de 10 secondes). |
| limaces | Non | Si nous renvoyons les résultats sous forme de limaces. (Liste des noms et rien d'autre). |
Paramètre de données supplémentaire
| Nom | Requis | But |
|---|
| get_branches | Non | Ajoutez des détails sur toutes les branches à chaque référentiel. |
| get_Contributeurs | Non | Ajoutez des détails sur tous les contributeurs à chaque référentiel. |
| get_languages | Non | Ajoutez la liste des langages identifiés pour chaque référentiel. |
| get_releases | Non | Ajoutez des détails sur toutes les versions à chaque référentiel. |
| get_tags | Non | Ajoutez des détails sur toutes les balises à chaque référentiel. |
| get_topics | Non | Ajoutez la liste des sujets définis à chaque référentiel. |
| get_workflows | Non | Ajoutez des détails sur tous les flux de travail à chaque référentiel. |
Paramètre de filtrage
| Nom | Requis | But |
|---|
| Inclure_name | Non | Une liste de noms de référentiel à inclure dans les résultats. |
| Ignore_Names | Non | Une liste de noms de référentiel à exclure des résultats. |
| inclure_repos | Non | Une liste des noms d'organisation / noms de référentiel à inclure dans les résultats. |
| ignorer_repos | Non | Une liste des noms d'organisation / noms de référentiel à exclure des résultats. |
| skip_private | Non | N'incluez pas les référentiels privés, c'est pour l'utilisateur authentifié uniquement. |
Ignorer et inclure les noms utilisent le nom complet du référentiel, qui est le nom de l'organisation / nom du référentiel, par exemple, GitHubToolbox / GitHub-Extractor-Package
Énumérer tous les référentiels visibles
Vous pouvez énumérer les référentiels auxquels vous pouvez accéder.
from wolfsoftware . github_extractor import list_all_visible_repositories
config = {
"token" : "your_github_token" ,
"ignore_repos" : [ "Test*" ],
"include_repos" : [ "Project*" ]
}
repositories = list_all_visible_repositories ( config ) Paramètres
| Nom | Requis | But |
|---|
| jeton | Oui | Authentification pour l'API GitHub. |
| temps mort | Non | Le délai d'expiration à utiliser lorsque vous parlez à l'API GitHub (par défaut est de 10 secondes). |
| limaces | Non | Si nous renvoyons les résultats sous forme de limaces. (Liste des noms et rien d'autre). |
Paramètre de données supplémentaire
| Nom | Requis | But |
|---|
| get_branches | Non | Ajoutez des détails sur toutes les branches à chaque référentiel. |
| get_Contributeurs | Non | Ajoutez des détails sur tous les contributeurs à chaque référentiel. |
| get_languages | Non | Ajoutez la liste des langages identifiés pour chaque référentiel. |
| get_releases | Non | Ajoutez des détails sur toutes les versions à chaque référentiel. |
| get_tags | Non | Ajoutez des détails sur toutes les balises à chaque référentiel. |
| get_topics | Non | Ajoutez la liste des sujets définis à chaque référentiel. |
| get_workflows | Non | Ajoutez des détails sur tous les flux de travail à chaque référentiel. |
Paramètre de filtrage
| Nom | Requis | But |
|---|
| Inclure_name | Non | Une liste de noms de référentiel à inclure dans les résultats. |
| Ignore_Names | Non | Une liste de noms de référentiel à exclure des résultats. |
| inclure_repos | Non | Une liste des noms d'organisation / noms de référentiel à inclure dans les résultats. |
| ignorer_repos | Non | Une liste des noms d'organisation / noms de référentiel à exclure des résultats. |
| skip_private | Non | N'incluez pas les référentiels privés, c'est pour l'utilisateur authentifié uniquement. |
Ignorer et inclure les noms utilisent le nom complet du référentiel, qui est le nom de l'organisation / nom du référentiel, par exemple, GitHubToolbox / GitHub-Extractor-Package
Exceptions
Les exceptions personnalisées suivantes sont utilisées:
| Nom | But |
|---|
| AuthenticationError | Élevé lorsque l'authentification échoue. Ceci est causé par un jeton invalide. |
| MissingorGNameerror | Élevé lorsque le nom de l'organisation est manquant. |
| MissingTokenError | Élevé lorsque le jeton API GitHub est manquant mais est nécessaire. |
| Not-Founderror | Élevé lorsqu'une ressource demandée n'est pas trouvée. Cela est causé par une portée incorrecte du jeton. |
| RatelimitexededError | Augmenté lorsque la limite de taux de l'API GitHub est dépassée. |
| Demandeur de demande | Relevé pour les erreurs de demande générale. |
| RequiertTimeouterror | Relevé lorsqu'une demande est à la sortie. |