Django "get_git_revision fail: [Errno 2] Нет такого файла или каталога: '.../. Git/HEAD'"

Я недавно установил pybrake для приложения Django, и теперь, когда я запускаю свой сервер разработки, я вижу следующую ошибку:

2018-05-29 18: 32: 13,414 - pybrake - ОШИБКА - сбой get_git_revision: [Errno 2] Нет такого файла или каталога: '/Users/kurtpeek/Documents/Dev/lucy2/lucy-web/.git/HEAD'

Однако после этого сервер разработки запускается нормально; вот полный ответ терминала:

(venv) Kurts-MacBook-Pro-2:lucy-web kurtpeek$ python manage.py runserver
2018-05-29 18:32:13,414 - pybrake - ERROR - get_git_revision failed: [Errno 2] No such file or directory: '/Users/kurtpeek/Documents/Dev/lucy2/lucy-web/.git/HEAD'
2018-05-29 18:32:15,353 - pybrake - ERROR - get_git_revision failed: [Errno 2] No such file or directory: '/Users/kurtpeek/Documents/Dev/lucy2/lucy-web/.git/HEAD'
Performing system checks...

System check identified no issues (0 silenced).
(0.000) SELECT typarray FROM pg_type WHERE typname = 'citext'; args=None
(0.006) 
            SELECT c.relname, c.relkind
            FROM pg_catalog.pg_class c
            LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
            WHERE c.relkind IN ('r', 'v')
                AND n.nspname NOT IN ('pg_catalog', 'pg_toast')
                AND pg_catalog.pg_table_is_visible(c.oid); args=None
(0.031) SELECT "django_migrations"."app", "django_migrations"."name" FROM "django_migrations"; args=()
May 29, 2018 - 18:32:17
Django version 1.11.9, using settings 'lucy.settings.development'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

Ошибка все еще раздражает меня, хотя, и я хотел бы удалить это. Похоже вот так get_git_revision функция ищет в неправильном каталоге: .git каталог находится в lucy2, не в lucy2/lucy-web,

Однако я на самом деле не смог выяснить, откуда возникла эта ошибка: я выполнил поиск по всему проекту get_git_revision но ничего не нашел. Как я могу выяснить источник этой ошибки?

1 ответ

Как предполагает форматирование сообщения об ошибке, ошибка на самом деле выдается pybrake сам. Изучив исходный код ( https://github.com/airbrake/pybrake/blob/master/pybrake/notifier.py), я обнаружил, что можно передать (недокументированное) root_directory ключ к AIRBRAKE установка, вот так:

AIRBRAKE = dict(
    project_id=os.getenv('AIRBRAKE_API_KEY'),
    project_key=os.getenv('AIRBRAKE_PROJECT_ID'),
    root_directory=os.path.dirname(os.path.dirname(BASE_DIR)))

где root_directory соответствующим образом выбран, чтобы содержать .git каталог. Теперь я могу запустить сервер разработки без ошибок:

(venv) Kurts-MacBook-Pro-2:lucy-web kurtpeek$ python manage.py runserver
Performing system checks...

System check identified no issues (0 silenced).
(0.000) SELECT typarray FROM pg_type WHERE typname = 'citext'; args=None
(0.006) 
            SELECT c.relname, c.relkind
            FROM pg_catalog.pg_class c
            LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
            WHERE c.relkind IN ('r', 'v')
                AND n.nspname NOT IN ('pg_catalog', 'pg_toast')
                AND pg_catalog.pg_table_is_visible(c.oid); args=None
(0.001) SELECT "django_migrations"."app", "django_migrations"."name" FROM "django_migrations"; args=()
May 29, 2018 - 19:12:30
Django version 1.11.9, using settings 'lucy.settings.development'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

Между прочим, os.path.dirname(os.getcwd()) также будет работать здесь, так как идет один каталог от pybrakeпо умолчанию, os.getcwd(),

Другие вопросы по тегам