Glide Note

glidenote's blog

GitHubのissueやpull reqにcommentが付いたらIRC hoooks経由で通知されるように設定した

もともとmizzyさんが作ったプログラムで GitHubの業務用Repository上のイベントはIRCに通知されるようになっていたんですが、 @tnmtからGitHubのhooksだけで出来るようになったとの情報をゲットしたので早速設定してみた。

@soh335さんのブログ を見ると、下記のような形で、hooksの設定確認や設定変更が出来る模様。

1
2
curl -u username https://api.github.com/repos/:owner/:reponame/hooks
curl -u username https://api.github.com/repos/:owner/:reponame/hooks/:id -X PATCH -d '{ "add_events": ["issues"] }'

たとえば私の場合は下記のような感じで、hooksの詳細を確認

1
curl -u "glidenote" -in https://api.github.com/repos/paperboy-hogemoge/hogemoge-ops/hooks

下記のような形で返ってくる。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
[
  {
    "url": "https://api.github.com/repos/paperboy-hogemoge/hogemoge-puppet/hooks/367xxx",
    "test_url": "https://api.github.com/repos/paperboy-hogemoge/hogemoge-puppet/hooks/367xxx/test",
    "id": 367xxx,
    "name": "irc",
    "active": true,
    "events": [
      "push"
    ],
    "config": {
      "server": "irc.hogemoge.co.jp",
      "port": "6668",
      "room": "hogemoge-ops",
      "nick": "github",
      "branch_regexes": "",
      "nickserv_password": "",
      "password": "*************************",
      "ssl": "1",
      "notice": "1"
    },
    "last_response": {
      "code": 504,
      "status": "timeout",
      "message": "Service Timeout"
    },
    "updated_at": "2013-06-25T07:01:21Z",
    "created_at": "2012-08-02T06:59:43Z"
  }
]

idが分かったので、下記のような形で設定

1
2
3
4
curl -u "glidenote" -in https://api.github.com/repos/paperboy-hogemoge/hogemoge-ops/hooks/367xxx -X PATCH -d '{ "add_events": ["issues"] }'
curl -u "glidenote" -in https://api.github.com/repos/paperboy-hogemoge/hogemoge-ops/hooks/367xxx -X PATCH -d '{ "add_events": ["issue_comment"] }'
curl -u "glidenote" -in https://api.github.com/repos/paperboy-hogemoge/hogemoge-ops/hooks/367xxx -X PATCH -d '{ "add_events": ["commit_comment"] }'
curl -u "glidenote" -in https://api.github.com/repos/paperboy-hogemoge/hogemoge-ops/hooks/367xxx -X PATCH -d '{ "add_events": ["pull_request_review_comment"] }'

issueが作られたり、issueにコメントが付くとhooks経由でIRCに通知されるようになった。

GitHub Enterpriseでも同じように設定出来るかと思ったけど、まだ対応してなかった。 ちなみにGitHub Enterpriseの場合は下記のような感じで詳細確認が出来た。

1
curl -u "glidenote" -in https://hostname/api/v3/repos/:owner/:repos/hooks

参考

Comments