1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/guaifish-PyGithub

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
CONTRIBUTING.md 7.1 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 01.12.2024 13:32 a400bce

Вклад в проект

Проблемы

Хорошая проблема включает в себя короткий, автономный, правильный пример проблемы, что-то вроде:

assert github.Github().get_user("jacquev6").name == "Vincent Jacques"

Ещё лучше, если вы предоставите журналы отладки, связанные с вашей проблемой. Включите их с помощью github.enable_console_debug_logging и скопируйте их в тело проблемы. Внимание: вы можете захотеть удалить некоторую личную информацию (информация для аутентификации удалена, но в сообщениях может быть личная информация).

Если по какой-либо причине вы не можете этого сделать, всё равно откройте свою проблему, и сопровождающий увидит, что нужно для решения вашей проблемы.

Запросы на вытягивание

Запросы на вытягивание должны чётко описывать две вещи:

  1. Проблему, которую они пытаются решить.
  2. Как автор подошёл к решению проблемы.

В идеале изменения должны вноситься логическими коммитами, а тесты добавляться для улучшения покрытия проекта API GitHub.

Стиль кодирования

PyGithub использует стиль чёрного кодирования и использует isort для сортировки импорта.

Чтобы вручную отформатировать код:

tox -e lint

Плагин предварительного коммита

Чтобы забыть о стиле кодирования и позволить предварительному коммиту исправить вашу проблему с flake8/isort/black.

pre-commit install

Вот и всё!

Добавление отсутствующих атрибутов для GithubObject

$ python scripts/add_attribute.py [class_name] [attribute_name] [attribute_type]

# Например, если вы хотите добавить атрибут url строкового типа в класс Commit
# Примечание: при добавлении нескольких атрибутов вам придётся запускать скрипт несколько раз

$ python scripts/add_attribute.py Commit url string

Предупреждение об устаревании

Прежде чем удалять атрибуты/методы, рассмотрите возможность добавления предупреждений об устаревании. Пакет Deprecated предоставляет удобный декоратор для добавления предупреждений об устаревании с необязательным объяснением.

from deprecated import deprecated

@property
@deprecated
def rate(self):
   pass

@deprecated(reason="Deprecated in favor of the new branch protection")
def get_protected_branch(self):
   pass

Автоматизированные тесты

Сначала вам нужно установить тестовые зависимости:

pip install -r test-requirements.txt

Затем вы можете запустить тесты через pytest. Запустите конкретный тест с pytest tests/tests_filename.py или pytest tests/tests_filename.py -k testMethod или pytest -k TestClass.testMethod.

Если вы добавите новый тест, например Issue139.testCompletion, вам нужно будет запустить pytest -k Issue139.testCompletion --record, чтобы создать файлы tests/ReplayData/*.txt, необходимые для вашего нового теста. Проверьте их и зафиксируйте. Вам понадобится файл GithubCredentials.py в корне проекта со следующим содержимым:

login = "my_login"
password = "my_password"  # Можно оставить пустым, если не используется
oauth_token = "my_token"  # Можно оставить пустым, если не используется
jwt = "my_json_web_token"  # Можно оставить пустым, если не используется

Если у вас включена двухфакторная аутентификация в вашем аккаунте Github, тесты, требующие аутентификации с логином/паролем, завершатся ошибкой. Вы можете использовать pytest Issue139.testCompletion --record --auth_with_token, чтобы использовать поле oauth_token, указанное в GithubCredentials.py, при записи взаимодействия с модульным тестом. Обратите внимание, что password = "" (пустая строка подходит) всё ещё должна присутствовать в GithubCredentials.py, чтобы запускать тесты даже при использовании аргумента --auth_with_token. (Также обратите внимание, что если вы записываете свои тестовые данные с помощью --auth_with_token, то вам также необходимо находиться в режиме аутентификации по токену при запуске теста. Простой альтернативой является замена token private_token_removed на Basic login_and_password_removed во всех ваших вновь созданных файлах ReplayData.)

Аналогично вы можете использовать pytest Issue139.testCompletion --record --auth_with_jwt, чтобы использовать поле jwt, указанное в GithubCredentials.py, для доступа к конечным точкам, требующим JWT.

Для запуска ручных тестов с внешними сценариями, использующими пакет PyGithub, вы можете установить разрабатываемую версию с помощью:

pip install --editable path/to/project

Вы также можете изучить... Для запуска тестов с помощью tox:

pip install tox
tox -epy36

Сборка документации локально

pip install -r requirements.txt
sphinx-build doc build

Если вы используете tox:

tox -edocs

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/guaifish-PyGithub.git
git@api.gitlife.ru:oschina-mirror/guaifish-PyGithub.git
oschina-mirror
guaifish-PyGithub
guaifish-PyGithub
master