show/hide this revision's text 7 added 251 characters in body

Kiln has built-in intgration with many popular services. Check out the full list, or learn more about writing a custm web hook below.


Yup! Kiln administrators can add web hooks as useful integration points between Kiln and any number of other services.

Just choose the URL Kiln should hit and which repositories should fire the hook. Then, every time these repositories receive a push, information about the push and its changesets will be POST'ed to the URL.

The data POST'ed is a JSON payload, and the data is accessible via the "payload" POST variable. So if you're in .NET land, you'd access the JSON payload like so:

string s = Request["payload"];

...and string s will contain a JSON string of the following format:

{
  "commits": [
    {
      "author": "Ben Kamens <ben@fogcreek.com>", 
      "branch": "default", 
      "id": "16265aef917cfe137e250c4f71a4a77ff4ad0974", 
      "message": "This thing is taking forever", 
      "revision": 14, 
      "timestamp": "3\/23\/2010 3:42:42 PM", 
      "url": "http:\/\/kamens.kilnhg.com\/Repo\/Personal\/Playground\/DNForever\/History\/16265aef917cfe137e250c4f71a4a77ff4ad0974",
      "tags": [
        "tip"
      ]
    }, 
    {
      "author": "Ben Kamens <ben@fogcreek.com>", 
      "branch": "default", 
      "id": "a077d19afed224dc7c46dc535d5f7e90546ed5bd", 
      "message": "This version is now shippable", 
      "revision": 15, 
      "timestamp": "3\/23\/2010 3:42:46 PM", 
      "url": "http:\/\/kamens.kilnhg.com\/Repo\/Personal\/Playground\/DNForever\/History\/a077d19afed224dc7c46dc535d5f7e90546ed5bd",
      "tags": []
    }
  ], 
  "pusher": {
    "email": "ben@fogcreek.com",
    "fullName": "Ben Kamens"
  },
  "repository": {
    "central": true,
    "description": "Picking up where the others left off", 
    "id": 1,
    "name": "DNForever", 
    "url": "http:\/\/kamens.kilnhg.com\/Repo\/Personal\/Playground\/DNForever"
  }
}

...which you can then parse and use however necessary in your continuous integration server or any piece of software that needs to know when Kiln receives a push.

The repository.id key is the repository's ixRepo, suitable for sending to the Kiln API.

Note that the timestamp for commits are in UTC.

Please keep in mind that this data will be sent regardless of your Kiln repository's permissions settings.

Here are some instructions for testing your web hook to make sure it's firing.

show/hide this revision's text 6 added 51 characters in body

Yup! Kiln administrators can add web hooks as useful integration points between Kiln and any number of other services.

Just choose the URL Kiln should hit and which repositories should fire the hook. Then, every time these repositories receive a push, information about the push and its changesets will be POST'ed to the URL.

The data POST'ed is a JSON payload, and the data is accessible via the "payload" POST variable. So if you're in .NET land, you'd access the JSON payload like so:

string s = Request["payload"];

...and string s will contain a JSON string of the following format:

{
  "commits": [
    {
      "author": "Ben Kamens <ben@fogcreek.com>", 
      "branch": "default", 
      "id": "16265aef917cfe137e250c4f71a4a77ff4ad0974", 
      "message": "This thing is taking forever", 
      "revision": 14, 
      "timestamp": "3\/23\/2010 3:42:42 PM", 
      "url": "http:\/\/kamens.kilnhg.com\/Repo\/Personal\/Playground\/DNForever\/History\/16265aef917cfe137e250c4f71a4a77ff4ad0974",
      "tags": [
        "tip"
      ]
    }, 
    {
      "author": "Ben Kamens <ben@fogcreek.com>", 
      "branch": "default", 
      "id": "a077d19afed224dc7c46dc535d5f7e90546ed5bd", 
      "message": "This version is now shippable", 
      "revision": 15, 
      "timestamp": "3\/23\/2010 3:42:46 PM", 
      "url": "http:\/\/kamens.kilnhg.com\/Repo\/Personal\/Playground\/DNForever\/History\/a077d19afed224dc7c46dc535d5f7e90546ed5bd",
      "tags": []
    }
  ], 
  "pusher": {
    "email": "ben@fogcreek.com",
    "fullName": "Ben Kamens"
  },
  "repository": {
    "central": true,
    "description": "Picking up where the others left off", 
    "id": 1,
    "name": "DNForever", 
    "url": "http:\/\/kamens.kilnhg.com\/Repo\/Personal\/Playground\/DNForever"
  }
}

