Comments 10
# Формирование и отправка сообщения в файл
if out_log_file_name:
Я так понимаю вы формируете что-то вроде json?
Разве нельзя нормально писать через модуль json
json.dump(data,file)
или на худой конец писать в БД
Мне не совсем понятен этот момент
# Формирование и отправка сообщения в файл
if out_log_file_name:
Проверка есть ли в переменной значение, если она пустая, то в файл результат писаться не будет. По поводу json — ничего не формирую, изначально задача стаяла отправлять всё в GreyLog, отправку в файл сделал только ради этой статьи.
Мне не совсем понятен этот момент
# Формирование и отправка сообщения в файл
if out_log_file_name:
Проверка есть ли в переменной значение, если она пустая, то в файл результат писаться не будет. По поводу json — ничего не формирую, изначально задача стаяла отправлять всё в GreyLog, отправку в файл сделал только ради этой статьи.
Там есть Slack notifications. На сайте api.slack.com/apps настраиваются Webhook и потом идут уведомления в слак.
docs.gitlab.com/ce/user/project/integrations/slack.html
/opt/gitlab/embedded/bin/psql --port 5432 -h /var/opt/gitlab/postgresql -d gitlabhq_production
Немного критики (возможно даже конструктивной).
- Хардкодить константы — не очень изящное решение. На мой взгляд, куда интереснее брать их из переменных окружения. Всё равно же через systemd запускаете.
По
psycopg2
Вы не очень внимательно документацию почитали. В частности, вот тут (таких мест несколько, взял первое попавшееся):
sql_string_find_username="""SELECT extern_uid FROM identities WHERE user_id = (SELECT user_id FROM keys WHERE id = %s);""" %user_key
Вы наступаете на те самое грабли, про который документация не говорит, а кричит: Never, never, NEVER use Python string concatenation (+) or string parameters interpolation (%) to pass variables to a SQL query string. Not even at gunpoint.
Опять же, про psycopg2: задавать соединение можно очень красиво:
conn = psycopg2.connect(dsn='postgres://user:password@host:5432/database')
и да, зачем устанавливать соединение в обработчике строки? Мне кажется, что лучше создать одно соединение (или пул, не принципиально) при старте скрипта.
К слову, и сам объект подключенияpsycopg2
, и его курсор можно использовать как менеджер контекста. Код получается чище, плюс не надо париться о закрытии.
- Запись в лог — вообще что-то странное :) комментировать не берусь.
А если субъективно, то такие штуки круче на баше писать. Получается куда выразительнее :)
Мониторинг событий git clone и git push на локальном GitLab сервере