Visão geral
O pacote do extrator do GitHub é uma biblioteca Python projetada para facilitar a extração de dados do GitHub.
Este pacote fornece funções para buscar informações sobre repositórios, incluindo idiomas utilizados, lançamentos, colaboradores, tópicos, fluxos de trabalho e muito mais com suporte robusto de manuseio e configuração.
Características
- Liste organizações para um usuário do GitHub.
- Liste repositórios para um usuário do GitHub.
- Listos repositórios para uma organização especificada do GitHub.
- Suporte para autenticação usando tokens de API do GitHub.
- Filtragem de organizações e repositórios com base em determinados padrões.
- Manuseio de paginação para solicitações de API.
Instalação
Você pode instalar o extrator do GitHub via PIP:
pip install wolfsoftware.github-extractor
Uso
Obtendo informações de token
Você obtém informações básicas relacionadas ao token fornecido.
Há também uma ferramenta de linha de comando específica para este validador de token do github.
from wolfsoftware . github_extractor import get_token_information
config = {
"token" : "your_github_token" ,
} Parâmetros
| Nome | Obrigatório | Propósito |
|---|
| token | Sim | Autenticação para a API do GitHub. |
| tempo esgotado | Não | O tempo limite a ser usado ao conversar com a API do GitHub (o padrão é de 10 segundos). |
| lesmas | Não | Devemos devolver os resultados como lesmas. (Lista de nomes e nada mais). |
Obtendo informações do usuário
Você obtém informações básicas relacionadas ao usuário autenticado (proprietário do token). As informações serão limitadas pelo escopo do token.
from wolfsoftware . github_extractor import get_authenticated_user
config = {
"token" : "your_github_token" ,
} Parâmetros
| Nome | Obrigatório | Propósito |
|---|
| token | Sim | Autenticação para a API do GitHub. |
| tempo esgotado | Não | O tempo limite a ser usado ao conversar com a API do GitHub (o padrão é de 10 segundos). |
| lesmas | Não | Devemos devolver os resultados como lesmas. (Lista de nomes e nada mais). |
Organizações de listagem
Você pode listar organizações que você é membro do uso da ortografia britânica ou americana em inglês.
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
| Nome | Obrigatório | Propósito |
|---|
| token | Sim | Autenticação para a API do GitHub. |
| tempo esgotado | Não | O tempo limite a ser usado ao conversar com a API do GitHub (o padrão é de 10 segundos). |
| lesmas | Não | Devemos devolver os resultados como lesmas. (Lista de nomes e nada mais). |
Parâmetros de filtragem
| Nome | Obrigatório | Propósito |
|---|
| incluir_orgs | Não | Uma lista de nomes de organização a serem incluídos nos resultados. |
| ignore_orgs | Não | Uma lista de nomes de organização a serem excluídos dos resultados. |
| get_members | Não | Devemos incluir membros da organização nos resultados. |
Listando repositórios de usuário
Você pode listar repositórios para um usuário com filtros opcionais:
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
| Nome | Obrigatório | Propósito |
|---|
| token | Não | Autenticação para a API do GitHub. |
| tempo esgotado | Não | O tempo limite a ser usado ao conversar com a API do GitHub (o padrão é de 10 segundos). |
| lesmas | Não | Devemos devolver os resultados como lesmas. (Lista de nomes e nada mais). |
| nome de usuário | Não | O nome de usuário do Github para listar repositórios. (O usuário autenticado será usado, isso não é fornecido). |
Parâmetro de dados adicionais
| Nome | Obrigatório | Propósito |
|---|
| get_branches | Não | Adicione detalhes sobre todas as filiais a cada repositório. |
| get_contributores | Não | Adicione detalhes sobre todos os colaboradores a cada repositório. |
| get_languages | Não | Adicione a lista de linguagens identificadas para cada repositório. |
| get_releases | Não | Adicione detalhes sobre todos os lançamentos a cada repositório. |
| get_tags | Não | Adicione detalhes sobre todas as tags a cada repositório. |
| get_topics | Não | Adicione a lista de tópicos definidos a cada repositório. |
| get_workflows | Não | Adicione detalhes sobre todos os fluxos de trabalho a cada repositório. |
Parâmetro de filtragem
| Nome | Obrigatório | Propósito |
|---|
| Incluir_names | Não | Uma lista de nomes de repositório a serem incluídos nos resultados. |
| ignore_names | Não | Uma lista de nomes de repositório a serem excluídos dos resultados. |
| incluir_repos | Não | Uma lista de nomes de organização/nomes de repositório a serem incluídos nos resultados. |
| ignore_repos | Não | Uma lista de nomes de organização/nomes de repositório a serem excluídos dos resultados. |
| skip_private | Não | Não inclua repositórios privados, isso é apenas para o usuário autenticado. |
Ignorar e incluir nomes Use o nome completo do repositório, que é o nome da organização / nome do repositório, por exemplo, githubtoolbox / github-extractor-package
Listagem de repositórios por organização
Você pode listar repositórios para uma organização específica com filtros opcionais:
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
| Nome | Obrigatório | Propósito |
|---|
| token | Não | Autenticação para a API do GitHub. |
| tempo esgotado | Não | O tempo limite a ser usado ao conversar com a API do GitHub (o padrão é de 10 segundos). |
| lesmas | Não | Devemos devolver os resultados como lesmas. (Lista de nomes e nada mais). |
| org_name | Não | A organização do GitHub para listar repositórios. |
Parâmetro de dados adicionais
| Nome | Obrigatório | Propósito |
|---|
| get_branches | Não | Adicione detalhes sobre todas as filiais a cada repositório. |
| get_contributores | Não | Adicione detalhes sobre todos os colaboradores a cada repositório. |
| get_languages | Não | Adicione a lista de linguagens identificadas para cada repositório. |
| get_releases | Não | Adicione detalhes sobre todos os lançamentos a cada repositório. |
| get_tags | Não | Adicione detalhes sobre todas as tags a cada repositório. |
| get_topics | Não | Adicione a lista de tópicos definidos a cada repositório. |
| get_workflows | Não | Adicione detalhes sobre todos os fluxos de trabalho a cada repositório. |
Parâmetro de filtragem
| Nome | Obrigatório | Propósito |
|---|
| Incluir_names | Não | Uma lista de nomes de repositório a serem incluídos nos resultados. |
| ignore_names | Não | Uma lista de nomes de repositório a serem excluídos dos resultados. |
| incluir_repos | Não | Uma lista de nomes de organização/nomes de repositório a serem incluídos nos resultados. |
| ignore_repos | Não | Uma lista de nomes de organização/nomes de repositório a serem excluídos dos resultados. |
| skip_private | Não | Não inclua repositórios privados, isso é apenas para o usuário autenticado. |
Ignorar e incluir nomes Use o nome completo do repositório, que é o nome da organização / nome do repositório, por exemplo, githubtoolbox / github-extractor-package
Listando todos os repositórios da organização
Você pode listar todos os repositórios para todas as organizações da qual você é membro.
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
| Nome | Obrigatório | Propósito |
|---|
| token | Sim | Autenticação para a API do GitHub. |
| tempo esgotado | Não | O tempo limite a ser usado ao conversar com a API do GitHub (o padrão é de 10 segundos). |
| lesmas | Não | Devemos devolver os resultados como lesmas. (Lista de nomes e nada mais). |
Parâmetro de dados adicionais
| Nome | Obrigatório | Propósito |
|---|
| get_branches | Não | Adicione detalhes sobre todas as filiais a cada repositório. |
| get_contributores | Não | Adicione detalhes sobre todos os colaboradores a cada repositório. |
| get_languages | Não | Adicione a lista de linguagens identificadas para cada repositório. |
| get_releases | Não | Adicione detalhes sobre todos os lançamentos a cada repositório. |
| get_tags | Não | Adicione detalhes sobre todas as tags a cada repositório. |
| get_topics | Não | Adicione a lista de tópicos definidos a cada repositório. |
| get_workflows | Não | Adicione detalhes sobre todos os fluxos de trabalho a cada repositório. |
Parâmetro de filtragem
| Nome | Obrigatório | Propósito |
|---|
| Incluir_names | Não | Uma lista de nomes de repositório a serem incluídos nos resultados. |
| ignore_names | Não | Uma lista de nomes de repositório a serem excluídos dos resultados. |
| incluir_repos | Não | Uma lista de nomes de organização/nomes de repositório a serem incluídos nos resultados. |
| ignore_repos | Não | Uma lista de nomes de organização/nomes de repositório a serem excluídos dos resultados. |
| skip_private | Não | Não inclua repositórios privados, isso é apenas para o usuário autenticado. |
Ignorar e incluir nomes Use o nome completo do repositório, que é o nome da organização / nome do repositório, por exemplo, githubtoolbox / github-extractor-package
Listando todos os repositórios visíveis
Você pode listar repositórios que você pode acessar.
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
| Nome | Obrigatório | Propósito |
|---|
| token | Sim | Autenticação para a API do GitHub. |
| tempo esgotado | Não | O tempo limite a ser usado ao conversar com a API do GitHub (o padrão é de 10 segundos). |
| lesmas | Não | Devemos devolver os resultados como lesmas. (Lista de nomes e nada mais). |
Parâmetro de dados adicionais
| Nome | Obrigatório | Propósito |
|---|
| get_branches | Não | Adicione detalhes sobre todas as filiais a cada repositório. |
| get_contributores | Não | Adicione detalhes sobre todos os colaboradores a cada repositório. |
| get_languages | Não | Adicione a lista de linguagens identificadas para cada repositório. |
| get_releases | Não | Adicione detalhes sobre todos os lançamentos a cada repositório. |
| get_tags | Não | Adicione detalhes sobre todas as tags a cada repositório. |
| get_topics | Não | Adicione a lista de tópicos definidos a cada repositório. |
| get_workflows | Não | Adicione detalhes sobre todos os fluxos de trabalho a cada repositório. |
Parâmetro de filtragem
| Nome | Obrigatório | Propósito |
|---|
| Incluir_names | Não | Uma lista de nomes de repositório a serem incluídos nos resultados. |
| ignore_names | Não | Uma lista de nomes de repositório a serem excluídos dos resultados. |
| incluir_repos | Não | Uma lista de nomes de organização/nomes de repositório a serem incluídos nos resultados. |
| ignore_repos | Não | Uma lista de nomes de organização/nomes de repositório a serem excluídos dos resultados. |
| skip_private | Não | Não inclua repositórios privados, isso é apenas para o usuário autenticado. |
Ignorar e incluir nomes Use o nome completo do repositório, que é o nome da organização / nome do repositório, por exemplo, githubtoolbox / github-extractor-package
Exceções
As seguintes exceções personalizadas são usadas:
| Nome | Propósito |
|---|
| AuthenticationError | Levantado quando a autenticação falha. Isso é causado por um token inválido. |
| MissingAgnameError | Levantado quando o nome da organização está faltando. |
| MissingTokenError | Levantado quando falta o token da API do GitHub, mas é necessário. |
| NotfoundError | Levantado quando um recurso solicitado não é encontrado. Isso é causado pelo escopo incorreto do token. |
| RateLimitexcededError | Levantado quando o limite de taxa de API do GitHub é excedido. |
| Requesterror | Levantado para erros de solicitação geral. |
| Requesttimeouterror | Levantado quando um pedido de tempo se aprofundou. |