Обзор
Пакет экстракторов GitHub представляет собой библиотеку Python, предназначенную для облегчения извлечения данных из GitHub.
Этот пакет предоставляет функции для получения информации о репозиториях, включая используемые языки, выпуски, авторы, темы, рабочие процессы и многое другое с надежной обработкой ошибок и поддержкой конфигурации.
Функции
- Список организаций для пользователя из GitHub.
- Перечислите репозитории для пользователя из GitHub.
- Список репозитории для указанной организации от Github.
- Поддержка аутентификации с использованием токенов GitHub API.
- Фильтрация организаций и репозитории на основе заданных моделей.
- Обработка страниц для запросов API.
Установка
Вы можете установить экстрактор GitHub через PIP:
pip install wolfsoftware.github-extractor
Использование
Получение информации о знаке
Вы получите базовую информацию, касающуюся данного токена.
Существует также конкретный инструмент командной строки для этого валидатора токена GitHub.
from wolfsoftware . github_extractor import get_token_information
config = {
"token" : "your_github_token" ,
} Параметры
| Имя | Необходимый | Цель |
|---|
| токен | Да | Аутентификация для GitHub API. |
| тайм -аут | Нет | Тайм -аут для использования при разговоре с API GitHub (по умолчанию составляет 10 секунд). |
| слизняки | Нет | Должны ли мы вернуть результаты как слизняки. (Список имен и ничего больше). |
Получение информации пользователя
Вы получите базовую информацию, касающуюся аутентифицированного пользователя (владельца токена). Информация будет ограничена объемом токена.
from wolfsoftware . github_extractor import get_authenticated_user
config = {
"token" : "your_github_token" ,
} Параметры
| Имя | Необходимый | Цель |
|---|
| токен | Да | Аутентификация для GitHub API. |
| тайм -аут | Нет | Тайм -аут для использования при разговоре с API GitHub (по умолчанию составляет 10 секунд). |
| слизняки | Нет | Должны ли мы вернуть результаты как слизняки. (Список имен и ничего больше). |
Список организаций
Вы можете перечислить организации, что вы являетесь членом использования британского или американского английского орфографии.
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 ) Параметры
| Имя | Необходимый | Цель |
|---|
| токен | Да | Аутентификация для GitHub API. |
| тайм -аут | Нет | Тайм -аут для использования при разговоре с API GitHub (по умолчанию составляет 10 секунд). |
| слизняки | Нет | Должны ли мы вернуть результаты как слизняки. (Список имен и ничего больше). |
Параметры фильтрации
| Имя | Необходимый | Цель |
|---|
| Включите_оргс | Нет | Список названий организаций для включения в результаты. |
| Игнорировать_оргс | Нет | Список имен организаций, чтобы исключить из результатов. |
| get_members | Нет | Должны ли мы включить членов организации в результаты. |
Перечисление пользовательских репозитории
Вы можете перечислить репозитории для пользователя с дополнительными фильтрами:
from wolfsoftware . github_extractor import list_user_repositories
config = {
"token" : "your_github_token" ,
"ignore_repos" : [ "Test*" ],
"include_repos" : [ "Project*" ]
}
repositories = list_user_repositories ( config ) Параметры
| Имя | Необходимый | Цель |
|---|
| токен | Нет | Аутентификация для GitHub API. |
| тайм -аут | Нет | Тайм -аут для использования при разговоре с API GitHub (по умолчанию составляет 10 секунд). |
| слизняки | Нет | Должны ли мы вернуть результаты как слизняки. (Список имен и ничего больше). |
| имя пользователя | Нет | Имя пользователя GitHub для перечисления репозитории для. (Аутентифицированный пользователь будет использоваться, это не поставляется). |
Дополнительный параметр данных
| Имя | Необходимый | Цель |
|---|
| get_branches | Нет | Добавьте подробную информацию обо всех ветвях в каждый репозиторий. |
| get_contributors | Нет | Добавьте подробную информацию обо всех участниках каждого репозитория. |
| get_languages | Нет | Добавьте список идентифицированных языков для каждого репозитория. |
| get_releases | Нет | Добавьте подробную информацию обо всех выпусках в каждый репозиторий. |
| get_tags | Нет | Добавьте подробную информацию обо всех тегах в каждый репозиторий. |
| get_topics | Нет | Добавьте список определенных тем в каждое хранилище. |
| get_workflows | Нет | Добавьте подробную информацию обо всех рабочих процессах в каждый репозиторий. |
Параметр фильтрации
| Имя | Необходимый | Цель |
|---|
| Включает_names | Нет | Список имен хранилища для включения в результаты. |
| игнорировать_names | Нет | Список имен хранилища, чтобы исключить из результатов. |
| Включите_REPOS | Нет | Список имен организаций/имен репозиторий для включения в результаты. |
| игнорировать_репос | Нет | Список имен организаций/имен репозиторий, чтобы исключить из результатов. |
| skip_private | Нет | Не включайте частные репозитории, это только для аутентифицированного пользователя. |
Игнорируйте и включайте имена. Используйте полное имя репозитория, которое является названием организации / хранилище, например, GitHubtoolbox / github-extractor-package
Листинг репозитории организацией
Вы можете перечислить репозитории для конкретной организации с дополнительными фильтрами:
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 ) Параметры
| Имя | Необходимый | Цель |
|---|
| токен | Нет | Аутентификация для GitHub API. |
| тайм -аут | Нет | Тайм -аут для использования при разговоре с API GitHub (по умолчанию составляет 10 секунд). |
| слизняки | Нет | Должны ли мы вернуть результаты как слизняки. (Список имен и ничего больше). |
| org_name | Нет | Организация GitHub для перечисления репозитории для. |
Дополнительный параметр данных
| Имя | Необходимый | Цель |
|---|
| get_branches | Нет | Добавьте подробную информацию обо всех ветвях в каждый репозиторий. |
| get_contributors | Нет | Добавьте подробную информацию обо всех участниках каждого репозитория. |
| get_languages | Нет | Добавьте список идентифицированных языков для каждого репозитория. |
| get_releases | Нет | Добавьте подробную информацию обо всех выпусках в каждый репозиторий. |
| get_tags | Нет | Добавьте подробную информацию обо всех тегах в каждый репозиторий. |
| get_topics | Нет | Добавьте список определенных тем в каждое хранилище. |
| get_workflows | Нет | Добавьте подробную информацию обо всех рабочих процессах в каждый репозиторий. |
Параметр фильтрации
| Имя | Необходимый | Цель |
|---|
| Включает_names | Нет | Список имен хранилища для включения в результаты. |
| игнорировать_names | Нет | Список имен хранилища, чтобы исключить из результатов. |
| Включите_REPOS | Нет | Список имен организаций/имен репозиторий для включения в результаты. |
| игнорировать_репос | Нет | Список имен организаций/имен репозиторий, чтобы исключить из результатов. |
| skip_private | Нет | Не включайте частные репозитории, это только для аутентифицированного пользователя. |
Игнорируйте и включайте имена. Используйте полное имя репозитория, которое является названием организации / хранилище, например, GitHubtoolbox / github-extractor-package
Перечисление всех репозитории организации
Вы можете перечислить все репозитории для всех организаций, которых вы являетесь.
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 ) Параметры
| Имя | Необходимый | Цель |
|---|
| токен | Да | Аутентификация для GitHub API. |
| тайм -аут | Нет | Тайм -аут для использования при разговоре с API GitHub (по умолчанию составляет 10 секунд). |
| слизняки | Нет | Должны ли мы вернуть результаты как слизняки. (Список имен и ничего больше). |
Дополнительный параметр данных
| Имя | Необходимый | Цель |
|---|
| get_branches | Нет | Добавьте подробную информацию обо всех ветвях в каждый репозиторий. |
| get_contributors | Нет | Добавьте подробную информацию обо всех участниках каждого репозитория. |
| get_languages | Нет | Добавьте список идентифицированных языков для каждого репозитория. |
| get_releases | Нет | Добавьте подробную информацию обо всех выпусках в каждый репозиторий. |
| get_tags | Нет | Добавьте подробную информацию обо всех тегах в каждый репозиторий. |
| get_topics | Нет | Добавьте список определенных тем в каждое хранилище. |
| get_workflows | Нет | Добавьте подробную информацию обо всех рабочих процессах в каждый репозиторий. |
Параметр фильтрации
| Имя | Необходимый | Цель |
|---|
| Включает_names | Нет | Список имен хранилища для включения в результаты. |
| игнорировать_names | Нет | Список имен хранилища, чтобы исключить из результатов. |
| Включите_REPOS | Нет | Список имен организаций/имен репозиторий для включения в результаты. |
| игнорировать_репос | Нет | Список имен организаций/имен репозиторий, чтобы исключить из результатов. |
| skip_private | Нет | Не включайте частные репозитории, это только для аутентифицированного пользователя. |
Игнорируйте и включайте имена. Используйте полное имя репозитория, которое является названием организации / хранилище, например, GitHubtoolbox / github-extractor-package
Перечисление всех видимых репозитории
Вы можете перечислить репозитории, к которым вы можете получить доступ.
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 ) Параметры
| Имя | Необходимый | Цель |
|---|
| токен | Да | Аутентификация для GitHub API. |
| тайм -аут | Нет | Тайм -аут для использования при разговоре с API GitHub (по умолчанию составляет 10 секунд). |
| слизняки | Нет | Должны ли мы вернуть результаты как слизняки. (Список имен и ничего больше). |
Дополнительный параметр данных
| Имя | Необходимый | Цель |
|---|
| get_branches | Нет | Добавьте подробную информацию обо всех ветвях в каждый репозиторий. |
| get_contributors | Нет | Добавьте подробную информацию обо всех участниках каждого репозитория. |
| get_languages | Нет | Добавьте список идентифицированных языков для каждого репозитория. |
| get_releases | Нет | Добавьте подробную информацию обо всех выпусках в каждый репозиторий. |
| get_tags | Нет | Добавьте подробную информацию обо всех тегах в каждый репозиторий. |
| get_topics | Нет | Добавьте список определенных тем в каждое хранилище. |
| get_workflows | Нет | Добавьте подробную информацию обо всех рабочих процессах в каждый репозиторий. |
Параметр фильтрации
| Имя | Необходимый | Цель |
|---|
| Включает_names | Нет | Список имен хранилища для включения в результаты. |
| игнорировать_names | Нет | Список имен хранилища, чтобы исключить из результатов. |
| Включите_REPOS | Нет | Список имен организаций/имен репозиторий для включения в результаты. |
| игнорировать_репос | Нет | Список имен организаций/имен репозиторий, чтобы исключить из результатов. |
| skip_private | Нет | Не включайте частные репозитории, это только для аутентифицированного пользователя. |
Игнорируйте и включайте имена. Используйте полное имя репозитория, которое является названием организации / хранилище, например, GitHubtoolbox / github-extractor-package
Исключения
Используются следующие пользовательские исключения:
| Имя | Цель |
|---|
| Аутентификация | Поднят, когда аутентификация не удается. Это вызвано неверным токеном. |
| Пропавшая дорганамеррор | Поднято, когда название организации отсутствует. |
| MasstokenError | Поднят, когда токен GitHub API отсутствует, но требуется. |
| NotFoundError | Поднят, когда запрашиваемый ресурс не найден. Это вызвано неправильным охватом токена. |
| RateLimitexededError | Поднят, когда превышен предел ставки GitHub API. |
| Запрос | Повышен для общих ошибок запроса. |
| RequestTimeouterror | Поднят, когда запрос времена. |