Gibt es ein Skript, das Git-Commits auf Twitter postet?
Lesezeit: 5 Minuten
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.
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
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:
Registrieren Sie eine Anwendung bei Twitter. So machst du das:
Gehen Sie zurück zu Einzelheiten Tab. Scrollen Sie ganz nach unten und klicken Sie auf „Create my OAuth Access Token“.
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.
Das war’s für die Einrichtung Ihrer Twitter-App.
Öffnen Sie eine Shell auf der Maschine, auf die Sie sich festlegen (und von der aus Sie twittern möchten).
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.
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.
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"
Stellen Sie sicher, dass Sie die Datei ausführbar machen. (chmod a+x .git/hooks/post-commit)
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.
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!
10933200cookie-checkGibt es ein Skript, das Git-Commits auf Twitter postet?yes
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