Хтось знає про спосіб отримати сповіщення GitHub електронною поштою про фіксацію / витягнення запиту, включаючи повну різницю комісій?
Я знаю про гачок служби електронної пошти, але це не надсилає розл.
Хтось знає про спосіб отримати сповіщення GitHub електронною поштою про фіксацію / витягнення запиту, включаючи повну різницю комісій?
Я знаю про гачок служби електронної пошти, але це не надсилає розл.
Відповіді:
Наразі немає можливості робити те, що ви хочете, використовуючи лише GitHub. Як зазначається в /programming/4211107/how-to-get-email-diffs-for-github-pushes , в GitHub немає підтримки для надсилання електронних листів, включаючи розрізнення. З цього питання виникають дві проблеми GitHub - http://github.com/github/github-services/isissue/86 (закрито) та http://github.com/github/github-services/isissue/149, але хоча вони кажуть, що це може бути реалізовано в майбутньому, але немає жодної ознаки, що це станеться.
Це означає, що якщо ви готові запустити власний веб-сервер (локальний або хмарний, але із сценарієм), сервер електронної пошти чи електронну пошту із сховищем git, ви можете створити це самостійно, використовуючи повідомлення GitHub після отримання ( http: //help.github .com / статті / гачки після отримання), надіслані на ваш веб-сервер, або звичайні (без різниць) повідомлення електронної пошти, надіслані на спеціальну адресу вашого сервера електронної пошти. Вибір між веб-повідомленням та сповіщенням електронної пошти буде зроблений залежно від того, де і як ви розміщуєте ваш сервер - якщо ви маєте хороший зв’язок і надійність, веб-сповіщення матимуть найменші затримки, але якщо ваш веб-сервер з будь-якої причини недоступний, ви не отримаєте сповіщення до наступного виконання зобов'язань, коли ваш веб-сервер буде доступний; використання електронної пошти затримає весь процес, але може бути кращим, якщо ви розміщуєте це вдома, особливо для будь-якої машини, яка не завжди ввімкнена.
У будь-якому випадку вам доведеться написати сценарій, який приймає сповіщення (електронною поштою чи веб / JSON) та перетягує відповідні репортажі з GitHub до локального сховища, де вам доведеться встановити внутрішній пост служби Git- отримати механізм гака, щоб запустити щось на зразок http://github.com/jtek/git-hook-update-notify-email (згадане у вищевказаній статті stackoverflow) або якщо ви готові та зможете встановити та використовувати Pygents (код Python колоризатор), можливо, щось приємніше виглядає як http://blog.chomperstomp.com/making-git-show-post-receive-e-mails-as-an-html-color-formatted-diff/ (пов'язане з / з https: //stackoverflow.com/questions/3232270/git-post-receive-email-hook-to-show-an-html-format-color-diff/ ).
Це трохи сценарій роботи, і вимагає, щоб у вас є хостингова інфраструктура для запуску веб-сервера або сервера електронної пошти, сценарій локального витягування, а потім локальний гачок після отримання, щоб генерувати фактичну електронну пошту з різними, але слід встановити це за менш ніж добу.
Можливо генерувати git diff на кожному натисканні та надсилати його електронною поштою за допомогою дій Github . Ось приклад
...
- name: Generate git diff since last push
run: |
# write raw git diff in file
git diff ${{ github.event.before }} ${{ github.sha }} > git.diff
# convert raw git diff to html
git diff ${{ github.event.before }} ${{ github.sha }} | bash ./.github/diff2html.sh > email-body.html
zip -r diff.zip git.diff email-body.html
- name: Send git diff mail
uses: dawidd6/action-send-mail@v2
with:
server_address: email-smtp.us-east-1.amazonaws.com
server_port: 465
username: ${{secrets.MAIL_USERNAME}}
password: ${{secrets.MAIL_PASSWORD}}
subject: Github Actions job result
# Read file contents as body:
body: file://email-body.html
to: pewogab762@wwrmails.com
from: Luke Skywalker <pewogab762@wwrmails.com>
# Optional content type (defaults to text/plain):
content_type: text/html
attachments: diff.zip
...
Перетворений git diff у HTML-сторінку зберігається тут https://github.com/sturman/git-diff-email/blob/master/email-body-example.html
Повний проект зберігається тут https://github.com/sturman/git-diff-email/