...which you can then parse and use however necessary in your continuous integration server or any piece of software that needs to know when Kiln receives a push.

The repository.id key is the repository's ixRepo, suitable for sending to the Kiln API.

Note that the timestamp for commits are in UTC.

Please keep in mind that this data will be sent regardless of your Kiln repository's permissions settings.

Here are some instructions for testing your web hook to make sure it's firing.

show/hide this revision's text 5 Add "tags" field, new in Kiln 2.4.95

Yup! Kiln administrators can add web hooks as useful integration points between Kiln and any number of other services.

Just choose the URL Kiln should hit and which repositories should fire the hook. Then, every time these repositories receive a push, information about the push and its changesets will be POST'ed to the URL.

The data POST'ed is a JSON payload, and the data is accessible via the "payload" POST variable. So if you're in .NET land, you'd access the JSON payload like so:

string s = Request["payload"];

...and string s will contain a JSON string of the following format:

{
  "commits": [
    {
      "author": "Ben Kamens <ben@fogcreek.com>", 
      "branch": "default", 
      "id": "16265aef917cfe137e250c4f71a4a77ff4ad0974", 
      "message": "This thing is taking forever", 
      "revision": 14, 
      "timestamp": "3\/23\/2010 3:42:42 PM", 
      "url": "http:\/\/kamens.kilnhg.com\/Repo\/Personal\/Playground\/DNForever\/History\/16265aef917cfe137e250c4f71a4a77ff4ad0974"
    http:\/\/kamens.kilnhg.com\/Repo\/Personal\/Playground\/DNForever\/History\/16265aef917cfe137e250c4f71a4a77ff4ad0974",
      "tags": [
        "tip"
      ]
    }, 
    {
      "author": "Ben Kamens <ben@fogcreek.com>", 
      "branch": "default", 
      "id": "a077d19afed224dc7c46dc535d5f7e90546ed5bd", 
      "message": "This version is now shippable", 
      "revision": 15, 
      "timestamp": "3\/23\/2010 3:42:46 PM", 
      "url": "http:\/\/kamens.kilnhg.com\/Repo\/Personal\/Playground\/DNForever\/History\/a077d19afed224dc7c46dc535d5f7e90546ed5bd"
    http:\/\/kamens.kilnhg.com\/Repo\/Personal\/Playground\/DNForever\/History\/a077d19afed224dc7c46dc535d5f7e90546ed5bd",
      "tags": []
    }
  ], 
  "pusher": {
    "email": "ben@fogcreek.com",
    "fullName": "Ben Kamens"
  },
  "repository": {
    "central": true,
    "description": "Picking up where the others left off", 
    "id": 1,
    "name": "DNForever", 
    "url": "http:\/\/kamens.kilnhg.com\/Repo\/Personal\/Playground\/DNForever"
  }
}

...which you can then parse and use however necessary in your continuous integration server or any piece of software that needs to know when Kiln receives a push.

The repository.id key is the repository's ixRepo, suitable for sending to the Kiln API.

Please keep in mind that this data will be sent regardless of your Kiln repository's permissions settings.

Here are some instructions for testing your web hook to make sure it's firing.

show/hide this revision's text 4 update payload details
show/hide this revision's text 3 added 181 characters in body
    Post Undeleted by Ben Kamens
show/hide this revision's text 2 deleted 38 characters in body
    Post Deleted by Ben Kamens
show/hide this revision's text 1