github

package
v1.19.0-rc0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 4, 2021 License: MIT Imports: 12 Imported by: 14

README

github webhooks

You should configure your Organization's Webhooks to point at the 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>:1619/github, 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.

You can also add a secret that will be used by telegraf to verify the authenticity of the requests.

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

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

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
  • 'refType' = event.ref_type string
delete event

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
  • 'refType' = event.ref_type string
deployment event

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.environment string
  • 'description' = event.deployment.description string
deployment_status event

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.environment string
  • 'description' = event.deployment.description string
  • 'depState' = event.deployment_status.state string
  • 'depDescription' = event.deployment_status.description string
fork event

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CommitCommentEventJSON

func CommitCommentEventJSON() string

func CreateEventJSON

func CreateEventJSON() string

func DeleteEventJSON

func DeleteEventJSON() string

func DeploymentEventJSON

func DeploymentEventJSON() string

func DeploymentStatusEventJSON

func DeploymentStatusEventJSON() string

func ForkEventJSON

func ForkEventJSON() string

func GollumEventJSON

func GollumEventJSON() string

func IssueCommentEventJSON

func IssueCommentEventJSON() string

func IssuesEventJSON

func IssuesEventJSON() string

func MemberEventJSON

func MemberEventJSON() string

func MembershipEventJSON

func MembershipEventJSON() string

func PageBuildEventJSON

func PageBuildEventJSON() string

func PublicEventJSON

func PublicEventJSON() string

func PullRequestEventJSON

func PullRequestEventJSON() string

func PullRequestReviewCommentEventJSON

func PullRequestReviewCommentEventJSON() string

func PushEventJSON

func PushEventJSON() string

func ReleaseEventJSON

func ReleaseEventJSON() string

func RepositoryEventJSON

func RepositoryEventJSON() string

func StatusEventJSON

func StatusEventJSON() string

func TeamAddEventJSON

func TeamAddEventJSON() string

func WatchEventJSON

func WatchEventJSON() string

Types

type CommitComment

type CommitComment struct {
	Commit string `json:"commit_id"`
	Body   string `json:"body"`
}

type CommitCommentEvent

type CommitCommentEvent struct {
	Comment    CommitComment `json:"comment"`
	Repository Repository    `json:"repository"`
	Sender     Sender        `json:"sender"`
}

func (CommitCommentEvent) NewMetric

func (s CommitCommentEvent) NewMetric() telegraf.Metric

type CreateEvent

type CreateEvent struct {
	Ref        string     `json:"ref"`
	RefType    string     `json:"ref_type"`
	Repository Repository `json:"repository"`
	Sender     Sender     `json:"sender"`
}

func (CreateEvent) NewMetric

func (s CreateEvent) NewMetric() telegraf.Metric

type DeleteEvent

type DeleteEvent struct {
	Ref        string     `json:"ref"`
	RefType    string     `json:"ref_type"`
	Repository Repository `json:"repository"`
	Sender     Sender     `json:"sender"`
}

func (DeleteEvent) NewMetric

func (s DeleteEvent) NewMetric() telegraf.Metric

type Deployment

type Deployment struct {
	Commit      string `json:"sha"`
	Task        string `json:"task"`
	Environment string `json:"environment"`
	Description string `json:"description"`
}

type DeploymentEvent

type DeploymentEvent struct {
	Deployment Deployment `json:"deployment"`
	Repository Repository `json:"repository"`
	Sender     Sender     `json:"sender"`
}

func (DeploymentEvent) NewMetric

func (s DeploymentEvent) NewMetric() telegraf.Metric

type DeploymentStatus

type DeploymentStatus struct {
	State       string `json:"state"`
	Description string `json:"description"`
}

type DeploymentStatusEvent

type DeploymentStatusEvent struct {
	Deployment       Deployment       `json:"deployment"`
	DeploymentStatus DeploymentStatus `json:"deployment_status"`
	Repository       Repository       `json:"repository"`
	Sender           Sender           `json:"sender"`
}

func (DeploymentStatusEvent) NewMetric

func (s DeploymentStatusEvent) NewMetric() telegraf.Metric

type Event

type Event interface {
	NewMetric() telegraf.Metric
}

func NewEvent

func NewEvent(data []byte, name string) (Event, error)

type ForkEvent

type ForkEvent struct {
	Forkee     Repository `json:"forkee"`
	Repository Repository `json:"repository"`
	Sender     Sender     `json:"sender"`
}

func (ForkEvent) NewMetric

func (s ForkEvent) NewMetric() telegraf.Metric

type GithubWebhook

type GithubWebhook struct {
	Path   string
	Secret string
	// contains filtered or unexported fields
}

func (*GithubWebhook) Register

func (gh *GithubWebhook) Register(router *mux.Router, acc telegraf.Accumulator)

type GollumEvent

type GollumEvent struct {
	Pages      []Page     `json:"pages"`
	Repository Repository `json:"repository"`
	Sender     Sender     `json:"sender"`
}

func (GollumEvent) NewMetric

func (s GollumEvent) NewMetric() telegraf.Metric

REVIEW: Going to be lazy and not deal with the pages.

type Issue

type Issue struct {
	Number   int    `json:"number"`
	Title    string `json:"title"`
	Comments int    `json:"comments"`
}

type IssueComment

type IssueComment struct {
	Body string `json:"body"`
}

