Überblick
Das GitHub Extractor -Paket ist eine Python -Bibliothek, die die Extraktion von Daten aus GitHub erleichtert.
Dieses Paket bietet Funktionen zum Abrufen von Informationen zu Repositorys, einschließlich der verwendeten Sprachen, der Veröffentlichung, Mitwirkenden, Themen, Workflows und mehr mit robuster Fehlerbehandlung und Konfigurationsunterstützung.
Merkmale
- Listen Sie Organisationen für einen Benutzer von GitHub auf.
- Listen Sie Repositories für einen Benutzer von GitHub auf.
- Listen Sie Repositorys für eine bestimmte Organisation von GitHub auf.
- Unterstützung für die Authentifizierung mit Github -API -Token.
- Filterung von Organisationen und Repositorys auf der Grundlage gegebener Muster.
- Paginierung für API -Anfragen.
Installation
Sie können einen GitHub -Extraktor über PIP installieren:
pip install wolfsoftware.github-extractor
Verwendung
Token -Informationen erhalten
Sie erhalten grundlegende Informationen über das gegebene Token.
Für diesen GitHub -Token -Validator gibt es auch ein bestimmtes Befehlszeilenwerkzeug.
from wolfsoftware . github_extractor import get_token_information
config = {
"token" : "your_github_token" ,
} Parameter
| Name | Erforderlich | Zweck |
|---|
| Token | Ja | Authentifizierung für die Github -API. |
| Time-out | NEIN | Das Timeout zu verwenden, wenn Sie mit der Github -API sprechen (Standardeinstellung beträgt 10 Sekunden). |
| Schnecken | NEIN | Sollten wir die Ergebnisse als Schnecken zurückgeben? (Liste der Namen und nichts anderes). |
Benutzerinformationen erhalten
Sie erhalten grundlegende Informationen über den authentifizierten Benutzer (Eigentümer des Tokens). Die Informationen werden durch den Umfang des Tokens begrenzt.
from wolfsoftware . github_extractor import get_authenticated_user
config = {
"token" : "your_github_token" ,
} Parameter
| Name | Erforderlich | Zweck |
|---|
| Token | Ja | Authentifizierung für die Github -API. |
| Time-out | NEIN | Das Timeout zu verwenden, wenn Sie mit der Github -API sprechen (Standardeinstellung beträgt 10 Sekunden). |
| Schnecken | NEIN | Sollten wir die Ergebnisse als Schnecken zurückgeben? (Liste der Namen und nichts anderes). |
Organisationen auflisten
Sie können Organisationen auflisten, dass Sie Mitglied der British- oder American English Rechtschreibung sind.
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 ) Parameter
| Name | Erforderlich | Zweck |
|---|
| Token | Ja | Authentifizierung für die Github -API. |
| Time-out | NEIN | Das Timeout zu verwenden, wenn Sie mit der Github -API sprechen (Standardeinstellung beträgt 10 Sekunden). |
| Schnecken | NEIN | Sollten wir die Ergebnisse als Schnecken zurückgeben? (Liste der Namen und nichts anderes). |
Filterparameter
| Name | Erforderlich | Zweck |
|---|
| Include_orgs | NEIN | Eine Liste von Organisationsnamen, die in die Ergebnisse aufgenommen werden. |
| Ignore_orgs | NEIN | Eine Liste von Organisationsnamen, die von den Ergebnissen ausgeschlossen werden sollen. |
| Get_Members | NEIN | Sollten wir Organisationsmitglieder in die Ergebnisse einbeziehen. |
Benutzerrepositories auflisten
Sie können Repositories für einen Benutzer mit optionalen Filtern auflisten:
from wolfsoftware . github_extractor import list_user_repositories
config = {
"token" : "your_github_token" ,
"ignore_repos" : [ "Test*" ],
"include_repos" : [ "Project*" ]
}
repositories = list_user_repositories ( config ) Parameter
| Name | Erforderlich | Zweck |
|---|
| Token | NEIN | Authentifizierung für die Github -API. |
| Time-out | NEIN | Das Timeout zu verwenden, wenn Sie mit der Github -API sprechen (Standardeinstellung beträgt 10 Sekunden). |
| Schnecken | NEIN | Sollten wir die Ergebnisse als Schnecken zurückgeben? (Liste der Namen und nichts anderes). |
| Benutzername | NEIN | Der Github -Benutzername, um Repositories für aufzulisten. (Der authentifizierte Benutzer wird verwendet, dass dies nicht geliefert wird). |
Zusätzlicher Datenparameter
| Name | Erforderlich | Zweck |
|---|
| get_branches | NEIN | Fügen Sie jedem Repository Details zu allen Zweigen hinzu. |
| get_contributors | NEIN | Fügen Sie Details zu allen Mitwirkenden für jedes Repository hinzu. |
| Get_Languages | NEIN | Fügen Sie die Liste der identifizierten Sprachen für jedes Repository hinzu. |
| get_releases | NEIN | Fügen Sie jedem Repository Details zu allen Veröffentlichungen hinzu. |
| get_tags | NEIN | Fügen Sie jedem Repository Details zu allen Tags hinzu. |
| get_topics | NEIN | Fügen Sie jedem Repository die Liste der definierten Themen hinzu. |
| get_workflows | NEIN | Fügen Sie jedem Repository Details zu allen Workflows hinzu. |
Filterparameter
| Name | Erforderlich | Zweck |
|---|
| include_names | NEIN | Eine Liste von Repository -Namen, die in die Ergebnisse aufgenommen werden. |
| Ignore_names | NEIN | Eine Liste von Repository -Namen, die von den Ergebnissen ausgeschlossen werden sollen. |
| include_repos | NEIN | Eine Liste von Organisationsnamen/Repository -Namen, die in die Ergebnisse aufgenommen werden. |
| Ignore_repos | NEIN | Eine Liste von Organisationsnamen/Repository -Namen, die von den Ergebnissen ausgeschlossen werden sollen. |
| Skip_private | NEIN | Fügen Sie keine privaten Repositorys hinzu, sondern gilt nur für den authentifizierten Benutzer. |
Namen ignorieren und integrieren Namen verwenden den vollständigen Namen des Repositorys, der den Namen des Organisationsnamens / Repository-Name ist, z.
Auflistung von Repositories nach Organisation
Sie können Repositories für eine bestimmte Organisation mit optionalen Filtern auflisten:
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 ) Parameter
| Name | Erforderlich | Zweck |
|---|
| Token | NEIN | Authentifizierung für die Github -API. |
| Time-out | NEIN | Das Timeout zu verwenden, wenn Sie mit der Github -API sprechen (Standardeinstellung beträgt 10 Sekunden). |
| Schnecken | NEIN | Sollten wir die Ergebnisse als Schnecken zurückgeben? (Liste der Namen und nichts anderes). |
| org_name | NEIN | Die Github -Organisation, um Repositories für aufzulisten. |
Zusätzlicher Datenparameter
| Name | Erforderlich | Zweck |
|---|
| get_branches | NEIN | Fügen Sie jedem Repository Details zu allen Zweigen hinzu. |
| get_contributors | NEIN | Fügen Sie Details zu allen Mitwirkenden für jedes Repository hinzu. |
| Get_Languages | NEIN | Fügen Sie die Liste der identifizierten Sprachen für jedes Repository hinzu. |
| get_releases | NEIN | Fügen Sie jedem Repository Details zu allen Veröffentlichungen hinzu. |
| get_tags | NEIN | Fügen Sie jedem Repository Details zu allen Tags hinzu. |
| get_topics | NEIN | Fügen Sie jedem Repository die Liste der definierten Themen hinzu. |
| get_workflows | NEIN | Fügen Sie jedem Repository Details zu allen Workflows hinzu. |
Filterparameter
| Name | Erforderlich | Zweck |
|---|
| include_names | NEIN | Eine Liste von Repository -Namen, die in die Ergebnisse aufgenommen werden. |
| Ignore_names | NEIN | Eine Liste von Repository -Namen, die von den Ergebnissen ausgeschlossen werden sollen. |
| include_repos | NEIN | Eine Liste von Organisationsnamen/Repository -Namen, die in die Ergebnisse aufgenommen werden. |
| Ignore_repos | NEIN | Eine Liste von Organisationsnamen/Repository -Namen, die von den Ergebnissen ausgeschlossen werden sollen. |
| Skip_private | NEIN | Fügen Sie keine privaten Repositorys hinzu, sondern gilt nur für den authentifizierten Benutzer. |
Namen ignorieren und integrieren Namen verwenden den vollständigen Namen des Repositorys, der den Namen des Organisationsnamens / Repository-Name ist, z.
Auflistung aller Organisationsrepositories
Sie können alle Repositories für alle Organisationen auflisten, in denen Sie Mitglied sind.
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 ) Parameter
| Name | Erforderlich | Zweck |
|---|
| Token | Ja | Authentifizierung für die Github -API. |
| Time-out | NEIN | Das Timeout zu verwenden, wenn Sie mit der Github -API sprechen (Standardeinstellung beträgt 10 Sekunden). |
| Schnecken | NEIN | Sollten wir die Ergebnisse als Schnecken zurückgeben? (Liste der Namen und nichts anderes). |
Zusätzlicher Datenparameter
| Name | Erforderlich | Zweck |
|---|
| get_branches | NEIN | Fügen Sie jedem Repository Details zu allen Zweigen hinzu. |
| get_contributors | NEIN | Fügen Sie Details zu allen Mitwirkenden für jedes Repository hinzu. |
| Get_Languages | NEIN | Fügen Sie die Liste der identifizierten Sprachen für jedes Repository hinzu. |
| get_releases | NEIN | Fügen Sie jedem Repository Details zu allen Veröffentlichungen hinzu. |
| get_tags | NEIN | Fügen Sie jedem Repository Details zu allen Tags hinzu. |
| get_topics | NEIN | Fügen Sie jedem Repository die Liste der definierten Themen hinzu. |
| get_workflows | NEIN | Fügen Sie jedem Repository Details zu allen Workflows hinzu. |
Filterparameter
| Name | Erforderlich | Zweck |
|---|
| include_names | NEIN | Eine Liste von Repository -Namen, die in die Ergebnisse aufgenommen werden. |
| Ignore_names | NEIN | Eine Liste von Repository -Namen, die von den Ergebnissen ausgeschlossen werden sollen. |
| include_repos | NEIN | Eine Liste von Organisationsnamen/Repository -Namen, die in die Ergebnisse aufgenommen werden. |
| Ignore_repos | NEIN | Eine Liste von Organisationsnamen/Repository -Namen, die von den Ergebnissen ausgeschlossen werden sollen. |
| Skip_private | NEIN | Fügen Sie keine privaten Repositorys hinzu, sondern gilt nur für den authentifizierten Benutzer. |
Namen ignorieren und integrieren Namen verwenden den vollständigen Namen des Repositorys, der den Namen des Organisationsnamens / Repository-Name ist, z.
Auflistung aller sichtbaren Repositorys
Sie können Repositorys auflisten, auf die Sie zugreifen können.
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 ) Parameter
| Name | Erforderlich | Zweck |
|---|
| Token | Ja | Authentifizierung für die Github -API. |
| Time-out | NEIN | Das Timeout zu verwenden, wenn Sie mit der Github -API sprechen (Standardeinstellung beträgt 10 Sekunden). |
| Schnecken | NEIN | Sollten wir die Ergebnisse als Schnecken zurückgeben? (Liste der Namen und nichts anderes). |
Zusätzlicher Datenparameter
| Name | Erforderlich | Zweck |
|---|
| get_branches | NEIN | Fügen Sie jedem Repository Details zu allen Zweigen hinzu. |
| get_contributors | NEIN | Fügen Sie Details zu allen Mitwirkenden für jedes Repository hinzu. |
| Get_Languages | NEIN | Fügen Sie die Liste der identifizierten Sprachen für jedes Repository hinzu. |
| get_releases | NEIN | Fügen Sie jedem Repository Details zu allen Veröffentlichungen hinzu. |
| get_tags | NEIN | Fügen Sie jedem Repository Details zu allen Tags hinzu. |
| get_topics | NEIN | Fügen Sie jedem Repository die Liste der definierten Themen hinzu. |
| get_workflows | NEIN | Fügen Sie jedem Repository Details zu allen Workflows hinzu. |
Filterparameter
| Name | Erforderlich | Zweck |
|---|
| include_names | NEIN | Eine Liste von Repository -Namen, die in die Ergebnisse aufgenommen werden. |
| Ignore_names | NEIN | Eine Liste von Repository -Namen, die von den Ergebnissen ausgeschlossen werden sollen. |
| include_repos | NEIN | Eine Liste von Organisationsnamen/Repository -Namen, die in die Ergebnisse aufgenommen werden. |
| Ignore_repos | NEIN | Eine Liste von Organisationsnamen/Repository -Namen, die von den Ergebnissen ausgeschlossen werden sollen. |
| Skip_private | NEIN | Fügen Sie keine privaten Repositorys hinzu, sondern gilt nur für den authentifizierten Benutzer. |
Namen ignorieren und integrieren Namen verwenden den vollständigen Namen des Repositorys, der den Namen des Organisationsnamens / Repository-Name ist, z.
Ausnahmen
Die folgenden benutzerdefinierten Ausnahmen werden verwendet:
| Name | Zweck |
|---|
| AuthenticationError | Erhöht, wenn die Authentifizierung fehlschlägt. Dies wird durch ein ungültiges Token verursacht. |
| MissingorgNameError | Erhöht, wenn der Organisationsname fehlt. |
| MissingTokenError | Erhöht, wenn das Github -API -Token fehlt, aber erforderlich ist. |
| NotFoundError | Erhöht, wenn eine angeforderte Ressource nicht gefunden wird. Dies wird durch einen falschen Umfang des Tokens verursacht. |
| RatelimitexceedEderError | Erhöht, wenn die Github -API -Ratenlimit überschritten wird. |
| RequestError | Für allgemeine Anfragefehler aufgewachsen. |
| RequestTimeouterror | Erhöht, wenn eine Anfrage ausfällt. |