370 lines
14 KiB
Markdown
370 lines
14 KiB
Markdown
# github_webhooks
|
|
|
|
This is a Telegraf service plugin that listens for events kicked off by Github's Webhooks service and persists data from them into configured outputs. To set up the listener first generate the proper configuration:
|
|
```sh
|
|
$ telegraf -sample-config -input-filter github_webhooks -output-filter influxdb > config.conf.new
|
|
```
|
|
Change the config file to point to the InfluxDB server you are using and adjust the settings to match your environment. Once that is complete:
|
|
```sh
|
|
$ cp config.conf.new /etc/telegraf/telegraf.conf
|
|
$ sudo service telegraf start
|
|
```
|
|
Once the server is running you should configure your Organization's Webhooks to point at the `github_webhooks` service. To do this go to `github.com/{my_organization}` and click `Settings > Webhooks > Add webhook`. In the resulting menu set `Payload URL` to `http://<my_ip>:1618`, `Content type` to `application/json` and under the section `Which events would you like to trigger this webhook?` select 'Send me <b>everything</b>'. By default all of the events will write to the `github_webhooks` measurement, this is configurable by setting the `measurement_name` in the config file.
|
|
|
|
## Events
|
|
|
|
The titles of the following sections are links to the full payloads and details for each event. The body contains what information from the event is persisted. The format is as follows:
|
|
```
|
|
# TAGS
|
|
* 'tagKey' = `tagValue` type
|
|
# FIELDS
|
|
* 'fieldKey' = `fieldValue` type
|
|
```
|
|
The tag values and field values show the place on the incoming JSON object where the data is sourced from.
|
|
|
|
#### [`commit_comment` event](https://developer.github.com/v3/activity/events/types/#commitcommentevent)
|
|
|
|
**Tags:**
|
|
* 'event' = `headers[X-Github-Event]` string
|
|
* 'repository' = `event.repository.full_name` string
|
|
* 'private' = `event.repository.private` bool
|
|
* 'user' = `event.sender.login` string
|
|
* 'admin' = `event.sender.site_admin` bool
|
|
|
|
**Fields:**
|
|
* 'stars' = `event.repository.stargazers_count` int
|
|
* 'forks' = `event.repository.forks_count` int
|
|
* 'issues' = `event.repository.open_issues_count` int
|
|
* 'commit' = `event.comment.commit_id` string
|
|
* 'comment' = `event.comment.body` string
|
|
|
|
#### [`create` event](https://developer.github.com/v3/activity/events/types/#createevent)
|
|
|
|
**Tags:**
|
|
* 'event' = `headers[X-Github-Event]` string
|
|
* 'repository' = `event.repository.full_name` string
|
|
* 'private' = `event.repository.private` bool
|
|
* 'user' = `event.sender.login` string
|
|
* 'admin' = `event.sender.site_admin` bool
|
|
|
|
**Fields:**
|
|
* 'stars' = `event.repository.stargazers_count` int
|
|
* 'forks' = `event.repository.forks_count` int
|
|
* 'issues' = `event.repository.open_issues_count` int
|
|
* 'ref' = `event.ref` string
|
|
* 'issues' = `event.ref_type` string
|
|
|
|
#### [`delete` event](https://developer.github.com/v3/activity/events/types/#deleteevent)
|
|
|
|
**Tags:**
|
|
* 'event' = `headers[X-Github-Event]` string
|
|
* 'repository' = `event.repository.full_name` string
|
|
* 'private' = `event.repository.private` bool
|
|
* 'user' = `event.sender.login` string
|
|
* 'admin' = `event.sender.site_admin` bool
|
|
|
|
**Fields:**
|
|
* 'stars' = `event.repository.stargazers_count` int
|
|
* 'forks' = `event.repository.forks_count` int
|
|
* 'issues' = `event.repository.open_issues_count` int
|
|
* 'ref' = `event.ref` string
|
|
* 'issues' = `event.ref_type` string
|
|
|
|
#### [`deployment` event](https://developer.github.com/v3/activity/events/types/#deploymentevent)
|
|
|
|
**Tags:**
|
|
* 'event' = `headers[X-Github-Event]` string
|
|
* 'repository' = `event.repository.full_name` string
|
|
* 'private' = `event.repository.private` bool
|
|
* 'user' = `event.sender.login` string
|
|
* 'admin' = `event.sender.site_admin` bool
|
|
|
|
**Fields:**
|
|
* 'stars' = `event.repository.stargazers_count` int
|
|
* 'forks' = `event.repository.forks_count` int
|
|
* 'issues' = `event.repository.open_issues_count` int
|
|
* 'commit' = `event.deployment.sha` string
|
|
* 'task' = `event.deployment.task` string
|
|
* 'environment' = `event.deployment.evnironment` string
|
|
* 'description' = `event.deployment.description` string
|
|
|
|
#### [`deployment_status` event](https://developer.github.com/v3/activity/events/types/#deploymentstatusevent)
|
|
|
|
**Tags:**
|
|
* 'event' = `headers[X-Github-Event]` string
|
|
* 'repository' = `event.repository.full_name` string
|
|
* 'private' = `event.repository.private` bool
|
|
* 'user' = `event.sender.login` string
|
|
* 'admin' = `event.sender.site_admin` bool
|
|
|
|
**Fields:**
|
|
* 'stars' = `event.repository.stargazers_count` int
|
|
* 'forks' = `event.repository.forks_count` int
|
|
* 'issues' = `event.repository.open_issues_count` int
|
|
* 'commit' = `event.deployment.sha` string
|
|
* 'task' = `event.deployment.task` string
|
|
* 'environment' = `event.deployment.evnironment` string
|
|
* 'description' = `event.deployment.description` string
|
|
* 'depState' = `event.deployment_status.state` string
|
|
* 'depDescription' = `event.deployment_status.description` string
|
|
|
|
#### [`fork` event](https://developer.github.com/v3/activity/events/types/#forkevent)
|
|
|
|
**Tags:**
|
|
* 'event' = `headers[X-Github-Event]` string
|
|
* 'repository' = `event.repository.full_name` string
|
|
* 'private' = `event.repository.private` bool
|
|
* 'user' = `event.sender.login` string
|
|
* 'admin' = `event.sender.site_admin` bool
|
|
|
|
**Fields:**
|
|
* 'stars' = `event.repository.stargazers_count` int
|
|
* 'forks' = `event.repository.forks_count` int
|
|
* 'issues' = `event.repository.open_issues_count` int
|
|
* 'forkee' = `event.forkee.repository` string
|
|
|
|
#### [`gollum` event](https://developer.github.com/v3/activity/events/types/#gollumevent)
|
|
|
|
**Tags:**
|
|
* 'event' = `headers[X-Github-Event]` string
|
|
* 'repository' = `event.repository.full_name` string
|
|
* 'private' = `event.repository.private` bool
|
|
* 'user' = `event.sender.login` string
|
|
* 'admin' = `event.sender.site_admin` bool
|
|
|
|
**Fields:**
|
|
* 'stars' = `event.repository.stargazers_count` int
|
|
* 'forks' = `event.repository.forks_count` int
|
|
* 'issues' = `event.repository.open_issues_count` int
|
|
|
|
#### [`issue_comment` event](https://developer.github.com/v3/activity/events/types/#issuecommentevent)
|
|
|
|
**Tags:**
|
|
* 'event' = `headers[X-Github-Event]` string
|
|
* 'repository' = `event.repository.full_name` string
|
|
* 'private' = `event.repository.private` bool
|
|
* 'user' = `event.sender.login` string
|
|
* 'admin' = `event.sender.site_admin` bool
|
|
* 'issue' = `event.issue.number` int
|
|
|
|
**Fields:**
|
|
* 'stars' = `event.repository.stargazers_count` int
|
|
* 'forks' = `event.repository.forks_count` int
|
|
* 'issues' = `event.repository.open_issues_count` int
|
|
* 'title' = `event.issue.title` string
|
|
* 'comments' = `event.issue.comments` int
|
|
* 'body' = `event.comment.body` string
|
|
|
|
#### [`issues` event](https://developer.github.com/v3/activity/events/types/#issuesevent)
|
|
|
|
**Tags:**
|
|
* 'event' = `headers[X-Github-Event]` string
|
|
* 'repository' = `event.repository.full_name` string
|
|
* 'private' = `event.repository.private` bool
|
|
* 'user' = `event.sender.login` string
|
|
* 'admin' = `event.sender.site_admin` bool
|
|
* 'issue' = `event.issue.number` int
|
|
* 'action' = `event.action` string
|
|
|
|
**Fields:**
|
|
* 'stars' = `event.repository.stargazers_count` int
|
|
* 'forks' = `event.repository.forks_count` int
|
|
* 'issues' = `event.repository.open_issues_count` int
|
|
* 'title' = `event.issue.title` string
|
|
* 'comments' = `event.issue.comments` int
|
|
|
|
#### [`member` event](https://developer.github.com/v3/activity/events/types/#memberevent)
|
|
|
|
**Tags:**
|
|
* 'event' = `headers[X-Github-Event]` string
|
|
* 'repository' = `event.repository.full_name` string
|
|
* 'private' = `event.repository.private` bool
|
|
* 'user' = `event.sender.login` string
|
|
* 'admin' = `event.sender.site_admin` bool
|
|
|
|
**Fields:**
|
|
* 'stars' = `event.repository.stargazers_count` int
|
|
* 'forks' = `event.repository.forks_count` int
|
|
* 'issues' = `event.repository.open_issues_count` int
|
|
* 'newMember' = `event.sender.login` string
|
|
* 'newMemberStatus' = `event.sender.site_admin` bool
|
|
|
|
#### [`membership` event](https://developer.github.com/v3/activity/events/types/#membershipevent)
|
|
|
|
**Tags:**
|
|
* 'event' = `headers[X-Github-Event]` string
|
|
* 'user' = `event.sender.login` string
|
|
* 'admin' = `event.sender.site_admin` bool
|
|
* 'action' = `event.action` string
|
|
|
|
**Fields:**
|
|
* 'newMember' = `event.sender.login` string
|
|
* 'newMemberStatus' = `event.sender.site_admin` bool
|
|
|
|
#### [`page_build` event](https://developer.github.com/v3/activity/events/types/#pagebuildevent)
|
|
|
|
**Tags:**
|
|
* 'event' = `headers[X-Github-Event]` string
|
|
* 'repository' = `event.repository.full_name` string
|
|
* 'private' = `event.repository.private` bool
|
|
* 'user' = `event.sender.login` string
|
|
* 'admin' = `event.sender.site_admin` bool
|
|
|
|
**Fields:**
|
|
* 'stars' = `event.repository.stargazers_count` int
|
|
* 'forks' = `event.repository.forks_count` int
|
|
* 'issues' = `event.repository.open_issues_count` int
|
|
|
|
#### [`public` event](https://developer.github.com/v3/activity/events/types/#publicevent)
|
|
|
|
**Tags:**
|
|
* 'event' = `headers[X-Github-Event]` string
|
|
* 'repository' = `event.repository.full_name` string
|
|
* 'private' = `event.repository.private` bool
|
|
* 'user' = `event.sender.login` string
|
|
* 'admin' = `event.sender.site_admin` bool
|
|
|
|
**Fields:**
|
|
* 'stars' = `event.repository.stargazers_count` int
|
|
* 'forks' = `event.repository.forks_count` int
|
|
* 'issues' = `event.repository.open_issues_count` int
|
|
|
|
#### [`pull_request_review_comment` event](https://developer.github.com/v3/activity/events/types/#pullrequestreviewcommentevent)
|
|
|
|
**Tags:**
|
|
* 'event' = `headers[X-Github-Event]` string
|
|
* 'action' = `event.action` string
|
|
* 'repository' = `event.repository.full_name` string
|
|
* 'private' = `event.repository.private` bool
|
|
* 'user' = `event.sender.login` string
|
|
* 'admin' = `event.sender.site_admin` bool
|
|
* 'prNumber' = `event.pull_request.number` int
|
|
|
|
**Fields:**
|
|
* 'stars' = `event.repository.stargazers_count` int
|
|
* 'forks' = `event.repository.forks_count` int
|
|
* 'issues' = `event.repository.open_issues_count` int
|
|
* 'state' = `event.pull_request.state` string
|
|
* 'title' = `event.pull_request.title` string
|
|
* 'comments' = `event.pull_request.comments` int
|
|
* 'commits' = `event.pull_request.commits` int
|
|
* 'additions' = `event.pull_request.additions` int
|
|
* 'deletions' = `event.pull_request.deletions` int
|
|
* 'changedFiles' = `event.pull_request.changed_files` int
|
|
* 'commentFile' = `event.comment.file` string
|
|
* 'comment' = `event.comment.body` string
|
|
|
|
#### [`pull_request` event](https://developer.github.com/v3/activity/events/types/#pullrequestevent)
|
|
|
|
**Tags:**
|
|
* 'event' = `headers[X-Github-Event]` string
|
|
* 'action' = `event.action` string
|
|
* 'repository' = `event.repository.full_name` string
|
|
* 'private' = `event.repository.private` bool
|
|
* 'user' = `event.sender.login` string
|
|
* 'admin' = `event.sender.site_admin` bool
|
|
* 'prNumber' = `event.pull_request.number` int
|
|
|
|
**Fields:**
|
|
* 'stars' = `event.repository.stargazers_count` int
|
|
* 'forks' = `event.repository.forks_count` int
|
|
* 'issues' = `event.repository.open_issues_count` int
|
|
* 'state' = `event.pull_request.state` string
|
|
* 'title' = `event.pull_request.title` string
|
|
* 'comments' = `event.pull_request.comments` int
|
|
* 'commits' = `event.pull_request.commits` int
|
|
* 'additions' = `event.pull_request.additions` int
|
|
* 'deletions' = `event.pull_request.deletions` int
|
|
* 'changedFiles' = `event.pull_request.changed_files` int
|
|
|
|
#### [`push` event](https://developer.github.com/v3/activity/events/types/#pushevent)
|
|
|
|
**Tags:**
|
|
* 'event' = `headers[X-Github-Event]` string
|
|
* 'repository' = `event.repository.full_name` string
|
|
* 'private' = `event.repository.private` bool
|
|
* 'user' = `event.sender.login` string
|
|
* 'admin' = `event.sender.site_admin` bool
|
|
|
|
**Fields:**
|
|
* 'stars' = `event.repository.stargazers_count` int
|
|
* 'forks' = `event.repository.forks_count` int
|
|
* 'issues' = `event.repository.open_issues_count` int
|
|
* 'ref' = `event.ref` string
|
|
* 'before' = `event.before` string
|
|
* 'after' = `event.after` string
|
|
|
|
#### [`repository` event](https://developer.github.com/v3/activity/events/types/#repositoryevent)
|
|
|
|
**Tags:**
|
|
* 'event' = `headers[X-Github-Event]` string
|
|
* 'repository' = `event.repository.full_name` string
|
|
* 'private' = `event.repository.private` bool
|
|
* 'user' = `event.sender.login` string
|
|
* 'admin' = `event.sender.site_admin` bool
|
|
|
|
**Fields:**
|
|
* 'stars' = `event.repository.stargazers_count` int
|
|
* 'forks' = `event.repository.forks_count` int
|
|
* 'issues' = `event.repository.open_issues_count` int
|
|
|
|
#### [`release` event](https://developer.github.com/v3/activity/events/types/#releaseevent)
|
|
|
|
**Tags:**
|
|
* 'event' = `headers[X-Github-Event]` string
|
|
* 'repository' = `event.repository.full_name` string
|
|
* 'private' = `event.repository.private` bool
|
|
* 'user' = `event.sender.login` string
|
|
* 'admin' = `event.sender.site_admin` bool
|
|
|
|
**Fields:**
|
|
* 'stars' = `event.repository.stargazers_count` int
|
|
* 'forks' = `event.repository.forks_count` int
|
|
* 'issues' = `event.repository.open_issues_count` int
|
|
* 'tagName' = `event.release.tag_name` string
|
|
|
|
#### [`status` event](https://developer.github.com/v3/activity/events/types/#statusevent)
|
|
|
|
**Tags:**
|
|
* 'event' = `headers[X-Github-Event]` string
|
|
* 'repository' = `event.repository.full_name` string
|
|
* 'private' = `event.repository.private` bool
|
|
* 'user' = `event.sender.login` string
|
|
* 'admin' = `event.sender.site_admin` bool
|
|
|
|
**Fields:**
|
|
* 'stars' = `event.repository.stargazers_count` int
|
|
* 'forks' = `event.repository.forks_count` int
|
|
* 'issues' = `event.repository.open_issues_count` int
|
|
* 'commit' = `event.sha` string
|
|
* 'state' = `event.state` string
|
|
|
|
#### [`team_add` event](https://developer.github.com/v3/activity/events/types/#teamaddevent)
|
|
|
|
**Tags:**
|
|
* 'event' = `headers[X-Github-Event]` string
|
|
* 'repository' = `event.repository.full_name` string
|
|
* 'private' = `event.repository.private` bool
|
|
* 'user' = `event.sender.login` string
|
|
* 'admin' = `event.sender.site_admin` bool
|
|
|
|
**Fields:**
|
|
* 'stars' = `event.repository.stargazers_count` int
|
|
* 'forks' = `event.repository.forks_count` int
|
|
* 'issues' = `event.repository.open_issues_count` int
|
|
* 'teamName' = `event.team.name` string
|
|
|
|
#### [`watch` event](https://developer.github.com/v3/activity/events/types/#watchevent)
|
|
|
|
**Tags:**
|
|
* 'event' = `headers[X-Github-Event]` string
|
|
* 'repository' = `event.repository.full_name` string
|
|
* 'private' = `event.repository.private` bool
|
|
* 'user' = `event.sender.login` string
|
|
* 'admin' = `event.sender.site_admin` bool
|
|
|
|
**Fields:**
|
|
* 'stars' = `event.repository.stargazers_count` int
|
|
* 'forks' = `event.repository.forks_count` int
|
|
* 'issues' = `event.repository.open_issues_count` int
|