Documentation ¶
Index ¶
- Variables
- type ArtifactsFile
- type Assignee
- type Author
- type BuildCommit
- type BuildEventPayload
- type Changes
- type CommentEventPayload
- type Commit
- type ConfidentialIssueEventPayload
- type Event
- type Issue
- type IssueEventPayload
- type Job
- type JobEventPayload
- type Label
- type LabelChanges
- type LastCommit
- type MergeRequest
- type MergeRequestEventPayload
- type ObjectAttributes
- type Option
- type PipelineEventPayload
- type Position
- type Project
- type PushEventPayload
- type Repository
- type Runner
- type Snippet
- type Source
- type StDiff
- type SystemHookPayload
- type TagEventPayload
- type Target
- type User
- type Webhook
- type WebhookOptions
- type Wiki
- type WikiPageEventPayload
Constants ¶
This section is empty.
Variables ¶
var ( ErrEventNotSpecifiedToParse = errors.New("no Event specified to parse") ErrInvalidHTTPMethod = errors.New("invalid HTTP Method") ErrMissingGitLabEventHeader = errors.New("missing X-Gitlab-Event Header") ErrGitLabTokenVerificationFailed = errors.New("X-Gitlab-Token validation failed") ErrEventNotFound = errors.New("event not defined to be parsed") ErrParsingPayload = errors.New("error parsing payload") ErrParsingSystemPayload = errors.New("error parsing system payload") )
parse errors
var Options = WebhookOptions{}
Options is a namespace var for configuration options
Functions ¶
This section is empty.
Types ¶
type ArtifactsFile ¶
ArtifactsFile contains all of the GitLab artifact information
type Assignee ¶
type Assignee struct { Name string `json:"name"` Username string `json:"username"` AvatarURL string `json:"avatar_url"` }
Assignee contains all of the GitLab assignee information
type BuildCommit ¶
type BuildCommit struct { ID int64 `json:"id"` SHA string `json:"sha"` Message string `json:"message"` AuthorName string `json:"auuthor_name"` AuthorEmail string `json:"author_email"` Status string `json:"status"` Duration int64 `json:"duration"` StartedAt customTime `json:"started_at"` FinishedAt customTime `json:"finished_at"` }
BuildCommit contains all of the GitLab build commit information
type BuildEventPayload ¶
type BuildEventPayload struct { ObjectKind string `json:"object_kind"` Ref string `json:"ref"` Tag bool `json:"tag"` BeforeSHA string `json:"before_sha"` SHA string `json:"sha"` BuildID int64 `json:"build_id"` BuildName string `json:"build_name"` BuildStage string `json:"build_stage"` BuildStatus string `json:"build_status"` BuildStartedAt customTime `json:"build_started_at"` BuildFinishedAt customTime `json:"build_finished_at"` BuildDuration int64 `json:"build_duration"` BuildAllowFailure bool `json:"build_allow_failure"` ProjectID int64 `json:"project_id"` ProjectName string `json:"project_name"` User User `json:"user"` Commit BuildCommit `json:"commit"` Repository Repository `json:"repository"` }
BuildEventPayload contains the information for GitLab's build status change event
type Changes ¶
type Changes struct {
LabelChanges LabelChanges `json:"labels"`
}
Changes contains all changes associated with a GitLab issue or MR
type CommentEventPayload ¶
type CommentEventPayload struct { ObjectKind string `json:"object_kind"` User User `json:"user"` ProjectID int64 `json:"project_id"` Project Project `json:"project"` Repository Repository `json:"repository"` ObjectAttributes ObjectAttributes `json:"object_attributes"` MergeRequest MergeRequest `json:"merge_request"` Commit Commit `json:"commit"` Issue Issue `json:"issue"` Snippet Snippet `json:"snippet"` }
CommentEventPayload contains the information for GitLab's comment event
type Commit ¶
type Commit struct { ID string `json:"id"` Message string `json:"message"` Timestamp customTime `json:"timestamp"` URL string `json:"url"` Author Author `json:"author"` Added []string `json:"added"` Modified []string `json:"modified"` Removed []string `json:"removed"` }
Commit contains all of the GitLab commit information
type ConfidentialIssueEventPayload ¶
type ConfidentialIssueEventPayload struct { // The data for confidential issues is currently the same as normal issues, // so we can just embed the normal issue payload type here. IssueEventPayload }
ConfidentialIssueEventPayload contains the information for GitLab's confidential issue event
type Event ¶
type Event string
Event defines a GitLab hook event type by the X-Gitlab-Event Header
const ( PushEvents Event = "Push Hook" TagEvents Event = "Tag Push Hook" IssuesEvents Event = "Issue Hook" ConfidentialIssuesEvents Event = "Confidential Issue Hook" CommentEvents Event = "Note Hook" MergeRequestEvents Event = "Merge Request Hook" WikiPageEvents Event = "Wiki Page Hook" PipelineEvents Event = "Pipeline Hook" BuildEvents Event = "Build Hook" JobEvents Event = "Job Hook" SystemHookEvents Event = "System Hook" )
GitLab hook types
type Issue ¶
type Issue struct { ID int64 `json:"id"` Title string `json:"title"` AssigneeID int64 `json:"assignee_id"` AuthorID int64 `json:"author_id"` ProjectID int64 `json:"project_id"` CreatedAt customTime `json:"created_at"` UpdatedAt customTime `json:"updated_at"` Position int64 `json:"position"` BranchName string `json:"branch_name"` Description string `json:"description"` MilestoneID int64 `json:"milestone_id"` State string `json:"state"` IID int64 `json:"iid"` }
Issue contains all of the GitLab issue information
type IssueEventPayload ¶
type IssueEventPayload struct { ObjectKind string `json:"object_kind"` User User `json:"user"` Project Project `json:"project"` Repository Repository `json:"repository"` ObjectAttributes ObjectAttributes `json:"object_attributes"` Assignee Assignee `json:"assignee"` Changes Changes `json:"changes"` }
IssueEventPayload contains the information for GitLab's issue event
type Job ¶
type Job struct { ID int64 `json:"id"` Stage string `json:"stage"` Name string `json:"name"` Status string `json:"status"` CreatedAt customTime `json:"created_at"` StartedAt customTime `json:"started_at"` FinishedAt customTime `json:"finished_at"` When string `json:"when"` Manual bool `json:"manual"` User User `json:"user"` Runner Runner `json:"runner"` ArtifactsFile ArtifactsFile `json:"artifactsfile"` }
Job contains all of the GitLab job information
type JobEventPayload ¶
type JobEventPayload struct { ObjectKind string `json:"object_kind"` Ref string `json:"ref"` Tag bool `json:"tag"` BeforeSHA string `json:"before_sha"` SHA string `json:"sha"` JobID int64 `json:"Job_id"` JobName string `json:"Job_name"` JobStage string `json:"Job_stage"` JobStatus string `json:"Job_status"` JobStartedAt customTime `json:"Job_started_at"` JobFinishedAt customTime `json:"Job_finished_at"` JobDuration int64 `json:"Job_duration"` Job bool `json:"Job"` JobFailureReason string `json:"job_failure_reason"` ProjectID int64 `json:"project_id"` ProjectName string `json:"project_name"` User User `json:"user"` Commit BuildCommit `json:"commit"` Repository Repository `json:"repository"` }
JobEventPayload contains the information for GitLab's Job status change
type Label ¶
type Label struct { ID int64 `json:"id"` Title string `json:"title"` Color string `json:"color"` ProjectID int64 `json:"project_id"` CreatedAt customTime `json:"created_at"` UpdatedAt customTime `json:"updated_at"` Template bool `json:"template"` Description string `json:"description"` Type string `json:"type"` GroupID int64 `json:"group_id"` }
Label contains all of the GitLab label information
type LabelChanges ¶
LabelChanges contains changes in labels assocatiated with a GitLab issue or MR
type LastCommit ¶
type LastCommit struct { ID string `json:"id"` Message string `json:"message"` Timestamp customTime `json:"timestamp"` URL string `json:"url"` Author Author `json:"author"` }
LastCommit contains all of the GitLab last commit information
type MergeRequest ¶
type MergeRequest struct { ID int64 `json:"id"` TargetBranch string `json:"target_branch"` SourceBranch string `json:"source_branch"` SourceProjectID int64 `json:"source_project_id"` AssigneeID int64 `json:"assignee_id"` AuthorID int64 `json:"author_id"` Title string `json:"title"` CreatedAt customTime `json:"created_at"` UpdatedAt customTime `json:"updated_at"` MilestoneID int64 `json:"milestone_id"` State string `json:"state"` MergeStatus string `json:"merge_status"` TargetProjectID int64 `json:"target_project_id"` IID int64 `json:"iid"` Description string `json:"description"` Position int64 `json:"position"` LockedAt customTime `json:"locked_at"` Source Source `json:"source"` Target Target `json:"target"` LastCommit LastCommit `json:"last_commit"` WorkInProgress bool `json:"work_in_progress"` Assignee Assignee `json:"assignee"` }
MergeRequest contains all of the GitLab merge request information
type MergeRequestEventPayload ¶
type MergeRequestEventPayload struct { ObjectKind string `json:"object_kind"` User User `json:"user"` ObjectAttributes ObjectAttributes `json:"object_attributes"` Changes Changes `json:"changes"` Project Project `json:"project"` Repository Repository `json:"repository"` }
MergeRequestEventPayload contains the information for GitLab's merge request event
type ObjectAttributes ¶
type ObjectAttributes struct { ID int64 `json:"id"` Title string `json:"title"` AssigneeID int64 `json:"assignee_id"` AuthorID int64 `json:"author_id"` ProjectID int64 `json:"project_id"` CreatedAt customTime `json:"created_at"` UpdatedAt customTime `json:"updated_at"` ChangePosition Position `json:"change_position"` OriginalPosition Position `json:"original_position"` Position Position `json:"position"` BranchName string `json:"branch_name"` Description string `json:"description"` MilestoneID int64 `json:"milestone_id"` State string `json:"state"` IID int64 `json:"iid"` URL string `json:"url"` Action string `json:"action"` TargetBranch string `json:"target_branch"` SourceBranch string `json:"source_branch"` SourceProjectID int64 `json:"source_project_id"` TargetProjectID int64 `json:"target_project_id"` StCommits string `json:"st_commits"` MergeStatus string `json:"merge_status"` Content string `json:"content"` Format string `json:"format"` Message string `json:"message"` Slug string `json:"slug"` Ref string `json:"ref"` Tag bool `json:"tag"` SHA string `json:"sha"` BeforeSHA string `json:"before_sha"` Status string `json:"status"` Stages []string `json:"stages"` Duration int64 `json:"duration"` Note string `json:"note"` NotebookType string `json:"noteable_type"` At customTime `json:"attachment"` LineCode string `json:"line_code"` CommitID string `json:"commit_id"` NoteableID int64 `json:"noteable_id"` System bool `json:"system"` WorkInProgress bool `json:"work_in_progress"` StDiffs []StDiff `json:"st_diffs"` Source Source `json:"source"` Target Target `json:"target"` LastCommit LastCommit `json:"last_commit"` Assignee Assignee `json:"assignee"` }
ObjectAttributes contains all of the GitLab object attributes information
type PipelineEventPayload ¶
type PipelineEventPayload struct { ObjectKind string `json:"object_kind"` User User `json:"user"` Project Project `json:"project"` Commit Commit `json:"commit"` ObjectAttributes ObjectAttributes `json:"object_attributes"` Jobs []Job `json:"jobs"` }
PipelineEventPayload contains the information for GitLab's pipeline status change event
type Position ¶
type Position struct { BaseSHA string `json:"base_sha"` StartSHA string `json:"start_sha"` HeadSHA string `json:"head_sha"` OldPath string `json:"old_path"` NewPath string `json:"new_path"` PositionType string `json:"position_type"` OldLine int64 `json:"old_line"` NewLine int64 `json:"new_line"` Width int64 `json:"width"` Height int64 `json:"height"` X int64 `json:"x"` Y int64 `json:"y"` }
Position defines a specific location, identified by paths line numbers and image coordinates, within a specific diff, identified by start, head and base commit ids.
Text position will have: new_line and old_line Image position will have: width, height, x, y
type Project ¶
type Project struct { Name string `json:"name"` Description string `json:"description"` WebURL string `json:"web_url"` AvatarURL string `json:"avatar_url"` GitSSSHURL string `json:"git_ssh_url"` GitHTTPURL string `json:"git_http_url"` Namespace string `json:"namespace"` VisibilityLevel int64 `json:"visibility_level"` PathWithNamespace string `json:"path_with_namespace"` DefaultBranch string `json:"default_branch"` Homepage string `json:"homepage"` URL string `json:"url"` SSHURL string `json:"ssh_url"` HTTPURL string `json:"http_url"` }
Project contains all of the GitLab project information
type PushEventPayload ¶
type PushEventPayload struct { ObjectKind string `json:"object_kind"` Before string `json:"before"` After string `json:"after"` Ref string `json:"ref"` CheckoutSHA string `json:"checkout_sha"` UserID int64 `json:"user_id"` UserName string `json:"user_name"` UserEmail string `json:"user_email"` UserAvatar string `json:"user_avatar"` ProjectID int64 `json:"project_id"` Project Project `json:"Project"` Repository Repository `json:"repository"` Commits []Commit `json:"commits"` TotalCommitsCount int64 `json:"total_commits_count"` }
PushEventPayload contains the information for GitLab's push event
type Repository ¶
type Repository struct { Name string `json:"name"` URL string `json:"url"` Description string `json:"description"` Homepage string `json:"homepage"` }
Repository contains all of the GitLab repository information
type Runner ¶
type Runner struct { ID int64 `json:"id"` Description string `json:"description"` Active bool `json:"active"` }
Runner represents a runner agent
type Snippet ¶
type Snippet struct { ID int64 `json:"id"` Title string `json:"title"` Content string `json:"content"` AuthorID int64 `json:"author_id"` ProjectID int64 `json:"project_id"` CreatedAt customTime `json:"created_at"` UpdatedAt customTime `json:"updated_at"` FileName string `json:"file_name"` ExpiresAt customTime `json:"expires_at"` Type string `json:"type"` VisibilityLevel int64 `json:"visibility_level"` }
Snippet contains all of the GitLab snippet information
type Source ¶
type Source struct { Name string `json:"name"` Description string `json:"description"` WebURL string `json:"web_url"` AvatarURL string `json:"avatar_url"` GitSSHURL string `json:"git_ssh_url"` GitHTTPURL string `json:"git_http_url"` Namespace string `json:"namespace"` VisibilityLevel int64 `json:"visibility_level"` PathWithNamespace string `json:"path_with_namespace"` DefaultBranch string `json:"default_branch"` Homepage string `json:"homepage"` URL string `json:"url"` SSHURL string `json:"ssh_url"` HTTPURL string `json:"http_url"` }
Source contains all of the GitLab source information
type StDiff ¶
type StDiff struct { Diff string `json:"diff"` NewPath string `json:"new_path"` OldPath string `json:"old_path"` AMode string `json:"a_mode"` BMode string `json:"b_mode"` NewFile bool `json:"new_file"` RenamedFile bool `json:"renamed_file"` DeletedFile bool `json:"deleted_file"` }
StDiff contains all of the GitLab diff information
type SystemHookPayload ¶
type SystemHookPayload struct {
ObjectKind string `json:"object_kind"`
}
SystemHookPayload contains the ObjectKind to match with real hook events
type TagEventPayload ¶
type TagEventPayload struct { ObjectKind string `json:"object_kind"` Before string `json:"before"` After string `json:"after"` Ref string `json:"ref"` CheckoutSHA string `json:"checkout_sha"` UserID int64 `json:"user_id"` UserName string `json:"user_name"` UserAvatar string `json:"user_avatar"` ProjectID int64 `json:"project_id"` Project Project `json:"Project"` Repository Repository `json:"repository"` Commits []Commit `json:"commits"` TotalCommitsCount int64 `json:"total_commits_count"` }
TagEventPayload contains the information for GitLab's tag push event
type Target ¶
type Target struct { Name string `json:"name"` Description string `json:"description"` WebURL string `json:"web_url"` AvatarURL string `json:"avatar_url"` GitSSHURL string `json:"git_ssh_url"` GitHTTPURL string `json:"git_http_url"` Namespace string `json:"namespace"` VisibilityLevel int64 `json:"visibility_level"` PathWithNamespace string `json:"path_with_namespace"` DefaultBranch string `json:"default_branch"` Homepage string `json:"homepage"` URL string `json:"url"` SSHURL string `json:"ssh_url"` HTTPURL string `json:"http_url"` }
Target contains all of the GitLab target information
type User ¶
type User struct { Name string `json:"name"` UserName string `json:"username"` AvatarURL string `json:"avatar_url"` }
User contains all of the GitLab user information
type Webhook ¶
type Webhook struct {
// contains filtered or unexported fields
}
Webhook instance contains all methods needed to process events
type WebhookOptions ¶
type WebhookOptions struct{}
WebhookOptions is a namespace for configuration option methods
func (WebhookOptions) Secret ¶
func (WebhookOptions) Secret(secret string) Option
Secret registers the GitLab secret
type Wiki ¶
type Wiki struct { WebURL string `json:"web_url"` GitSSHURL string `json:"git_ssh_url"` GitHTTPURL string `json:"git_http_url"` PathWithNamespace string `json:"path_with_namespace"` DefaultBranch string `json:"default_branch"` }
Wiki contains all of the GitLab wiki information
type WikiPageEventPayload ¶
type WikiPageEventPayload struct { ObjectKind string `json:"object_kind"` User User `json:"user"` Project Project `json:"project"` Wiki Wiki `json:"wiki"` ObjectAttributes ObjectAttributes `json:"object_attributes"` }
WikiPageEventPayload contains the information for GitLab's wiki created/updated event