A4 WORKS Official BLOG

A4 WORKS オフィシャルブログ

BitbucketのPull RequestをSlackに通知するWeb API

   

BitbucketのWebhookと、SlackのWebAPIを組み合わせせる事でcommit通知は送れるのですが、Pull Requestの通知は標準では送信できない様です。

ネットで探すといくつかのツールが見つかりますが、極力シンプルで改造しやすいをコンセプトに連携ツールを作成しました。

ダウンロード

ダウンロードはこちらから。
GitHub: bitbucket-slack


 

READMEに書いてあるモノをそのまま転記です。

Bitbucket-Slack の使い方

BitbucketのPull Request、コミット、コメントをSlackにPostします

コンセプト

1ファイルのわかりやすい構成としています。
最低限の実装なので、ご自由に改編して使ってください。
PHPの経験が少ない方でも改編して使って頂けるように極力シンプルに作ったつもりです。

使い方

前提

slackのチャンネル名は #test

WebAPIのTokenは取得済みである

参考: tokenの取得方法は割愛しますが以下のURLから取得できます。
https://api.slack.com/web

最低限の設定

1.PHPが動くサーバーにファイルをおきます。

http://example.com/bitbucket2slack.php としてアクセスできる前提とします。

2.設置したファイル内のSLACK_API_TOKENを適切なtokenに書き換えます。

Bitbuketの通知を行いたいリポジトリにて設定Webhooksの設定を行ないます。

Settings-> Webhooks

URL設定欄にパラメータchannelを追加してURLを設定します。
(チャンネル名の#はつけません)
e.g.
http://example.com/bitbucket2slack.php?channel=test

Triggers->Choose from a full list of triggers のチェックをいれ、 Pull Requestの必要箇所にチェックを入れます。

その他

アイコンは適宜変えてください。 Webhooksのリクエストに、ユーザーのアイコン情報が含まれますので、 それらを使うように改変して頂くのもよいかと思います。

動かない場合

USE_SYSTEM_LOG,USE_DISPLAY_LOG,SAVE_REQUEST_DATAの各項目をtrueに設定することで、 動作検証の手助けができます。 USE_SYSTEM_LOGを有効にした場合には、/var/log/httpd/error.logなどに出力されます。
※Webサーバーの設定により異なりますのでパスは適宜読み替えてください


 

何かの足しになれば幸いです。

 - git, PHP, Slack, webAPI , ,

STINGERレクタングル大

STINGERレクタングル大

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

  関連記事

git_icon
どこからcloneしたgitリポジトリか思い出せない場合

GitHub以外にもbacklogのリポジトリだったり、クライアントのGitLa …

no image
PHPの名前空間を実際に使ってみた。

A4 WORKS 新人の池田です。 “ブログを書くことで学べる事も多 …

fuelPHP_icon
FuelPHPのとっかかりの際に目を通してほしいスライド

公式のドキュメントも分かりやすく整理されているとはおもいますが、このスライドが要 …

git_icon
git commitのログを操作して履歴から消し去りたい

コミットした後に変数名が間違って(typoして)いたとかで、そのままコミットして …

git_icon
Gitで一時的に”Changes not staged for commit”リストから外す

デバッグなどで一時的にコードを変更(設定値変更とか、条件を固定とか)してるときに …

fuelPHP_icon
FuelPHPを使ってみる

ゲーム開発プロジェクトのサーバー側(アプリと連携させるAPIとか管理機能とか)を …

git_icon
gitでリポジトリから削除はしたいがファイルは残したい場合のgit rm

通常のgit rmだとファイルも削除されてしまうので、リポジトリからのみ消したい …

fuelPHP_icon
FuelPHPでSmartyを使う

以前のエントリ「FuelPHPを使ってみる」の続きです。 Twigを導入するか迷 …

git_icon
Gitでファイルのパーミッション変更を無視する設定

ファイルのパーミッション変更をファイルの変更と認識されてしまうのを回避します。 …

php_icon
backlogとslackを連携させるツールをPHPでつくってみる

backlog(http://www.backlog.jp/)の更新情報をsla …