Gibt es ein Skript, das Git-Commits auf Twitter postet?

Lesezeit: 5 Minuten

Benutzer-Avatar
P Schwed

Git ist berüchtigt für seine empfohlene Längenbegrenzung für Commit-Nachrichtentitel: Die erste Zeile sollte nicht länger als 50 Zeichen sein (um in einen E-Mail-Header zu passen).

Das erinnert mich an … Nun, gibt es einen Hook, der Commit-Nachrichten automatisch auf Twitter postet, sobald sie auf den Server übertragen werden?

  • Was für eine bizarre Idee. Mag ich.

    – Tom

    16. April 2010 um 13:06 Uhr


  • Die Grenze wird gefördert; dem Benutzer nicht aufgezwungen.

    – Htbaa

    16. April 2010 um 13:29 Uhr

  • @Htbaa oder natürlich, aber das bedeutet, dass Git-Benutzer höchstwahrscheinlich eine Kultur des Verfassens von Kurznachrichten haben.

    – P Schweb

    16. April 2010 um 13:33 Uhr

  • Nee… ich mache einfach was ich will 🙂

    – Htbaa

    16. April 2010 um 14:32 Uhr

Benutzer-Avatar
Jörg W Mittag

Bitte schön:

#!/bin/sh
username=<your Twitter account>
password=<your Twitter password>

service_uri=http://api.twitter.com/1/statuses/update.json

subject=`git log --pretty=format:%s -n1`

curl -u "${username}:${password}" -d status="${subject}" $service_uri

Speichern als .git/hooks/post-commit in Ihrem Repository und machen Sie es ausführbar.

[Note: completely untested, I just made this up on the spot.]

  • Ein Vorschlag: Dies sollte ein Post-Receive-Hook sein, der auf der Fernbedienung ausgeführt wird, nachdem Sie darauf gedrückt haben. Es erhält auf stdin alle Refs, die aktualisiert wurden: “ “, damit Sie so etwas tun können while read line; do fields=($line); subject="$(git log --pretty=format:%s ${fields[0]}..${fields[1]})"; ....; done.

    – Kaskabel

    19. April 2010 um 16:02 Uhr


  • Dies funktioniert nicht, da Twitter die Basisauthentifizierung nicht mehr unterstützt

    – Fatmuemoo

    5. Februar 2013 um 6:04 Uhr

Benutzer-Avatar
Michael Borgwart

Github tut dies mit ihrer „Service Hooks“-Funktion. Der Code dafür ist hier: github/github-services/lib/services/twitter.rb

Benutzer-Avatar
DavidH

