Чи можна GitHub надсилати сповіщення про виконання зобов’язань, включаючи різні?


11

Хтось знає про спосіб отримати сповіщення GitHub електронною поштою про фіксацію / витягнення запиту, включаючи повну різницю комісій?

Я знаю про гачок служби електронної пошти, але це не надсилає розл.


Ви можете подзвонити на github.com/github/github-services/isissue/149 - сервісні гачки навіть не мають розбіжностей
Алекс Дюпюй

Не затримуйте дихання, однак, в квітні було закрито github.com/github/github-services/isissue/86 , тому, мабуть, вони теж нічого не зроблять із проблемою 149.
Алекс Дюпюй

На це запитання відповіли (в основному негативно) на stackoverflow.com/questions/4211107/…
Alex Dupuy

@Alex - Чи хочете ви опублікувати свій коментар як відповідь, щоб допомогти перенести це питання з головної сторінки без відповідей?
Шеннон Вагнер

@ShannonWagner - так розміщено. Я навіть придумав спосіб зробити це все, використовуючи місцеві ресурси та інші інструменти, але вказівки - це лише приблизний контур, і для того, щоб це сталося, знадобиться сценарій, складання та батареї, що не включаються.
Алекс Дюпюй

Відповіді:


3

Наразі немає можливості робити те, що ви хочете, використовуючи лише 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/ ).

Це трохи сценарій роботи, і вимагає, щоб у вас є хостингова інфраструктура для запуску веб-сервера або сервера електронної пошти, сценарій локального витягування, а потім локальний гачок після отримання, щоб генерувати фактичну електронну пошту з різними, але слід встановити це за менш ніж добу.


0

Можливо генерувати 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/

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.