From 7878b22b09833659a67197e1adb7ef77f390d06f Mon Sep 17 00:00:00 2001 From: Jack Zampolin Date: Mon, 25 Jan 2016 11:42:03 -0800 Subject: [PATCH] Add README.md --- plugins/inputs/github_webhooks/README.md | 369 ++++++++++++++++++ .../inputs/github_webhooks/models/models.go | 6 +- 2 files changed, 372 insertions(+), 3 deletions(-) diff --git a/plugins/inputs/github_webhooks/README.md b/plugins/inputs/github_webhooks/README.md index e69de29bb..230e5366b 100644 --- a/plugins/inputs/github_webhooks/README.md +++ b/plugins/inputs/github_webhooks/README.md @@ -0,0 +1,369 @@ +# 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://:1618`, `Content type` to `application/json` and under the section `Which events would you like to trigger this webhook?` select 'Send me everything'. 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 diff --git a/plugins/inputs/github_webhooks/models/models.go b/plugins/inputs/github_webhooks/models/models.go index a499218f5..1f45f7ed9 100644 --- a/plugins/inputs/github_webhooks/models/models.go +++ b/plugins/inputs/github_webhooks/models/models.go @@ -561,9 +561,9 @@ func (s PushEvent) NewPoint() *client.Point { "stars": s.Repository.Stars, "forks": s.Repository.Forks, "issues": s.Repository.Issues, - "Ref": s.Ref, - "Before": s.Before, - "After": s.After, + "ref": s.Ref, + "before": s.Before, + "after": s.After, } p, err := client.NewPoint(meas, t, f, time.Now()) if err != nil {