Fix naming issue
This commit is contained in:
parent
a70452219b
commit
4c74a2dd3a
|
@ -1,338 +0,0 @@
|
||||||
package github_webhooks
|
|
||||||
|
|
||||||
import (
|
|
||||||
"encoding/json"
|
|
||||||
"fmt"
|
|
||||||
"io/ioutil"
|
|
||||||
"log"
|
|
||||||
"net/http"
|
|
||||||
"sync"
|
|
||||||
|
|
||||||
"github.com/gorilla/mux"
|
|
||||||
"github.com/influxdata/telegraf/plugins/inputs"
|
|
||||||
mod "github.com/influxdata/telegraf/plugins/inputs/ghWebhooks/models"
|
|
||||||
)
|
|
||||||
|
|
||||||
func init() {
|
|
||||||
inputs.Add("github_webhooks", func() inputs.Input { return &GithubWebhooks{} })
|
|
||||||
}
|
|
||||||
|
|
||||||
type GithubWebhooks struct {
|
|
||||||
ServiceAddress string
|
|
||||||
MeasurementName string
|
|
||||||
// Lock for the struct
|
|
||||||
sync.Mutex
|
|
||||||
// Events buffer to store events between Gather calls
|
|
||||||
events []mod.Event
|
|
||||||
}
|
|
||||||
|
|
||||||
func NewGithubWebhooks() *GithubWebhooks {
|
|
||||||
return &GithubWebhooks{}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (gh *GithubWebhooks) SampleConfig() string {
|
|
||||||
return `
|
|
||||||
# Address and port to host Webhook listener on
|
|
||||||
service_address = ":1618"
|
|
||||||
# Measurement name
|
|
||||||
measurement_name = "github_webhooks"
|
|
||||||
`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (gh *GithubWebhooks) Description() string {
|
|
||||||
return "A Github Webhook Event collector"
|
|
||||||
}
|
|
||||||
|
|
||||||
// Writes the points from <-gh.in to the Accumulator
|
|
||||||
func (gh *GithubWebhooks) Gather(acc inputs.Accumulator) error {
|
|
||||||
gh.Lock()
|
|
||||||
defer gh.Unlock()
|
|
||||||
for _, event := range gh.events {
|
|
||||||
p := event.NewPoint()
|
|
||||||
acc.AddFields(gh.MeasurementName, p.Fields(), p.Tags(), p.Time())
|
|
||||||
}
|
|
||||||
gh.events = make([]mod.Event, 0)
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (gh *GithubWebhooks) Listen() {
|
|
||||||
r := mux.NewRouter()
|
|
||||||
r.HandleFunc("/", gh.eventHandler).Methods("POST")
|
|
||||||
err := http.ListenAndServe(fmt.Sprintf("%s", gh.ServiceAddress), r)
|
|
||||||
if err != nil {
|
|
||||||
log.Printf("Error starting server: %v", err)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (gh *GithubWebhooks) Start() error {
|
|
||||||
go gh.Listen()
|
|
||||||
log.Printf("Started the github_webhooks service on %s\n", gh.ServiceAddress)
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (gh *GithubWebhooks) Stop() {
|
|
||||||
log.Println("Stopping the ghWebhooks service")
|
|
||||||
}
|
|
||||||
|
|
||||||
// Handles the / route
|
|
||||||
func (gh *GithubWebhooks) eventHandler(w http.ResponseWriter, r *http.Request) {
|
|
||||||
eventType := r.Header["X-Github-Event"][0]
|
|
||||||
data, err := ioutil.ReadAll(r.Body)
|
|
||||||
if err != nil {
|
|
||||||
w.WriteHeader(http.StatusBadRequest)
|
|
||||||
}
|
|
||||||
e, err := NewEvent(data, eventType)
|
|
||||||
if err != nil {
|
|
||||||
w.WriteHeader(http.StatusBadRequest)
|
|
||||||
}
|
|
||||||
gh.Lock()
|
|
||||||
gh.events = append(gh.events, e)
|
|
||||||
gh.Unlock()
|
|
||||||
w.WriteHeader(http.StatusOK)
|
|
||||||
}
|
|
||||||
|
|
||||||
func newCommitComment(data []byte) (mod.Event, error) {
|
|
||||||
commitCommentStruct := mod.CommitCommentEvent{}
|
|
||||||
err := json.Unmarshal(data, &commitCommentStruct)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return commitCommentStruct, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func newCreate(data []byte) (mod.Event, error) {
|
|
||||||
createStruct := mod.CreateEvent{}
|
|
||||||
err := json.Unmarshal(data, &createStruct)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return createStruct, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func newDelete(data []byte) (mod.Event, error) {
|
|
||||||
deleteStruct := mod.DeleteEvent{}
|
|
||||||
err := json.Unmarshal(data, &deleteStruct)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return deleteStruct, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func newDeployment(data []byte) (mod.Event, error) {
|
|
||||||
deploymentStruct := mod.DeploymentEvent{}
|
|
||||||
err := json.Unmarshal(data, &deploymentStruct)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return deploymentStruct, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func newDeploymentStatus(data []byte) (mod.Event, error) {
|
|
||||||
deploymentStatusStruct := mod.DeploymentStatusEvent{}
|
|
||||||
err := json.Unmarshal(data, &deploymentStatusStruct)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return deploymentStatusStruct, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func newFork(data []byte) (mod.Event, error) {
|
|
||||||
forkStruct := mod.ForkEvent{}
|
|
||||||
err := json.Unmarshal(data, &forkStruct)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return forkStruct, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func newGollum(data []byte) (mod.Event, error) {
|
|
||||||
gollumStruct := mod.GollumEvent{}
|
|
||||||
err := json.Unmarshal(data, &gollumStruct)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return gollumStruct, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func newIssueComment(data []byte) (mod.Event, error) {
|
|
||||||
issueCommentStruct := mod.IssueCommentEvent{}
|
|
||||||
err := json.Unmarshal(data, &issueCommentStruct)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return issueCommentStruct, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func newIssues(data []byte) (mod.Event, error) {
|
|
||||||
issuesStruct := mod.IssuesEvent{}
|
|
||||||
err := json.Unmarshal(data, &issuesStruct)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return issuesStruct, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func newMember(data []byte) (mod.Event, error) {
|
|
||||||
memberStruct := mod.MemberEvent{}
|
|
||||||
err := json.Unmarshal(data, &memberStruct)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return memberStruct, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func newMembership(data []byte) (mod.Event, error) {
|
|
||||||
membershipStruct := mod.MembershipEvent{}
|
|
||||||
err := json.Unmarshal(data, &membershipStruct)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return membershipStruct, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func newPageBuild(data []byte) (mod.Event, error) {
|
|
||||||
pageBuildEvent := mod.PageBuildEvent{}
|
|
||||||
err := json.Unmarshal(data, &pageBuildEvent)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return pageBuildEvent, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func newPublic(data []byte) (mod.Event, error) {
|
|
||||||
publicEvent := mod.PublicEvent{}
|
|
||||||
err := json.Unmarshal(data, &publicEvent)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return publicEvent, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func newPullRequest(data []byte) (mod.Event, error) {
|
|
||||||
pullRequestStruct := mod.PullRequestEvent{}
|
|
||||||
err := json.Unmarshal(data, &pullRequestStruct)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return pullRequestStruct, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func newPullRequestReviewComment(data []byte) (mod.Event, error) {
|
|
||||||
pullRequestReviewCommentStruct := mod.PullRequestReviewCommentEvent{}
|
|
||||||
err := json.Unmarshal(data, &pullRequestReviewCommentStruct)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return pullRequestReviewCommentStruct, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func newPush(data []byte) (mod.Event, error) {
|
|
||||||
pushStruct := mod.PushEvent{}
|
|
||||||
err := json.Unmarshal(data, &pushStruct)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return pushStruct, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func newRelease(data []byte) (mod.Event, error) {
|
|
||||||
releaseStruct := mod.ReleaseEvent{}
|
|
||||||
err := json.Unmarshal(data, &releaseStruct)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return releaseStruct, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func newRepository(data []byte) (mod.Event, error) {
|
|
||||||
repositoryStruct := mod.RepositoryEvent{}
|
|
||||||
err := json.Unmarshal(data, &repositoryStruct)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return repositoryStruct, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func newStatus(data []byte) (mod.Event, error) {
|
|
||||||
statusStruct := mod.StatusEvent{}
|
|
||||||
err := json.Unmarshal(data, &statusStruct)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return statusStruct, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func newTeamAdd(data []byte) (mod.Event, error) {
|
|
||||||
teamAddStruct := mod.TeamAddEvent{}
|
|
||||||
err := json.Unmarshal(data, &teamAddStruct)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return teamAddStruct, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func newWatch(data []byte) (mod.Event, error) {
|
|
||||||
watchStruct := mod.WatchEvent{}
|
|
||||||
err := json.Unmarshal(data, &watchStruct)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return watchStruct, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
type newEventError struct {
|
|
||||||
s string
|
|
||||||
}
|
|
||||||
|
|
||||||
func (e *newEventError) Error() string {
|
|
||||||
return e.s
|
|
||||||
}
|
|
||||||
|
|
||||||
func NewEvent(r []byte, t string) (mod.Event, error) {
|
|
||||||
log.Printf("New %v event recieved", t)
|
|
||||||
switch t {
|
|
||||||
case "commit_comment":
|
|
||||||
return newCommitComment(r)
|
|
||||||
case "create":
|
|
||||||
return newCreate(r)
|
|
||||||
case "delete":
|
|
||||||
return newDelete(r)
|
|
||||||
case "deployment":
|
|
||||||
return newDeployment(r)
|
|
||||||
case "deployment_status":
|
|
||||||
return newDeploymentStatus(r)
|
|
||||||
case "fork":
|
|
||||||
return newFork(r)
|
|
||||||
case "gollum":
|
|
||||||
return newGollum(r)
|
|
||||||
case "issue_comment":
|
|
||||||
return newIssueComment(r)
|
|
||||||
case "issues":
|
|
||||||
return newIssues(r)
|
|
||||||
case "member":
|
|
||||||
return newMember(r)
|
|
||||||
case "membership":
|
|
||||||
return newMembership(r)
|
|
||||||
case "page_build":
|
|
||||||
return newPageBuild(r)
|
|
||||||
case "public":
|
|
||||||
return newPublic(r)
|
|
||||||
case "pull_request":
|
|
||||||
return newPullRequest(r)
|
|
||||||
case "pull_request_review_comment":
|
|
||||||
return newPullRequestReviewComment(r)
|
|
||||||
case "push":
|
|
||||||
return newPush(r)
|
|
||||||
case "release":
|
|
||||||
return newRelease(r)
|
|
||||||
case "repository":
|
|
||||||
return newRepository(r)
|
|
||||||
case "status":
|
|
||||||
return newStatus(r)
|
|
||||||
case "team_add":
|
|
||||||
return newTeamAdd(r)
|
|
||||||
case "watch":
|
|
||||||
return newWatch(r)
|
|
||||||
}
|
|
||||||
return nil, &newEventError{"Not a recgonized event type"}
|
|
||||||
}
|
|
|
@ -1,239 +0,0 @@
|
||||||
package github_webhooks
|
|
||||||
|
|
||||||
import (
|
|
||||||
"net/http"
|
|
||||||
"net/http/httptest"
|
|
||||||
"strings"
|
|
||||||
"testing"
|
|
||||||
|
|
||||||
mod "github.com/influxdata/telegraf/plugins/inputs/ghwebhooks/models"
|
|
||||||
)
|
|
||||||
|
|
||||||
func TestCommitCommentEvent(t *testing.T) {
|
|
||||||
gh := NewGithubWebhooks()
|
|
||||||
jsonString := mod.CommitCommentEventJSON()
|
|
||||||
req, _ := http.NewRequest("POST", "/", strings.NewReader(jsonString))
|
|
||||||
req.Header.Add("X-Github-Event", "commit_comment")
|
|
||||||
w := httptest.NewRecorder()
|
|
||||||
gh.eventHandler(w, req)
|
|
||||||
if w.Code != http.StatusOK {
|
|
||||||
t.Errorf("POST commit_comment returned HTTP status code %v.\nExpected %v", w.Code, http.StatusOK)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestDeleteEvent(t *testing.T) {
|
|
||||||
gh := NewGithubWebhooks()
|
|
||||||
jsonString := mod.DeleteEventJSON()
|
|
||||||
req, _ := http.NewRequest("POST", "/", strings.NewReader(jsonString))
|
|
||||||
req.Header.Add("X-Github-Event", "delete")
|
|
||||||
w := httptest.NewRecorder()
|
|
||||||
gh.eventHandler(w, req)
|
|
||||||
if w.Code != http.StatusOK {
|
|
||||||
t.Errorf("POST commit_comment returned HTTP status code %v.\nExpected %v", w.Code, http.StatusOK)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestDeploymentEvent(t *testing.T) {
|
|
||||||
gh := NewGithubWebhooks()
|
|
||||||
jsonString := mod.DeploymentEventJSON()
|
|
||||||
req, _ := http.NewRequest("POST", "/", strings.NewReader(jsonString))
|
|
||||||
req.Header.Add("X-Github-Event", "deployment")
|
|
||||||
w := httptest.NewRecorder()
|
|
||||||
gh.eventHandler(w, req)
|
|
||||||
if w.Code != http.StatusOK {
|
|
||||||
t.Errorf("POST commit_comment returned HTTP status code %v.\nExpected %v", w.Code, http.StatusOK)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestDeploymentStatusEvent(t *testing.T) {
|
|
||||||
gh := NewGithubWebhooks()
|
|
||||||
jsonString := mod.DeploymentStatusEventJSON()
|
|
||||||
req, _ := http.NewRequest("POST", "/", strings.NewReader(jsonString))
|
|
||||||
req.Header.Add("X-Github-Event", "deployment_status")
|
|
||||||
w := httptest.NewRecorder()
|
|
||||||
gh.eventHandler(w, req)
|
|
||||||
if w.Code != http.StatusOK {
|
|
||||||
t.Errorf("POST commit_comment returned HTTP status code %v.\nExpected %v", w.Code, http.StatusOK)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestForkEvent(t *testing.T) {
|
|
||||||
gh := NewGithubWebhooks()
|
|
||||||
jsonString := mod.ForkEventJSON()
|
|
||||||
req, _ := http.NewRequest("POST", "/", strings.NewReader(jsonString))
|
|
||||||
req.Header.Add("X-Github-Event", "fork")
|
|
||||||
w := httptest.NewRecorder()
|
|
||||||
gh.eventHandler(w, req)
|
|
||||||
if w.Code != http.StatusOK {
|
|
||||||
t.Errorf("POST commit_comment returned HTTP status code %v.\nExpected %v", w.Code, http.StatusOK)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestGollumEvent(t *testing.T) {
|
|
||||||
gh := NewGithubWebhooks()
|
|
||||||
jsonString := mod.GollumEventJSON()
|
|
||||||
req, _ := http.NewRequest("POST", "/", strings.NewReader(jsonString))
|
|
||||||
req.Header.Add("X-Github-Event", "gollum")
|
|
||||||
w := httptest.NewRecorder()
|
|
||||||
gh.eventHandler(w, req)
|
|
||||||
if w.Code != http.StatusOK {
|
|
||||||
t.Errorf("POST commit_comment returned HTTP status code %v.\nExpected %v", w.Code, http.StatusOK)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestIssueCommentEvent(t *testing.T) {
|
|
||||||
gh := NewGithubWebhooks()
|
|
||||||
jsonString := mod.IssueCommentEventJSON()
|
|
||||||
req, _ := http.NewRequest("POST", "/", strings.NewReader(jsonString))
|
|
||||||
req.Header.Add("X-Github-Event", "issue_comment")
|
|
||||||
w := httptest.NewRecorder()
|
|
||||||
gh.eventHandler(w, req)
|
|
||||||
if w.Code != http.StatusOK {
|
|
||||||
t.Errorf("POST commit_comment returned HTTP status code %v.\nExpected %v", w.Code, http.StatusOK)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestIssuesEvent(t *testing.T) {
|
|
||||||
gh := NewGithubWebhooks()
|
|
||||||
jsonString := mod.IssuesEventJSON()
|
|
||||||
req, _ := http.NewRequest("POST", "/", strings.NewReader(jsonString))
|
|
||||||
req.Header.Add("X-Github-Event", "issues")
|
|
||||||
w := httptest.NewRecorder()
|
|
||||||
gh.eventHandler(w, req)
|
|
||||||
if w.Code != http.StatusOK {
|
|
||||||
t.Errorf("POST commit_comment returned HTTP status code %v.\nExpected %v", w.Code, http.StatusOK)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestMemberEvent(t *testing.T) {
|
|
||||||
gh := NewGithubWebhooks()
|
|
||||||
jsonString := mod.MemberEventJSON()
|
|
||||||
req, _ := http.NewRequest("POST", "/", strings.NewReader(jsonString))
|
|
||||||
req.Header.Add("X-Github-Event", "member")
|
|
||||||
w := httptest.NewRecorder()
|
|
||||||
gh.eventHandler(w, req)
|
|
||||||
if w.Code != http.StatusOK {
|
|
||||||
t.Errorf("POST commit_comment returned HTTP status code %v.\nExpected %v", w.Code, http.StatusOK)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestMembershipEvent(t *testing.T) {
|
|
||||||
gh := NewGithubWebhooks()
|
|
||||||
jsonString := mod.MembershipEventJSON()
|
|
||||||
req, _ := http.NewRequest("POST", "/", strings.NewReader(jsonString))
|
|
||||||
req.Header.Add("X-Github-Event", "membership")
|
|
||||||
w := httptest.NewRecorder()
|
|
||||||
gh.eventHandler(w, req)
|
|
||||||
if w.Code != http.StatusOK {
|
|
||||||
t.Errorf("POST commit_comment returned HTTP status code %v.\nExpected %v", w.Code, http.StatusOK)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestPageBuildEvent(t *testing.T) {
|
|
||||||
gh := NewGithubWebhooks()
|
|
||||||
jsonString := mod.PageBuildEventJSON()
|
|
||||||
req, _ := http.NewRequest("POST", "/", strings.NewReader(jsonString))
|
|
||||||
req.Header.Add("X-Github-Event", "page_build")
|
|
||||||
w := httptest.NewRecorder()
|
|
||||||
gh.eventHandler(w, req)
|
|
||||||
if w.Code != http.StatusOK {
|
|
||||||
t.Errorf("POST commit_comment returned HTTP status code %v.\nExpected %v", w.Code, http.StatusOK)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestPublicEvent(t *testing.T) {
|
|
||||||
gh := NewGithubWebhooks()
|
|
||||||
jsonString := mod.PublicEventJSON()
|
|
||||||
req, _ := http.NewRequest("POST", "/", strings.NewReader(jsonString))
|
|
||||||
req.Header.Add("X-Github-Event", "public")
|
|
||||||
w := httptest.NewRecorder()
|
|
||||||
gh.eventHandler(w, req)
|
|
||||||
if w.Code != http.StatusOK {
|
|
||||||
t.Errorf("POST commit_comment returned HTTP status code %v.\nExpected %v", w.Code, http.StatusOK)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestPullRequestReviewCommentEvent(t *testing.T) {
|
|
||||||
gh := NewGithubWebhooks()
|
|
||||||
jsonString := mod.PullRequestReviewCommentEventJSON()
|
|
||||||
req, _ := http.NewRequest("POST", "/", strings.NewReader(jsonString))
|
|
||||||
req.Header.Add("X-Github-Event", "pull_request_review_comment")
|
|
||||||
w := httptest.NewRecorder()
|
|
||||||
gh.eventHandler(w, req)
|
|
||||||
if w.Code != http.StatusOK {
|
|
||||||
t.Errorf("POST commit_comment returned HTTP status code %v.\nExpected %v", w.Code, http.StatusOK)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestPushEvent(t *testing.T) {
|
|
||||||
gh := NewGithubWebhooks()
|
|
||||||
jsonString := mod.PushEventJSON()
|
|
||||||
req, _ := http.NewRequest("POST", "/", strings.NewReader(jsonString))
|
|
||||||
req.Header.Add("X-Github-Event", "push")
|
|
||||||
w := httptest.NewRecorder()
|
|
||||||
gh.eventHandler(w, req)
|
|
||||||
if w.Code != http.StatusOK {
|
|
||||||
t.Errorf("POST commit_comment returned HTTP status code %v.\nExpected %v", w.Code, http.StatusOK)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestReleaseEvent(t *testing.T) {
|
|
||||||
gh := NewGithubWebhooks()
|
|
||||||
jsonString := mod.ReleaseEventJSON()
|
|
||||||
req, _ := http.NewRequest("POST", "/", strings.NewReader(jsonString))
|
|
||||||
req.Header.Add("X-Github-Event", "release")
|
|
||||||
w := httptest.NewRecorder()
|
|
||||||
gh.eventHandler(w, req)
|
|
||||||
if w.Code != http.StatusOK {
|
|
||||||
t.Errorf("POST commit_comment returned HTTP status code %v.\nExpected %v", w.Code, http.StatusOK)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestRepositoryEvent(t *testing.T) {
|
|
||||||
gh := NewGithubWebhooks()
|
|
||||||
jsonString := mod.RepositoryEventJSON()
|
|
||||||
req, _ := http.NewRequest("POST", "/", strings.NewReader(jsonString))
|
|
||||||
req.Header.Add("X-Github-Event", "repository")
|
|
||||||
w := httptest.NewRecorder()
|
|
||||||
gh.eventHandler(w, req)
|
|
||||||
if w.Code != http.StatusOK {
|
|
||||||
t.Errorf("POST commit_comment returned HTTP status code %v.\nExpected %v", w.Code, http.StatusOK)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestStatusEvent(t *testing.T) {
|
|
||||||
gh := NewGithubWebhooks()
|
|
||||||
|
|
||||||
jsonString := mod.StatusEventJSON()
|
|
||||||
req, _ := http.NewRequest("POST", "/", strings.NewReader(jsonString))
|
|
||||||
req.Header.Add("X-Github-Event", "status")
|
|
||||||
w := httptest.NewRecorder()
|
|
||||||
gh.eventHandler(w, req)
|
|
||||||
if w.Code != http.StatusOK {
|
|
||||||
t.Errorf("POST commit_comment returned HTTP status code %v.\nExpected %v", w.Code, http.StatusOK)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestTeamAddEvent(t *testing.T) {
|
|
||||||
gh := NewGithubWebhooks()
|
|
||||||
jsonString := mod.TeamAddEventJSON()
|
|
||||||
req, _ := http.NewRequest("POST", "/", strings.NewReader(jsonString))
|
|
||||||
req.Header.Add("X-Github-Event", "team_add")
|
|
||||||
w := httptest.NewRecorder()
|
|
||||||
gh.eventHandler(w, req)
|
|
||||||
if w.Code != http.StatusOK {
|
|
||||||
t.Errorf("POST commit_comment returned HTTP status code %v.\nExpected %v", w.Code, http.StatusOK)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestWatchEvent(t *testing.T) {
|
|
||||||
gh := NewGithubWebhooks()
|
|
||||||
jsonString := mod.WatchEventJSON()
|
|
||||||
req, _ := http.NewRequest("POST", "/", strings.NewReader(jsonString))
|
|
||||||
req.Header.Add("X-Github-Event", "watch")
|
|
||||||
w := httptest.NewRecorder()
|
|
||||||
gh.eventHandler(w, req)
|
|
||||||
if w.Code != http.StatusOK {
|
|
||||||
t.Errorf("POST commit_comment returned HTTP status code %v.\nExpected %v", w.Code, http.StatusOK)
|
|
||||||
}
|
|
||||||
}
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,711 +0,0 @@
|
||||||
package models
|
|
||||||
|
|
||||||
import (
|
|
||||||
"fmt"
|
|
||||||
"log"
|
|
||||||
"time"
|
|
||||||
|
|
||||||
"github.com/influxdata/influxdb/client/v2"
|
|
||||||
)
|
|
||||||
|
|
||||||
const meas = "ghWebhooks"
|
|
||||||
|
|
||||||
type Event interface {
|
|
||||||
NewPoint() *client.Point
|
|
||||||
}
|
|
||||||
|
|
||||||
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 Sender struct {
|
|
||||||
User string `json:"login"`
|
|
||||||
Admin bool `json:"site_admin"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type CommitComment struct {
|
|
||||||
Commit string `json:"commit_id"`
|
|
||||||
Body string `json:"body"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type Deployment struct {
|
|
||||||
Commit string `json:"sha"`
|
|
||||||
Task string `json:"task"`
|
|
||||||
Environment string `json:"environment"`
|
|
||||||
Description string `json:"description"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type Page struct {
|
|
||||||
Name string `json:"page_name"`
|
|
||||||
Title string `json:"title"`
|
|
||||||
Action string `json:"action"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type Issue struct {
|
|
||||||
Number int `json:"number"`
|
|
||||||
Title string `json:"title"`
|
|
||||||
Comments int `json:"comments"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type IssueComment struct {
|
|
||||||
Body string `json:"body"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type Team struct {
|
|
||||||
Name string `json:"name"`
|
|
||||||
}
|
|
||||||
|
|
||||||
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 PullRequestReviewComment struct {
|
|
||||||
File string `json:"path"`
|
|
||||||
Comment string `json:"body"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type Release struct {
|
|
||||||
TagName string `json:"tag_name"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type DeploymentStatus struct {
|
|
||||||
State string `json:"state"`
|
|
||||||
Description string `json:"description"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type CommitCommentEvent struct {
|
|
||||||
Comment CommitComment `json:"comment"`
|
|
||||||
Repository Repository `json:"repository"`
|
|
||||||
Sender Sender `json:"sender"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s CommitCommentEvent) NewPoint() *client.Point {
|
|
||||||
event := "commit_comment"
|
|
||||||
t := map[string]string{
|
|
||||||
"event": event,
|
|
||||||
"repository": s.Repository.Repository,
|
|
||||||
"private": fmt.Sprintf("%v", s.Repository.Private),
|
|
||||||
"user": s.Sender.User,
|
|
||||||
"admin": fmt.Sprintf("%v", s.Sender.Admin),
|
|
||||||
}
|
|
||||||
f := map[string]interface{}{
|
|
||||||
"stars": s.Repository.Stars,
|
|
||||||
"forks": s.Repository.Forks,
|
|
||||||
"issues": s.Repository.Issues,
|
|
||||||
"commit": s.Comment.Commit,
|
|
||||||
"comment": s.Comment.Body,
|
|
||||||
}
|
|
||||||
p, err := client.NewPoint(meas, t, f, time.Now())
|
|
||||||
if err != nil {
|
|
||||||
log.Fatalf("Failed to create %v event", event)
|
|
||||||
}
|
|
||||||
return p
|
|
||||||
}
|
|
||||||
|
|
||||||
type CreateEvent struct {
|
|
||||||
Ref string `json:"ref"`
|
|
||||||
RefType string `json:"ref_type"`
|
|
||||||
Repository Repository `json:"repository"`
|
|
||||||
Sender Sender `json:"sender"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s CreateEvent) NewPoint() *client.Point {
|
|
||||||
event := "create"
|
|
||||||
t := map[string]string{
|
|
||||||
"event": event,
|
|
||||||
"repository": s.Repository.Repository,
|
|
||||||
"private": fmt.Sprintf("%v", s.Repository.Private),
|
|
||||||
"user": s.Sender.User,
|
|
||||||
"admin": fmt.Sprintf("%v", s.Sender.Admin),
|
|
||||||
}
|
|
||||||
f := map[string]interface{}{
|
|
||||||
"stars": s.Repository.Stars,
|
|
||||||
"forks": s.Repository.Forks,
|
|
||||||
"issues": s.Repository.Issues,
|
|
||||||
"ref": s.Ref,
|
|
||||||
"refType": s.RefType,
|
|
||||||
}
|
|
||||||
p, err := client.NewPoint(meas, t, f, time.Now())
|
|
||||||
if err != nil {
|
|
||||||
log.Fatalf("Failed to create %v event", event)
|
|
||||||
}
|
|
||||||
return p
|
|
||||||
}
|
|
||||||
|
|
||||||
type DeleteEvent struct {
|
|
||||||
Ref string `json:"ref"`
|
|
||||||
RefType string `json:"ref_type"`
|
|
||||||
Repository Repository `json:"repository"`
|
|
||||||
Sender Sender `json:"sender"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s DeleteEvent) NewPoint() *client.Point {
|
|
||||||
event := "delete"
|
|
||||||
t := map[string]string{
|
|
||||||
"event": event,
|
|
||||||
"repository": s.Repository.Repository,
|
|
||||||
"private": fmt.Sprintf("%v", s.Repository.Private),
|
|
||||||
"user": s.Sender.User,
|
|
||||||
"admin": fmt.Sprintf("%v", s.Sender.Admin),
|
|
||||||
}
|
|
||||||
f := map[string]interface{}{
|
|
||||||
"stars": s.Repository.Stars,
|
|
||||||
"forks": s.Repository.Forks,
|
|
||||||
"issues": s.Repository.Issues,
|
|
||||||
"ref": s.Ref,
|
|
||||||
"refType": s.RefType,
|
|
||||||
}
|
|
||||||
p, err := client.NewPoint(meas, t, f, time.Now())
|
|
||||||
if err != nil {
|
|
||||||
log.Fatalf("Failed to create %v event", event)
|
|
||||||
}
|
|
||||||
return p
|
|
||||||
}
|
|
||||||
|
|
||||||
type DeploymentEvent struct {
|
|
||||||
Deployment Deployment `json:"deployment"`
|
|
||||||
Repository Repository `json:"repository"`
|
|
||||||
Sender Sender `json:"sender"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s DeploymentEvent) NewPoint() *client.Point {
|
|
||||||
event := "deployment"
|
|
||||||
t := map[string]string{
|
|
||||||
"event": event,
|
|
||||||
"repository": s.Repository.Repository,
|
|
||||||
"private": fmt.Sprintf("%v", s.Repository.Private),
|
|
||||||
"user": s.Sender.User,
|
|
||||||
"admin": fmt.Sprintf("%v", s.Sender.Admin),
|
|
||||||
}
|
|
||||||
f := map[string]interface{}{
|
|
||||||
"stars": s.Repository.Stars,
|
|
||||||
"forks": s.Repository.Forks,
|
|
||||||
"issues": s.Repository.Issues,
|
|
||||||
"commit": s.Deployment.Commit,
|
|
||||||
"task": s.Deployment.Task,
|
|
||||||
"environment": s.Deployment.Environment,
|
|
||||||
"description": s.Deployment.Description,
|
|
||||||
}
|
|
||||||
p, err := client.NewPoint(meas, t, f, time.Now())
|
|
||||||
if err != nil {
|
|
||||||
log.Fatalf("Failed to create %v event", event)
|
|
||||||
}
|
|
||||||
return p
|
|
||||||
}
|
|
||||||
|
|
||||||
type DeploymentStatusEvent struct {
|
|
||||||
Deployment Deployment `json:"deployment"`
|
|
||||||
DeploymentStatus DeploymentStatus `json:"deployment_status"`
|
|
||||||
Repository Repository `json:"repository"`
|
|
||||||
Sender Sender `json:"sender"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s DeploymentStatusEvent) NewPoint() *client.Point {
|
|
||||||
event := "delete"
|
|
||||||
t := map[string]string{
|
|
||||||
"event": event,
|
|
||||||
"repository": s.Repository.Repository,
|
|
||||||
"private": fmt.Sprintf("%v", s.Repository.Private),
|
|
||||||
"user": s.Sender.User,
|
|
||||||
"admin": fmt.Sprintf("%v", s.Sender.Admin),
|
|
||||||
}
|
|
||||||
f := map[string]interface{}{
|
|
||||||
"stars": s.Repository.Stars,
|
|
||||||
"forks": s.Repository.Forks,
|
|
||||||
"issues": s.Repository.Issues,
|
|
||||||
"commit": s.Deployment.Commit,
|
|
||||||
"task": s.Deployment.Task,
|
|
||||||
"environment": s.Deployment.Environment,
|
|
||||||
"description": s.Deployment.Description,
|
|
||||||
"depState": s.DeploymentStatus.State,
|
|
||||||
"depDescription": s.DeploymentStatus.Description,
|
|
||||||
}
|
|
||||||
p, err := client.NewPoint(meas, t, f, time.Now())
|
|
||||||
if err != nil {
|
|
||||||
log.Fatalf("Failed to create %v event", event)
|
|
||||||
}
|
|
||||||
return p
|
|
||||||
}
|
|
||||||
|
|
||||||
type ForkEvent struct {
|
|
||||||
Forkee Repository `json:"forkee"`
|
|
||||||
Repository Repository `json:"repository"`
|
|
||||||
Sender Sender `json:"sender"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s ForkEvent) NewPoint() *client.Point {
|
|
||||||
event := "fork"
|
|
||||||
t := map[string]string{
|
|
||||||
"event": event,
|
|
||||||
"repository": s.Repository.Repository,
|
|
||||||
"private": fmt.Sprintf("%v", s.Repository.Private),
|
|
||||||
"user": s.Sender.User,
|
|
||||||
"admin": fmt.Sprintf("%v", s.Sender.Admin),
|
|
||||||
}
|
|
||||||
f := map[string]interface{}{
|
|
||||||
"stars": s.Repository.Stars,
|
|
||||||
"forks": s.Repository.Forks,
|
|
||||||
"issues": s.Repository.Issues,
|
|
||||||
"fork": s.Forkee.Repository,
|
|
||||||
}
|
|
||||||
p, err := client.NewPoint(meas, t, f, time.Now())
|
|
||||||
if err != nil {
|
|
||||||
log.Fatalf("Failed to create %v event", event)
|
|
||||||
}
|
|
||||||
return p
|
|
||||||
}
|
|
||||||
|
|
||||||
type GollumEvent struct {
|
|
||||||
Pages []Page `json:"pages"`
|
|
||||||
Repository Repository `json:"repository"`
|
|
||||||
Sender Sender `json:"sender"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// REVIEW: Going to be lazy and not deal with the pages.
|
|
||||||
func (s GollumEvent) NewPoint() *client.Point {
|
|
||||||
event := "gollum"
|
|
||||||
t := map[string]string{
|
|
||||||
"event": event,
|
|
||||||
"repository": s.Repository.Repository,
|
|
||||||
"private": fmt.Sprintf("%v", s.Repository.Private),
|
|
||||||
"user": s.Sender.User,
|
|
||||||
"admin": fmt.Sprintf("%v", s.Sender.Admin),
|
|
||||||
}
|
|
||||||
f := map[string]interface{}{
|
|
||||||
"stars": s.Repository.Stars,
|
|
||||||
"forks": s.Repository.Forks,
|
|
||||||
"issues": s.Repository.Issues,
|
|
||||||
}
|
|
||||||
p, err := client.NewPoint(meas, t, f, time.Now())
|
|
||||||
if err != nil {
|
|
||||||
log.Fatalf("Failed to create %v event", event)
|
|
||||||
}
|
|
||||||
return p
|
|
||||||
}
|
|
||||||
|
|
||||||
type IssueCommentEvent struct {
|
|
||||||
Issue Issue `json:"issue"`
|
|
||||||
Comment IssueComment `json:"comment"`
|
|
||||||
Repository Repository `json:"repository"`
|
|
||||||
Sender Sender `json:"sender"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s IssueCommentEvent) NewPoint() *client.Point {
|
|
||||||
event := "issue_comment"
|
|
||||||
t := map[string]string{
|
|
||||||
"event": event,
|
|
||||||
"repository": s.Repository.Repository,
|
|
||||||
"private": fmt.Sprintf("%v", s.Repository.Private),
|
|
||||||
"user": s.Sender.User,
|
|
||||||
"admin": fmt.Sprintf("%v", s.Sender.Admin),
|
|
||||||
"issue": fmt.Sprintf("%v", s.Issue.Number),
|
|
||||||
}
|
|
||||||
f := map[string]interface{}{
|
|
||||||
"stars": s.Repository.Stars,
|
|
||||||
"forks": s.Repository.Forks,
|
|
||||||
"issues": s.Repository.Issues,
|
|
||||||
"title": s.Issue.Title,
|
|
||||||
"comments": s.Issue.Comments,
|
|
||||||
"body": s.Comment.Body,
|
|
||||||
}
|
|
||||||
p, err := client.NewPoint(meas, t, f, time.Now())
|
|
||||||
if err != nil {
|
|
||||||
log.Fatalf("Failed to create %v event", event)
|
|
||||||
}
|
|
||||||
return p
|
|
||||||
}
|
|
||||||
|
|
||||||
type IssuesEvent struct {
|
|
||||||
Action string `json:"action"`
|
|
||||||
Issue Issue `json:"issue"`
|
|
||||||
Repository Repository `json:"repository"`
|
|
||||||
Sender Sender `json:"sender"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s IssuesEvent) NewPoint() *client.Point {
|
|
||||||
event := "issue"
|
|
||||||
t := map[string]string{
|
|
||||||
"event": event,
|
|
||||||
"repository": s.Repository.Repository,
|
|
||||||
"private": fmt.Sprintf("%v", s.Repository.Private),
|
|
||||||
"user": s.Sender.User,
|
|
||||||
"admin": fmt.Sprintf("%v", s.Sender.Admin),
|
|
||||||
"issue": fmt.Sprintf("%v", s.Issue.Number),
|
|
||||||
"action": s.Action,
|
|
||||||
}
|
|
||||||
f := map[string]interface{}{
|
|
||||||
"stars": s.Repository.Stars,
|
|
||||||
"forks": s.Repository.Forks,
|
|
||||||
"issues": s.Repository.Issues,
|
|
||||||
"title": s.Issue.Title,
|
|
||||||
"comments": s.Issue.Comments,
|
|
||||||
}
|
|
||||||
p, err := client.NewPoint(meas, t, f, time.Now())
|
|
||||||
if err != nil {
|
|
||||||
log.Fatalf("Failed to create %v event", event)
|
|
||||||
}
|
|
||||||
return p
|
|
||||||
}
|
|
||||||
|
|
||||||
type MemberEvent struct {
|
|
||||||
Member Sender `json:"member"`
|
|
||||||
Repository Repository `json:"repository"`
|
|
||||||
Sender Sender `json:"sender"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s MemberEvent) NewPoint() *client.Point {
|
|
||||||
event := "member"
|
|
||||||
t := map[string]string{
|
|
||||||
"event": event,
|
|
||||||
"repository": s.Repository.Repository,
|
|
||||||
"private": fmt.Sprintf("%v", s.Repository.Private),
|
|
||||||
"user": s.Sender.User,
|
|
||||||
"admin": fmt.Sprintf("%v", s.Sender.Admin),
|
|
||||||
}
|
|
||||||
f := map[string]interface{}{
|
|
||||||
"stars": s.Repository.Stars,
|
|
||||||
"forks": s.Repository.Forks,
|
|
||||||
"issues": s.Repository.Issues,
|
|
||||||
"newMember": s.Member.User,
|
|
||||||
"newMemberStatus": s.Member.Admin,
|
|
||||||
}
|
|
||||||
p, err := client.NewPoint(meas, t, f, time.Now())
|
|
||||||
if err != nil {
|
|
||||||
log.Fatalf("Failed to create %v event", event)
|
|
||||||
}
|
|
||||||
return p
|
|
||||||
}
|
|
||||||
|
|
||||||
type MembershipEvent struct {
|
|
||||||
Action string `json:"action"`
|
|
||||||
Member Sender `json:"member"`
|
|
||||||
Sender Sender `json:"sender"`
|
|
||||||
Team Team `json:"team"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s MembershipEvent) NewPoint() *client.Point {
|
|
||||||
event := "membership"
|
|
||||||
t := map[string]string{
|
|
||||||
"event": event,
|
|
||||||
"user": s.Sender.User,
|
|
||||||
"admin": fmt.Sprintf("%v", s.Sender.Admin),
|
|
||||||
"action": s.Action,
|
|
||||||
}
|
|
||||||
f := map[string]interface{}{
|
|
||||||
"newMember": s.Member.User,
|
|
||||||
"newMemberStatus": s.Member.Admin,
|
|
||||||
}
|
|
||||||
p, err := client.NewPoint(meas, t, f, time.Now())
|
|
||||||
if err != nil {
|
|
||||||
log.Fatalf("Failed to create %v event", event)
|
|
||||||
}
|
|
||||||
return p
|
|
||||||
}
|
|
||||||
|
|
||||||
type PageBuildEvent struct {
|
|
||||||
Repository Repository `json:"repository"`
|
|
||||||
Sender Sender `json:"sender"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s PageBuildEvent) NewPoint() *client.Point {
|
|
||||||
event := "page_build"
|
|
||||||
t := map[string]string{
|
|
||||||
"event": event,
|
|
||||||
"repository": s.Repository.Repository,
|
|
||||||
"private": fmt.Sprintf("%v", s.Repository.Private),
|
|
||||||
"user": s.Sender.User,
|
|
||||||
"admin": fmt.Sprintf("%v", s.Sender.Admin),
|
|
||||||
}
|
|
||||||
f := map[string]interface{}{
|
|
||||||
"stars": s.Repository.Stars,
|
|
||||||
"forks": s.Repository.Forks,
|
|
||||||
"issues": s.Repository.Issues,
|
|
||||||
}
|
|
||||||
p, err := client.NewPoint(meas, t, f, time.Now())
|
|
||||||
if err != nil {
|
|
||||||
log.Fatalf("Failed to create %v event", event)
|
|
||||||
}
|
|
||||||
return p
|
|
||||||
}
|
|
||||||
|
|
||||||
type PublicEvent struct {
|
|
||||||
Repository Repository `json:"repository"`
|
|
||||||
Sender Sender `json:"sender"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s PublicEvent) NewPoint() *client.Point {
|
|
||||||
event := "public"
|
|
||||||
t := map[string]string{
|
|
||||||
"event": event,
|
|
||||||
"repository": s.Repository.Repository,
|
|
||||||
"private": fmt.Sprintf("%v", s.Repository.Private),
|
|
||||||
"user": s.Sender.User,
|
|
||||||
"admin": fmt.Sprintf("%v", s.Sender.Admin),
|
|
||||||
}
|
|
||||||
f := map[string]interface{}{
|
|
||||||
"stars": s.Repository.Stars,
|
|
||||||
"forks": s.Repository.Forks,
|
|
||||||
"issues": s.Repository.Issues,
|
|
||||||
}
|
|
||||||
p, err := client.NewPoint(meas, t, f, time.Now())
|
|
||||||
if err != nil {
|
|
||||||
log.Fatalf("Failed to create %v event", event)
|
|
||||||
}
|
|
||||||
return p
|
|
||||||
}
|
|
||||||
|
|
||||||
type PullRequestEvent struct {
|
|
||||||
Action string `json:"action"`
|
|
||||||
PullRequest PullRequest `json:"pull_request"`
|
|
||||||
Repository Repository `json:"repository"`
|
|
||||||
Sender Sender `json:"sender"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s PullRequestEvent) NewPoint() *client.Point {
|
|
||||||
event := "pull_request"
|
|
||||||
t := map[string]string{
|
|
||||||
"event": event,
|
|
||||||
"action": s.Action,
|
|
||||||
"repository": s.Repository.Repository,
|
|
||||||
"private": fmt.Sprintf("%v", s.Repository.Private),
|
|
||||||
"user": s.Sender.User,
|
|
||||||
"admin": fmt.Sprintf("%v", s.Sender.Admin),
|
|
||||||
"prNumber": fmt.Sprintf("%v", s.PullRequest.Number),
|
|
||||||
}
|
|
||||||
f := map[string]interface{}{
|
|
||||||
"stars": s.Repository.Stars,
|
|
||||||
"forks": s.Repository.Forks,
|
|
||||||
"issues": s.Repository.Issues,
|
|
||||||
"state": s.PullRequest.State,
|
|
||||||
"title": s.PullRequest.Title,
|
|
||||||
"comments": s.PullRequest.Comments,
|
|
||||||
"commits": s.PullRequest.Commits,
|
|
||||||
"additions": s.PullRequest.Additions,
|
|
||||||
"deletions": s.PullRequest.Deletions,
|
|
||||||
"changedFiles": s.PullRequest.ChangedFiles,
|
|
||||||
}
|
|
||||||
p, err := client.NewPoint(meas, t, f, time.Now())
|
|
||||||
if err != nil {
|
|
||||||
log.Fatalf("Failed to create %v event", event)
|
|
||||||
}
|
|
||||||
return p
|
|
||||||
}
|
|
||||||
|
|
||||||
type PullRequestReviewCommentEvent struct {
|
|
||||||
Comment PullRequestReviewComment `json:"comment"`
|
|
||||||
PullRequest PullRequest `json:"pull_request"`
|
|
||||||
Repository Repository `json:"repository"`
|
|
||||||
Sender Sender `json:"sender"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s PullRequestReviewCommentEvent) NewPoint() *client.Point {
|
|
||||||
event := "pull_request_review_comment"
|
|
||||||
t := map[string]string{
|
|
||||||
"event": event,
|
|
||||||
"repository": s.Repository.Repository,
|
|
||||||
"private": fmt.Sprintf("%v", s.Repository.Private),
|
|
||||||
"user": s.Sender.User,
|
|
||||||
"admin": fmt.Sprintf("%v", s.Sender.Admin),
|
|
||||||
"prNumber": fmt.Sprintf("%v", s.PullRequest.Number),
|
|
||||||
}
|
|
||||||
f := map[string]interface{}{
|
|
||||||
"stars": s.Repository.Stars,
|
|
||||||
"forks": s.Repository.Forks,
|
|
||||||
"issues": s.Repository.Issues,
|
|
||||||
"state": s.PullRequest.State,
|
|
||||||
"title": s.PullRequest.Title,
|
|
||||||
"comments": s.PullRequest.Comments,
|
|
||||||
"commits": s.PullRequest.Commits,
|
|
||||||
"additions": s.PullRequest.Additions,
|
|
||||||
"deletions": s.PullRequest.Deletions,
|
|
||||||
"changedFiles": s.PullRequest.ChangedFiles,
|
|
||||||
"commentFile": s.Comment.File,
|
|
||||||
"comment": s.Comment.Comment,
|
|
||||||
}
|
|
||||||
p, err := client.NewPoint(meas, t, f, time.Now())
|
|
||||||
if err != nil {
|
|
||||||
log.Fatalf("Failed to create %v event", event)
|
|
||||||
}
|
|
||||||
return p
|
|
||||||
}
|
|
||||||
|
|
||||||
type PushEvent struct {
|
|
||||||
Ref string `json:"ref"`
|
|
||||||
Before string `json:"before"`
|
|
||||||
After string `json:"after"`
|
|
||||||
Repository Repository `json:"repository"`
|
|
||||||
Sender Sender `json:"sender"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s PushEvent) NewPoint() *client.Point {
|
|
||||||
event := "push"
|
|
||||||
t := map[string]string{
|
|
||||||
"event": event,
|
|
||||||
"repository": s.Repository.Repository,
|
|
||||||
"private": fmt.Sprintf("%v", s.Repository.Private),
|
|
||||||
"user": s.Sender.User,
|
|
||||||
"admin": fmt.Sprintf("%v", s.Sender.Admin),
|
|
||||||
}
|
|
||||||
f := map[string]interface{}{
|
|
||||||
"stars": s.Repository.Stars,
|
|
||||||
"forks": s.Repository.Forks,
|
|
||||||
"issues": s.Repository.Issues,
|
|
||||||
"Ref": s.Ref,
|
|
||||||
"Before": s.Before,
|
|
||||||
"After": s.After,
|
|
||||||
}
|
|
||||||
p, err := client.NewPoint(meas, t, f, time.Now())
|
|
||||||
if err != nil {
|
|
||||||
log.Fatalf("Failed to create %v event", event)
|
|
||||||
}
|
|
||||||
return p
|
|
||||||
}
|
|
||||||
|
|
||||||
type ReleaseEvent struct {
|
|
||||||
Release Release `json:"release"`
|
|
||||||
Repository Repository `json:"repository"`
|
|
||||||
Sender Sender `json:"sender"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s ReleaseEvent) NewPoint() *client.Point {
|
|
||||||
event := "release"
|
|
||||||
t := map[string]string{
|
|
||||||
"event": event,
|
|
||||||
"repository": s.Repository.Repository,
|
|
||||||
"private": fmt.Sprintf("%v", s.Repository.Private),
|
|
||||||
"user": s.Sender.User,
|
|
||||||
"admin": fmt.Sprintf("%v", s.Sender.Admin),
|
|
||||||
}
|
|
||||||
f := map[string]interface{}{
|
|
||||||
"stars": s.Repository.Stars,
|
|
||||||
"forks": s.Repository.Forks,
|
|
||||||
"issues": s.Repository.Issues,
|
|
||||||
"tagName": s.Release.TagName,
|
|
||||||
}
|
|
||||||
p, err := client.NewPoint(meas, t, f, time.Now())
|
|
||||||
if err != nil {
|
|
||||||
log.Fatalf("Failed to create %v event", event)
|
|
||||||
}
|
|
||||||
return p
|
|
||||||
}
|
|
||||||
|
|
||||||
type RepositoryEvent struct {
|
|
||||||
Repository Repository `json:"repository"`
|
|
||||||
Sender Sender `json:"sender"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s RepositoryEvent) NewPoint() *client.Point {
|
|
||||||
event := "repository"
|
|
||||||
t := map[string]string{
|
|
||||||
"event": event,
|
|
||||||
"repository": s.Repository.Repository,
|
|
||||||
"private": fmt.Sprintf("%v", s.Repository.Private),
|
|
||||||
"user": s.Sender.User,
|
|
||||||
"admin": fmt.Sprintf("%v", s.Sender.Admin),
|
|
||||||
}
|
|
||||||
f := map[string]interface{}{
|
|
||||||
"stars": s.Repository.Stars,
|
|
||||||
"forks": s.Repository.Forks,
|
|
||||||
"issues": s.Repository.Issues,
|
|
||||||
}
|
|
||||||
p, err := client.NewPoint(meas, t, f, time.Now())
|
|
||||||
if err != nil {
|
|
||||||
log.Fatalf("Failed to create %v event", event)
|
|
||||||
}
|
|
||||||
return p
|
|
||||||
}
|
|
||||||
|
|
||||||
type StatusEvent struct {
|
|
||||||
Commit string `json:"sha"`
|
|
||||||
State string `json:"state"`
|
|
||||||
Repository Repository `json:"repository"`
|
|
||||||
Sender Sender `json:"sender"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s StatusEvent) NewPoint() *client.Point {
|
|
||||||
event := "status"
|
|
||||||
t := map[string]string{
|
|
||||||
"event": event,
|
|
||||||
"repository": s.Repository.Repository,
|
|
||||||
"private": fmt.Sprintf("%v", s.Repository.Private),
|
|
||||||
"user": s.Sender.User,
|
|
||||||
"admin": fmt.Sprintf("%v", s.Sender.Admin),
|
|
||||||
}
|
|
||||||
f := map[string]interface{}{
|
|
||||||
"stars": s.Repository.Stars,
|
|
||||||
"forks": s.Repository.Forks,
|
|
||||||
"issues": s.Repository.Issues,
|
|
||||||
"commit": s.Commit,
|
|
||||||
"state": s.State,
|
|
||||||
}
|
|
||||||
p, err := client.NewPoint(meas, t, f, time.Now())
|
|
||||||
if err != nil {
|
|
||||||
log.Fatalf("Failed to create %v event", event)
|
|
||||||
}
|
|
||||||
return p
|
|
||||||
}
|
|
||||||
|
|
||||||
type TeamAddEvent struct {
|
|
||||||
Team Team `json:"team"`
|
|
||||||
Repository Repository `json:"repository"`
|
|
||||||
Sender Sender `json:"sender"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s TeamAddEvent) NewPoint() *client.Point {
|
|
||||||
event := "team_add"
|
|
||||||
t := map[string]string{
|
|
||||||
"event": event,
|
|
||||||
"repository": s.Repository.Repository,
|
|
||||||
"private": fmt.Sprintf("%v", s.Repository.Private),
|
|
||||||
"user": s.Sender.User,
|
|
||||||
"admin": fmt.Sprintf("%v", s.Sender.Admin),
|
|
||||||
}
|
|
||||||
f := map[string]interface{}{
|
|
||||||
"stars": s.Repository.Stars,
|
|
||||||
"forks": s.Repository.Forks,
|
|
||||||
"issues": s.Repository.Issues,
|
|
||||||
"teamName": s.Team.Name,
|
|
||||||
}
|
|
||||||
p, err := client.NewPoint(meas, t, f, time.Now())
|
|
||||||
if err != nil {
|
|
||||||
log.Fatalf("Failed to create %v event", event)
|
|
||||||
}
|
|
||||||
return p
|
|
||||||
}
|
|
||||||
|
|
||||||
type WatchEvent struct {
|
|
||||||
Repository Repository `json:"repository"`
|
|
||||||
Sender Sender `json:"sender"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s WatchEvent) NewPoint() *client.Point {
|
|
||||||
event := "delete"
|
|
||||||
t := map[string]string{
|
|
||||||
"event": event,
|
|
||||||
"repository": s.Repository.Repository,
|
|
||||||
"private": fmt.Sprintf("%v", s.Repository.Private),
|
|
||||||
"user": s.Sender.User,
|
|
||||||
"admin": fmt.Sprintf("%v", s.Sender.Admin),
|
|
||||||
}
|
|
||||||
f := map[string]interface{}{
|
|
||||||
"stars": s.Repository.Stars,
|
|
||||||
"forks": s.Repository.Forks,
|
|
||||||
"issues": s.Repository.Issues,
|
|
||||||
}
|
|
||||||
p, err := client.NewPoint(meas, t, f, time.Now())
|
|
||||||
if err != nil {
|
|
||||||
log.Fatalf("Failed to create %v event", event)
|
|
||||||
}
|
|
||||||
return p
|
|
||||||
}
|
|
Loading…
Reference in New Issue