Descripción general
El paquete de extractores de GitHub es una biblioteca de Python diseñada para facilitar la extracción de datos de GitHub.
Este paquete proporciona funciones para obtener información sobre repositorios, incluidos los idiomas utilizados, lanzamientos, contribuyentes, temas, flujos de trabajo y más con un sólido soporte de manejo y configuración de errores.
Características
- Lista de organizaciones para un usuario de GitHub.
- Lista de repositorios para un usuario de GitHub.
- Lista de repositorios para una organización especificada de GitHub.
- Soporte para la autenticación utilizando tokens API GitHub.
- Filtrado de organizaciones y repositorios basados en patrones dados.
- Manejo de paginación para solicitudes de API.
Instalación
Puede instalar GitHub Extractor a través de PIP:
pip install wolfsoftware.github-extractor
Uso
Obtener información token
Usted obtiene información básica relacionada con el token dado.
También hay una herramienta de línea de comandos específica para este validador de token GitHub.
from wolfsoftware . github_extractor import get_token_information
config = {
"token" : "your_github_token" ,
} Parámetros
| Nombre | Requerido | Objetivo |
|---|
| simbólico | Sí | Autenticación para la API GitHub. |
| se acabó el tiempo | No | El tiempo de espera para usar al hablar con la API GitHub (el valor predeterminado es de 10 segundos). |
| babosas | No | ¿Deberíamos devolver los resultados como babosas? (Lista de nombres y nada más). |
Obtener información de usuario
Usted obtiene información básica relacionada con el usuario autenticado (propietario del token). La información estará limitada por el alcance del token.
from wolfsoftware . github_extractor import get_authenticated_user
config = {
"token" : "your_github_token" ,
} Parámetros
| Nombre | Requerido | Objetivo |
|---|
| simbólico | Sí | Autenticación para la API GitHub. |
| se acabó el tiempo | No | El tiempo de espera para usar al hablar con la API GitHub (el valor predeterminado es de 10 segundos). |
| babosas | No | ¿Deberíamos devolver los resultados como babosas? (Lista de nombres y nada más). |
Organizaciones de listado
Puede enumerar las organizaciones de las que es miembro de usar ortografía de inglés británico o americano.
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 ) Parámetros
| Nombre | Requerido | Objetivo |
|---|
| simbólico | Sí | Autenticación para la API GitHub. |
| se acabó el tiempo | No | El tiempo de espera para usar al hablar con la API GitHub (el valor predeterminado es de 10 segundos). |
| babosas | No | ¿Deberíamos devolver los resultados como babosas? (Lista de nombres y nada más). |
Parámetros de filtrado
| Nombre | Requerido | Objetivo |
|---|
| Incluye_orgs | No | Una lista de nombres de organización para incluir en los resultados. |
| ignorar_orgs | No | Una lista de nombres de organización para excluir de los resultados. |
| Get_Members | No | ¿Deberíamos incluir miembros de la organización en los resultados? |
Listado de repositorios de usuarios
Puede enumerar repositorios para un usuario con filtros opcionales:
from wolfsoftware . github_extractor import list_user_repositories
config = {
"token" : "your_github_token" ,
"ignore_repos" : [ "Test*" ],
"include_repos" : [ "Project*" ]
}
repositories = list_user_repositories ( config ) Parámetros
| Nombre | Requerido | Objetivo |
|---|
| simbólico | No | Autenticación para la API GitHub. |
| se acabó el tiempo | No | El tiempo de espera para usar al hablar con la API GitHub (el valor predeterminado es de 10 segundos). |
| babosas | No | ¿Deberíamos devolver los resultados como babosas? (Lista de nombres y nada más). |
| nombre de usuario | No | El nombre de usuario de GitHub para enumerar repositorios. (El usuario autenticado se utilizará si esto no se suministra). |
Parámetro de datos adicional
| Nombre | Requerido | Objetivo |
|---|
| Get_Branches | No | Agregue detalles sobre todas las ramas a cada repositorio. |
| get_contributores | No | Agregue detalles sobre todos los contribuyentes a cada repositorio. |
| get_languages | No | Agregue la lista de idiomas identificados para cada repositorio. |
| get_releases | No | Agregue detalles sobre todos los lanzamientos a cada repositorio. |
| get_tags | No | Agregue detalles sobre todas las etiquetas a cada repositorio. |
| Get_Topics | No | Agregue la lista de temas definidos a cada repositorio. |
| get_workflows | No | Agregue detalles sobre todos los flujos de trabajo a cada repositorio. |
Parámetro de filtrado
| Nombre | Requerido | Objetivo |
|---|
| INCLUDE_NAMES | No | Una lista de nombres de repositorio para incluir en los resultados. |
| ignorar_names | No | Una lista de nombres de repositorio para excluir de los resultados. |
| Incluye_repos | No | Una lista de nombres de organización/nombres de repositorio para incluir en los resultados. |
| ignorar_repos | No | Una lista de nombres de organización/nombres de repositorio para excluir de los resultados. |
| skip_private | No | No incluya repositorios privados, esto es solo para el usuario autenticado. |
Ignorar e incluir nombres use el nombre completo del repositorio, que es el nombre de la organización / nombre del repositorio, por ejemplo, GitHubtoolbox / GitHub-Extractor-Package
Listado de repositorios por organización
Puede enumerar repositorios para una organización específica con filtros opcionales:
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 ) Parámetros
| Nombre | Requerido | Objetivo |
|---|
| simbólico | No | Autenticación para la API GitHub. |
| se acabó el tiempo | No | El tiempo de espera para usar al hablar con la API GitHub (el valor predeterminado es de 10 segundos). |
| babosas | No | ¿Deberíamos devolver los resultados como babosas? (Lista de nombres y nada más). |
| org_name | No | La organización Github para enumerar repositorios. |
Parámetro de datos adicional
| Nombre | Requerido | Objetivo |
|---|
| Get_Branches | No | Agregue detalles sobre todas las ramas a cada repositorio. |
| get_contributores | No | Agregue detalles sobre todos los contribuyentes a cada repositorio. |
| get_languages | No | Agregue la lista de idiomas identificados para cada repositorio. |
| get_releases | No | Agregue detalles sobre todos los lanzamientos a cada repositorio. |
| get_tags | No | Agregue detalles sobre todas las etiquetas a cada repositorio. |
| Get_Topics | No | Agregue la lista de temas definidos a cada repositorio. |
| get_workflows | No | Agregue detalles sobre todos los flujos de trabajo a cada repositorio. |
Parámetro de filtrado
| Nombre | Requerido | Objetivo |
|---|
| INCLUDE_NAMES | No | Una lista de nombres de repositorio para incluir en los resultados. |
| ignorar_names | No | Una lista de nombres de repositorio para excluir de los resultados. |
| Incluye_repos | No | Una lista de nombres de organización/nombres de repositorio para incluir en los resultados. |
| ignorar_repos | No | Una lista de nombres de organización/nombres de repositorio para excluir de los resultados. |
| skip_private | No | No incluya repositorios privados, esto es solo para el usuario autenticado. |
Ignorar e incluir nombres use el nombre completo del repositorio, que es el nombre de la organización / nombre del repositorio, por ejemplo, GitHubtoolbox / GitHub-Extractor-Package
Enumerar todos los repositorios de la organización
Puede enumerar todos los repositorios para todas las organizaciones de las que usted es miembro.
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 ) Parámetros
| Nombre | Requerido | Objetivo |
|---|
| simbólico | Sí | Autenticación para la API GitHub. |
| se acabó el tiempo | No | El tiempo de espera para usar al hablar con la API GitHub (el valor predeterminado es de 10 segundos). |
| babosas | No | ¿Deberíamos devolver los resultados como babosas? (Lista de nombres y nada más). |
Parámetro de datos adicional
| Nombre | Requerido | Objetivo |
|---|
| Get_Branches | No | Agregue detalles sobre todas las ramas a cada repositorio. |
| get_contributores | No | Agregue detalles sobre todos los contribuyentes a cada repositorio. |
| get_languages | No | Agregue la lista de idiomas identificados para cada repositorio. |
| get_releases | No | Agregue detalles sobre todos los lanzamientos a cada repositorio. |
| get_tags | No | Agregue detalles sobre todas las etiquetas a cada repositorio. |
| Get_Topics | No | Agregue la lista de temas definidos a cada repositorio. |
| get_workflows | No | Agregue detalles sobre todos los flujos de trabajo a cada repositorio. |
Parámetro de filtrado
| Nombre | Requerido | Objetivo |
|---|
| INCLUDE_NAMES | No | Una lista de nombres de repositorio para incluir en los resultados. |
| ignorar_names | No | Una lista de nombres de repositorio para excluir de los resultados. |
| Incluye_repos | No | Una lista de nombres de organización/nombres de repositorio para incluir en los resultados. |
| ignorar_repos | No | Una lista de nombres de organización/nombres de repositorio para excluir de los resultados. |
| skip_private | No | No incluya repositorios privados, esto es solo para el usuario autenticado. |
Ignorar e incluir nombres use el nombre completo del repositorio, que es el nombre de la organización / nombre del repositorio, por ejemplo, GitHubtoolbox / GitHub-Extractor-Package
Enumerar todos los repositorios visibles
Puede enumerar repositorios a los que puede acceder.
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 ) Parámetros
| Nombre | Requerido | Objetivo |
|---|
| simbólico | Sí | Autenticación para la API GitHub. |
| se acabó el tiempo | No | El tiempo de espera para usar al hablar con la API GitHub (el valor predeterminado es de 10 segundos). |
| babosas | No | ¿Deberíamos devolver los resultados como babosas? (Lista de nombres y nada más). |
Parámetro de datos adicional
| Nombre | Requerido | Objetivo |
|---|
| Get_Branches | No | Agregue detalles sobre todas las ramas a cada repositorio. |
| get_contributores | No | Agregue detalles sobre todos los contribuyentes a cada repositorio. |
| get_languages | No | Agregue la lista de idiomas identificados para cada repositorio. |
| get_releases | No | Agregue detalles sobre todos los lanzamientos a cada repositorio. |
| get_tags | No | Agregue detalles sobre todas las etiquetas a cada repositorio. |
| Get_Topics | No | Agregue la lista de temas definidos a cada repositorio. |
| get_workflows | No | Agregue detalles sobre todos los flujos de trabajo a cada repositorio. |
Parámetro de filtrado
| Nombre | Requerido | Objetivo |
|---|
| INCLUDE_NAMES | No | Una lista de nombres de repositorio para incluir en los resultados. |
| ignorar_names | No | Una lista de nombres de repositorio para excluir de los resultados. |
| Incluye_repos | No | Una lista de nombres de organización/nombres de repositorio para incluir en los resultados. |
| ignorar_repos | No | Una lista de nombres de organización/nombres de repositorio para excluir de los resultados. |
| skip_private | No | No incluya repositorios privados, esto es solo para el usuario autenticado. |
Ignorar e incluir nombres use el nombre completo del repositorio, que es el nombre de la organización / nombre del repositorio, por ejemplo, GitHubtoolbox / GitHub-Extractor-Package
Excepciones
Se utilizan las siguientes excepciones personalizadas:
| Nombre | Objetivo |
|---|
| AutenticationError | Planteado cuando falla la autenticación. Esto es causado por un token inválido. |
| FaltorgnameError | Planteado cuando falta el nombre de la organización. |
| MissingTokenError | Levantado cuando falta el token de la API de GitHub, pero se requiere. |
| Not FoundError | Planteado cuando no se encuentra un recurso solicitado. Esto es causado por el alcance incorrecto del token. |
| RatelimitexedEderror | Planteado cuando se excede el límite de velocidad de la API de GitHub. |
| Requesterror | Planteado para errores de solicitud general. |
| Requesttimeouterror | Planteado cuando una solicitud se desprende. |