コードリポジトリをローカルで使用する場合、各種アクションに対してスクリプトによるフックがかけられます。 これと同じように、OSDN では 「Webフック」を使用することができます。
具体的には push (svn の場合はコミット) が行われた際、その内容を JSON に変換して指定された URL に POST します。 POST 先では JSON を解釈して好きなアクションをすることができます。
プロジェクトもしくは作業部屋の管理者でログインし、リポジトリブラウザのサブメニュー「フック」から設定してください。
データ構造はgithub の物に近付けてあります。 ただし、現在のところ push の中に存在する個々のコミット情報は含まれません。
データは通常の HTML フォームと同じく、Content-Disposition: form-data 形式で POST メソッドで送信され、 "payload" という単一キーを持ち、中身は JSON 形式です。
- {
- "after": "6829ef8417b4d6c7cb20f4a34b6ccf4cb97dabe2",
- "before": "6789be548cc0d16a94f6d128ff813b64184ba549",
- "head_commit": {
- "author": {
- "email": "sugi@nemui.org",
- "name": "Tatsuki Sugiura"
- },
- "id": "6829ef8417b4d6c7cb20f4a34b6ccf4cb97dabe2",
- "message": "Test!\n",
- "timestamp": "2013-06-07T17:34:49",
- "url": "http://osdn.net/users/sugi/pf/sugitest/commits/6829ef8417b4d6c7cb20f4a34b6ccf4cb97dabe2"
- },
- "pusher": "sugi",
- "ref": "refs/heads/master",
- "repository": {
- "created_at": 1291198691,
- "description": "<i> test",
- "id": "6",
- "name": "sugitest",
- "pushed_at": 1370594094,
- "type": "git",
- "url": "http://osdn.net/users/sugi/pf/sugitest/"
- }
- }
フィールド | git | hg | svn |
---|---|---|---|
after | push後のコミットID | push後(最終)のコミットID | コミットしたリビジョン |
before | push前のコミットID | そのpushに含まれる最初のコミットID | null |
head_commit | after のIDのコミット情報 | after のIDのコミット情報 | コミット情報 |
pusher | OSDNのユーザID | ||
ref | push 先の ref | push 先のブランチ名 | 変更されたディレクトリパス |
repository | リポジトリ情報 |
「テスト」のボタンを押すと、最後に push された情報を使って、実際にフックリクエストを実行します。 requestbin などを利用すると実際に送られるデータを確認できます。
[PageInfo]
LastUpdate: 2016-10-03 17:50:05, ModifiedBy: ishikawa
[License]
GNU Free Documentation License
[Permissions]
view:all, edit:members, delete/config:members