type IssueCommentEvent

type IssueCommentEvent struct {
	Issue      Issue        `json:"issue"`
	Comment    IssueComment `json:"comment"`
	Repository Repository   `json:"repository"`
	Sender     Sender       `json:"sender"`
}

func (IssueCommentEvent) NewMetric

func (s IssueCommentEvent) NewMetric() telegraf.Metric

type IssuesEvent

type IssuesEvent struct {
	Action     string     `json:"action"`
	Issue      Issue      `json:"issue"`
	Repository Repository `json:"repository"`
	Sender     Sender     `json:"sender"`
}

func (IssuesEvent) NewMetric

func (s IssuesEvent) NewMetric() telegraf.Metric

type MemberEvent

type MemberEvent struct {
	Member     Sender     `json:"member"`
	Repository Repository `json:"repository"`
	Sender     Sender     `json:"sender"`
}

func (MemberEvent) NewMetric

func (s MemberEvent) NewMetric() telegraf.Metric

type MembershipEvent

type MembershipEvent struct {
	Action string `json:"action"`
	Member Sender `json:"member"`
	Sender Sender `json:"sender"`
	Team   Team   `json:"team"`
}

func (MembershipEvent) NewMetric

func (s MembershipEvent) NewMetric() telegraf.Metric

type Page

type Page struct {
	Name   string `json:"page_name"`
	Title  string `json:"title"`
	Action string `json:"action"`
}

type PageBuildEvent

type PageBuildEvent struct {
	Repository Repository `json:"repository"`
	Sender     Sender     `json:"sender"`
}

func (PageBuildEvent) NewMetric

func (s PageBuildEvent) NewMetric() telegraf.Metric

type PublicEvent

type PublicEvent struct {
	Repository Repository `json:"repository"`
	Sender     Sender     `json:"sender"`
}

func (PublicEvent) NewMetric

func (s PublicEvent) NewMetric() telegraf.Metric

type PullRequest

type PullRequest struct {
	Number       int    `json:"number"`
	State        string `json:"state"`
	Title        string `json:"title"`
	Comments     int    `json:"comments"`
	Commits      int    `json:"commits"`
	Additions    int    `json:"additions"`
	Deletions    int    `json:"deletions"`
	ChangedFiles int    `json:"changed_files"`
}

type PullRequestEvent

type PullRequestEvent struct {
	Action      string      `json:"action"`
	PullRequest PullRequest `json:"pull_request"`
	Repository  Repository  `json:"repository"`
	Sender      Sender      `json:"sender"`
}

func (PullRequestEvent) NewMetric

func (s PullRequestEvent) NewMetric() telegraf.Metric

type PullRequestReviewComment

type PullRequestReviewComment struct {
	File    string `json:"path"`
	Comment string `json:"body"`
}

type PullRequestReviewCommentEvent

type PullRequestReviewCommentEvent struct {
	Comment     PullRequestReviewComment `json:"comment"`
	PullRequest PullRequest              `json:"pull_request"`
	Repository  Repository               `json:"repository"`
	Sender      Sender                   `json:"sender"`
}

func (PullRequestReviewCommentEvent) NewMetric

type PushEvent

type PushEvent struct {
	Ref        string     `json:"ref"`
	Before     string     `json:"before"`
	After      string     `json:"after"`
	Repository Repository `json:"repository"`
	Sender     Sender     `json:"sender"`
}

func (PushEvent) NewMetric

func (s PushEvent) NewMetric() telegraf.Metric

type Release

type Release struct {
	TagName string `json:"tag_name"`
}

type ReleaseEvent

type ReleaseEvent struct {
	Release    Release    `json:"release"`
	Repository Repository `json:"repository"`
	Sender     Sender     `json:"sender"`
}

func (ReleaseEvent) NewMetric

func (s ReleaseEvent) NewMetric() telegraf.Metric

type Repository

type Repository struct {
	Repository string `json:"full_name"`
	Private    bool   `json:"private"`
	Stars      int    `json:"stargazers_count"`
	Forks      int    `json:"forks_count"`
	Issues     int    `json:"open_issues_count"`
}

type RepositoryEvent

type RepositoryEvent struct {
	Repository Repository `json:"repository"`
	Sender     Sender     `json:"sender"`
}

func (RepositoryEvent) NewMetric

func (s RepositoryEvent) NewMetric() telegraf.Metric

type Sender

type Sender struct {
	User  string `json:"login"`
	Admin bool   `json:"site_admin"`
}

type StatusEvent

type StatusEvent struct {
	Commit     string     `json:"sha"`
	State      string     `json:"state"`
	Repository Repository `json:"repository"`
	Sender     Sender     `json:"sender"`
}

func (StatusEvent) NewMetric

func (s StatusEvent) NewMetric() telegraf.Metric

type Team

type Team struct {
	Name string `json:"name"`
}

type TeamAddEvent

type TeamAddEvent struct {
	Team       Team       `json:"team"`
	Repository Repository `json:"repository"`
	Sender     Sender     `json:"sender"`
}

func (TeamAddEvent) NewMetric

func (s TeamAddEvent) NewMetric() telegraf.Metric

type WatchEvent

type WatchEvent struct {
	Repository Repository `json:"repository"`
	Sender     Sender     `json:"sender"`
}

func (WatchEvent) NewMetric

func (s WatchEvent) NewMetric() telegraf.Metric

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL