A4 WORKS Official BLOG

A4 WORKS オフィシャルブログ

git PHP Slack webAPI

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

投稿日:2015年9月12日 更新日:

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
-, ,

執筆者:

関連記事

file_get_contensでPOSTリクエスト

file_get_contensでファイルパスの代わりにURLを指定することで、手軽かつ簡易に外部のサイトからソースを取得することができ、WebAPIからデータを取得するなどに重宝します。 ただ、PH …

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

公式のドキュメントも分かりやすく整理されているとはおもいますが、このスライドが要点がかなりよく整理されているので、先にざっとみてからだとより理解が早まるかと。やや昔の資料ですが、役に立つかと思いシェア …

memcachedのインストールとPHPの対応

AWSのサーバーにmemcachedをインストールしたので備忘録。 memcachedのインストール # yum install memcached 起動します。 # service memcache …

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

コミットした後に変数名が間違って(typoして)いたとかで、そのままコミットしてログを残すものちょっとかっこ悪いと言うときに、コミットをひとまとめにして無かった事にしたい場合があります。。。 そんな時 …

FuelPHPでSmartyを使う

以前のエントリ「FuelPHPを使ってみる」の続きです。 Twigを導入するか迷ったんですが、今回はなじみがあるのでSmartyを採用(導入)します。 最初に。 バージョン1.7.2でのセットアップ方 …