GitHub'ın diff dahil taahhüt bildirimleri göndermesinin bir yolu var mı?


11

Herkes GitHub e-posta taahhüt / çekme isteği bildirimleri taahhüt tüm fark dahil olmak için bir yol biliyor mu?

E-posta hizmeti kanca hakkında biliyorum, ama bu fark göndermez.



Ne yazık ki, nefesinizi tutmayın github.com/github/github-services/issues/86 Nisan ayında kapatıldı, bu yüzden 149. sayı ile de bir şey yapmaları pek mümkün görünmüyor.
Alex Dupuy

Bu soru cevaplandı (çoğunlukla olumsuz) stackoverflow.com/questions/4211107/…
Alex Dupuy

@Alex - Bu soruyu cevaplanmamış soruların ön sayfasından çıkarmanıza yardımcı olmak için yorumunuzu yanıt olarak göndermek ister misiniz?
Shannon Wagner

@ShannonWagner - çok gönderildi. Hatta yerel kaynakları ve diğer araçları kullanarak her şeyin gerçekleşmesi için bir yol buldum, ancak talimatlar sadece kaba bir taslak ve bunu yapmak için komut dosyası, montaj ve piller dahil değildir.
Alex Dupuy

Yanıtlar:


3

Şu anda, sadece GitHub'ı kullanarak istediğinizi yapmanın bir yolu yoktur. Https://stackoverflow.com/questions/4211107/how-to-get-email-diffs-for-github-pushes bölümünde belirtildiği gibi GitHub'da diffs dahil olmak üzere e-posta gönderme desteği yoktur. Bunun hakkında soran iki GitHub sorunu var - http://github.com/github/github-services/issues/86 (kapalı) ve http://github.com/github/github-services/issues/149 ama bunun gelecekte uygulayabilecekleri bir şey olduğunu söylüyorlar, bunun olacağına dair bir gösterge yok.

Bununla birlikte, git deposu ile kendi (yerel veya bulutta barındırılan, ancak komut dosyasıyla) web veya e-posta sunucunuzu çalıştırmak istiyorsanız, GitHub alma sonrası bildirimlerini ( http: //help.github) kullanarak kendiniz oluşturabilirsiniz. .com / makaleler / post-alma-kancalar) web sunucunuza gönderilir veya e-posta sunucunuzdaki özel bir adrese gönderilen normal (diffs olmadan) e-posta bildirimleri. Web ve e-posta bildirimi arasındaki seçim, sunucunuzu nerede ve nasıl barındırdığınıza bağlı olarak yapılacaktır - iyi bir bağlantınız ve güvenilirliğiniz varsa, web bildirimlerinin en düşük gecikme süresi olacaktır, ancak web sunucunuza herhangi bir nedenle erişilemiyorsa, web sunucunuza erişilebilecek bir sonraki işleme kadar bildirim almazsınız; e-posta kullanmak tüm süreci geciktirir, ancak bunu evde barındırıyorsanız ve özellikle her zaman açık olmayan herhangi bir makine için tercih edilebilir.

Her iki durumda da, (e-posta veya web / JSON) bildirimini alan ve ilgili depoları GitHub'dan yerel bir depoya çeken bir komut dosyası yazmanız gerekir; burada Git'in dahili postasını ayarlamanız gerekir. http://github.com/jtek/git-hook-update-notify-email (yukarıdaki yığın akışı makalesinde bahsedilir) gibi bir şeyi çalıştırmak veya kancalar (Python kodu (Python kodu) yüklemek ve kullanmak istiyorsanız, kanca mekanizması alın renklendirici) belki de http://blog.chomperstomp.com/making-git-show-post-receive-e-mails-as-an-html-color-formatted-diff/ ( https ile bağlantılı / https: //stackoverflow.com/questions/3232270/git-post-receive-email-hook-to-show-an-html-formatted-color-diff/ ).

Biraz komut dosyası çalışması ve web veya e-posta sunucusunu, yerel çekme komut dosyasını ve ardından diffs ile gerçek e-postayı oluşturmak için yerel alma sonrası kancasını çalıştırmak için bazı barındırma altyapınız olmasını gerektirir, ancak bunu bir günden daha kısa sürede ayarlamak mümkün olmalıdır.


0

Her pushta git diff oluşturup Github Eylemleri'ni kullanarak e-posta ile göndermek mümkündür . İşte örnek

...
    - 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
...

HTML sayfasına dönüştürülen git fark burada depolanır https://github.com/sturman/git-diff-email/blob/master/email-body-example.html

Projenin tamamı burada saklanır https://github.com/sturman/git-diff-email/

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.