Ich richte einen Post-Commit-Hook für Git ein, der jedes Mal, wenn ich einen lokalen Commit in meinem Entwicklungs-Repository mache, Posts an meinen privaten Twitter-Account sendet. Folgendes habe ich getan:

  1. Registrieren Sie eine Anwendung bei Twitter. So machst du das:
    1. Gehe zu http://dev.twitter.com. Möglicherweise müssen Sie sich erneut anmelden.
      http://www.adornomedia.com/wp-content/uploads/2013/04/Screen-Shot-2013-04-02-at-5.12.18-PM-300×290.png
    2. Bewegen Sie den Mauszeiger über Ihren Avatar oben rechts und wählen Sie „Meine Anwendungen“ aus dem angezeigten Menü.
      http://www.adornomedia.com/wp-content/uploads/2013/04/Screen-Shot-2013-04-02-at-5.22.26-PM.png
    3. Klicken Sie auf die Schaltfläche „Neue Anwendung erstellen“.
      http://www.adornomedia.com/wp-content/uploads/2013/04/Screen-Shot-2013-04-02-at-5.23.14-PM.png
    4. Füllen Sie das nächste aus, wie Sie möchten. Die Website-Adresse kann alles sein. Der Name der App kann beliebig sein. Verlassen Rückruf-URL leer. Stimmen Sie der Vereinbarung zu, geben Sie das CAPTCHA ein und schon kann es losgehen.
      http://www.adornomedia.com/wp-content/uploads/2013/04/Screen-Shot-2013-04-02-at-5.36.56-PM-300×122.png
    5. Als nächstes werden Sie zu einem Bildschirm mit einem Schlüsselbund weitergeleitet. Kopieren Sie alle diese in einen Texteditor.
    6. Klicken Sie auf die Registerkarte „Einstellungen“. Wechseln Sie zu „Lesen und Schreiben“ für Anwendungstyp. Klicken Aktualisieren.
      http://www.adornomedia.com/wp-content/uploads/2013/04/Screen-Shot-2013-04-02-at-5.36.42-PM-300×127.png
    7. Gehen Sie zurück zu Einzelheiten Tab. Scrollen Sie ganz nach unten und klicken Sie auf „Create my OAuth Access Token“.
    8. Warten Sie ein paar Sekunden, aktualisieren Sie die Seite, warten Sie noch etwas. Schließlich sollte am Ende der Seite ein Abschnitt erscheinen, der besagt „Ihr Zugriffstoken.“ Kopieren Sie diese Codes nach unten.
    9. Das war’s für die Einrichtung Ihrer Twitter-App.
  2. Öffnen Sie eine Shell auf der Maschine, auf die Sie sich festlegen (und von der aus Sie twittern möchten).
  3. Installieren http_post. Sie müssen dies aus der Quelle kompilieren. (make und make install). Stellen Sie sicher, dass es von Ihrem aus zugänglich ist PATH.
  4. Installieren auth_sign. Sie müssen auch diesen Formularquelltext kompilieren. (machen und Installation machen) Stellen Sie sicher, dass es von Ihrem aus zugänglich ist PATH.
  5. Speichern Sie abschließend das folgende Skript in .git/hooks/post-commit in Ihrem Git-Repository.

    #!/bin/sh
    
    # PATH modification needed for http_post and oauth_sign
    export PATH=$PATH:/usr/local/bin
    
    toplevel_path=`git rev-parse --show-toplevel`
    toplevel_dir=`basename "$toplevel_path"`
    
    branch=`git rev-parse --abbrev-ref HEAD`
    subject=`git log --pretty=format:%s -n1`
    hashtags="#code #$toplevel_dir"
    tweet=$hashtags' ['$branch']: "'$subject'"'
    
    # truncate tweets that are longer than 140 characters
    if [ ${#tweet} -gt 140 ]
        then
            tweet_trunc=$(echo $tweet | cut -c1-137)
            tweet=${tweet_trunc}...
    fi
    
    consumer_key="<Put your computer key here>"
    consumer_secret="<Put your consumer secret here>"
    access_token="<Put your access token here>"
    access_secret="<Put your access token secret here>"
    url="https://api.twitter.com/1.1/statuses/update.json"
    
    http_post -h Authorization "$(oauth_sign \
    $consumer_key $consumer_secret \
    $access_token $access_secret \
    POST "$url" status="$tweet")" \
         "$url" status="$tweet"
    
  6. Stellen Sie sicher, dass Sie die Datei ausführbar machen. (chmod a+x .git/hooks/post-commit)

  7. Das ist es! Wenn Sie möchten, dass dies automatisch zu allen neuen Repositories hinzugefügt wird, die Sie erstellen, ändern Sie die Git-Core-Vorlagen. Sie müssen herausfinden, wo diese sind (es ist für jedes Setup anders). Bei mir liegen sie hier: /opt/local/share/git-core/templates/hooks/post-commit.

Notiz: Dies alles basiert stark auf diesem Skript: http://fanf.livejournal.com/108436.html

Viel Glück!

–David

  • Wo bekomme ich http_post und oauth_sign für Windows her?

    – atwellpub

    5. Mai 2014 um 21:30 Uhr

Einige googeln entdeckt Friedcode. Ich habe es selbst nicht ausprobiert, aber es scheint zu funktionieren.

Wenn Sie nichts codieren möchten, können Sie verwenden https://gitweet.io

Benutzer-Avatar
kotakotakota

Ich weiß, das ist alt, aber vor einiger Zeit schrieb ich diesen Typen: https://github.com/mrsnowf1ake/twitter-git-hook

Sie können jeden Teil des Commit mit umgeben _* und *_. Es ist nicht genau das, was Sie hier erwähnt haben, aber es tut etwas Ähnliches.

Benutzer-Avatar
jcp

https://github.com/and-computers/HowToTweetEveryCommit

Es ist ein Shell-Skript, das ein Python-Skript ausführt, um Ihre Commit-Nachrichten an ein Twitter-Konto zu senden. Sie müssen die 4 Token für Ihr Konto bereitstellen, wie in einigen der anderen Antworten angegeben, indem Sie eine Twitter-Anwendung unter erstellen https://apps.twitter.com/

Viel Glück!

1093320cookie-checkGibt es ein Skript, das Git-Commits auf Twitter postet?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy