LoginSignup
12

More than 5 years have passed since last update.

Stash(Atlassian)からコミットがあった際にSlackへフックする設定

Posted at

stashToSlack.png

はじめに

すごく特殊な環境なのですが、バージョン管理にstashを利用し、チャットにslackを利用している場合、slackにpushがされたことを通知したりするような、
Integrationが簡単ではないのです。

しかし、チャットに状況が送られてこないと、

  • 誰が何をしているかわからない
  • 作業した達成感とかも味わえない
  • モチベ下がる

のような負の要素がたまるため、
今回デフォルトのプラグインではできない、
StashからSlackへフックする設定をしていきます。

Slackの設定

Incoming WebHooksを設定

Slack側でStashのリポジトリにpushされたタイミングで通知がくるようにするAPIを設定していきます。

1. 部屋名のリンクから「Add a service integration..」のリンク押します。

slack.png

2. 「Incoming WebHooks」を「Add」します。

スクリーンショット 2015-01-24 17.54.55.png

3. チャンネルを選んで追加!

APIが叩かれた際に、どこの部屋に通知を送るかを設定します。

kobito.1422089742.995238.png

4. Web hook URLをゲット!

kobito.1422089793.525744.png

画像や名前も変えることができます!

スクリーンショット 2015-01-24 17.57.07.png

StashをインストールしたサーバにslackのAPIを叩くshellを用意

stash_slack.sh

ココのGistをコピペです。

https://gist.github.com/linjer/2ee6146d3b320cbe9225

任意のリポジトリへおいてください。
今回はstash-homeと同じディレクトリにstash-slackというフォルダを用意し、格納しました。

$sudo su 
$su stash
$ mkdir /opt/atlassian/stash/stash-slack
$ vim /opt/atlassian/stash/stash-slack/stash_slack.sh 
#先ほどのGistを貼り付けます

$ chmod +x /opt/atlassian/stash/stash-slack/stash_slack.sh 
#stash での実行権限を与えて完了です

Stashの設定

External Hooksアドオンの追加・設定

1.リポジトリにpushがあった際に反応するフックのアドインを追加します

slack2.png

2.External Hooks を追加します

スクリーンショット 2015-01-24 17.59.35.png

3.External Hooksの設定

シェルの実行とパラメータの設定を行います。

Executableに先ほど作成したshellフルパスを記載

/opt/atlassian/stash/stash-slack/stash_slack.sh

Positional parameters

  • $1 Slackのweb hookのURL
  • $2 SlackのルームID
  • $3 stashのリポジトリURL
https://hooks.slack.com/services/XXXXXXXXXXXXXXXX
#dev6
http://XXXXXXXXXXXX/stash/projects/XXXXX/repos/XXXXXX

stash_1.png

試してみる

こんな感じでpushしてslackに通知がきましたら設定完了です〜

stash_2.png

最後に

検索したら便利なGistがあって本当によかったです。
これでなんとか快適な開発ライフを送れそうです。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12