Есть ли скрипт, который отправляет git в твиттер? - PullRequest
18 голосов
/ 16 апреля 2010

Git печально известен своим поощряемым ограничением длины заголовков сообщений: первая строка не должна превышать 50 символов (для заголовка электронного письма).

Это напоминает мне ... ну, есть ли ловушка, которая автоматически отправляет сообщения о фиксации в твиттер, как только они отправляются на сервер?

Ответы [ 7 ]

14 голосов
/ 16 апреля 2010

Вот, пожалуйста:

#!/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

Сохранить как .git/hooks/post-commit в своем хранилище и сделать его исполняемым.

[Примечание: полностью не проверено, я только что сделал это на месте.]

6 голосов
/ 16 апреля 2010

Github делает это с их функцией "Service Hooks" .Код для этого здесь: github / github-services / lib / services / twitter.rb

5 голосов
/ 03 апреля 2013

Я установил ловушку Git post-commit, которая отправляет сообщения в мою личную учетную запись Twitter каждый раз, когда я делаю локальный коммит в своем репозитории разработки. Вот что я сделал:

  1. Зарегистрируйте приложение в Twitter. Вот как вы это делаете:
    1. Перейти к http://dev.twitter.com. Возможно, вам придется снова войти в систему. http://www.adornomedia.com/wp-content/uploads/2013/04/Screen-Shot-2013-04-02-at-5.12.18-PM-300x290.png
    2. Наведите указатель мыши на свой аватар в правом верхнем углу и выберите «Мои приложения» в появившемся меню. http://www.adornomedia.com/wp-content/uploads/2013/04/Screen-Shot-2013-04-02-at-5.22.26-PM.png
    3. Нажмите кнопку «Создать новое приложение». http://www.adornomedia.com/wp-content/uploads/2013/04/Screen-Shot-2013-04-02-at-5.23.14-PM.png
    4. Заполните следующее, как хотите. Адрес сайта может быть любым. Название приложения может быть любым. Оставьте URL обратного вызова пустым. Согласитесь с соглашением, введите CAPTCHA, и все готово. http://www.adornomedia.com/wp-content/uploads/2013/04/Screen-Shot-2013-04-02-at-5.36.56-PM-300x122.png
    5. Далее вы попадете на экран с кучей клавиш. Скопируйте все это в текстовый редактор.
    6. Нажмите вкладку «Настройки». Измените на «Чтение и запись» для Тип приложения . Нажмите Обновить . http://www.adornomedia.com/wp-content/uploads/2013/04/Screen-Shot-2013-04-02-at-5.36.42-PM-300x127.png
    7. Вернитесь на вкладку Подробно . Прокрутите вниз и нажмите «Создать мой токен доступа OAuth».
    8. Подождите несколько секунд, обновите страницу, подождите еще немного. В конце концов, внизу страницы должен появиться раздел с надписью «Ваш токен доступа». Скопируйте эти коды вниз.
    9. Вот и все, что нужно для настройки приложения Twitter.
  2. Откройте оболочку на машине, которую вы планируете зафиксировать (и чирикать от нее).
  3. Установить http_post . Вам придется скомпилировать это из источника. (make и make install). Убедитесь, что он доступен с вашего PATH.
  4. Установить oauth_sign . Вам также придется скомпилировать этот источник формы. ( make и make install ) Убедитесь, что он доступен с вашего PATH.
  5. Наконец, сохраните следующий скрипт в .git / hooks / post-commit в вашем репозитории Git.

    #!/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. Убедитесь, что вы делаете файл исполняемым. (chmod a+x .git/hooks/post-commit)

  7. Вот и все! Если вы хотите, чтобы это автоматически добавлялось во все новые создаваемые вами репозитории, измените шаблоны git-core. Вы должны выяснить, где они находятся (это отличается для каждой настройки). Для меня они находятся здесь: / opt / local / share / git-core / templates / hooks / post-commit .

Примечание: Все это в значительной степени основано на этом сценарии: http://fanf.livejournal.com/108436.html

Удачи!

- Дэвид

3 голосов
/ 16 апреля 2010

Обнаружен какой-то поисковый запрос friedcode . Сам не пробовал, но, похоже, справился.

2 голосов
/ 25 сентября 2018

Если вы не хотите ничего кодировать, вы можете использовать https://gitweet.io

0 голосов
/ 09 января 2018

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

Это сценарий оболочки, который запускает сценарий python для публикации сообщений о фиксации в учетной записи Twitter. вам нужно предоставить 4 токена для вашей учетной записи, как указано в некоторых других ответах, создав приложение для Twitter на https://apps.twitter.com/

Удачи!

0 голосов
/ 23 июля 2015

Я знаю, что это старо, но некоторое время назад я написал этому парню: https://github.com/mrsnowf1ake/twitter-git-hook

Вы можете окружить любую часть коммита с помощью _* и *_. Это не совсем то, что вы упомянули здесь, но оно делает нечто подобное.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...