@@ -112,7 +112,8 @@ type PipelineEventPayload struct {
112112	Project           Project                   `json:"project"` 
113113	Commit            Commit                    `json:"commit"` 
114114	ObjectAttributes  PipelineObjectAttributes  `json:"object_attributes"` 
115- 	Jobs              []Job                     `json:"jobs"` 
115+ 	MergeRequest      MergeRequest              `json:"merge_request"` 
116+ 	Builds            []Build                   `json:"builds"` 
116117}
117118
118119// CommentEventPayload contains the information for GitLab's comment event 
@@ -153,25 +154,27 @@ type BuildEventPayload struct {
153154
154155// JobEventPayload contains the information for GitLab's Job status change 
155156type  JobEventPayload  struct  {
156- 	ObjectKind        string       `json:"object_kind"` 
157- 	Ref               string       `json:"ref"` 
158- 	Tag               bool         `json:"tag"` 
159- 	BeforeSHA         string       `json:"before_sha"` 
160- 	SHA               string       `json:"sha"` 
161- 	JobID             int64        `json:"Job_id"` 
162- 	JobName           string       `json:"Job_name"` 
163- 	JobStage          string       `json:"Job_stage"` 
164- 	JobStatus         string       `json:"Job_status"` 
165- 	JobStartedAt      customTime   `json:"Job_started_at"` 
166- 	JobFinishedAt     customTime   `json:"Job_finished_at"` 
167- 	JobDuration       int64        `json:"Job_duration"` 
168- 	Job               bool         `json:"Job"` 
169- 	JobFailureReason  string       `json:"job_failure_reason"` 
170- 	ProjectID         int64        `json:"project_id"` 
171- 	ProjectName       string       `json:"project_name"` 
172- 	User              User         `json:"user"` 
173- 	Commit            BuildCommit  `json:"commit"` 
174- 	Repository        Repository   `json:"repository"` 
157+ 	ObjectKind          string       `json:"object_kind"` 
158+ 	Ref                 string       `json:"ref"` 
159+ 	Tag                 bool         `json:"tag"` 
160+ 	BeforeSHA           string       `json:"before_sha"` 
161+ 	SHA                 string       `json:"sha"` 
162+ 	BuildID             int64        `json:"build_id"` 
163+ 	BuildName           string       `json:"build_name"` 
164+ 	BuildStage          string       `json:"build_stage"` 
165+ 	BuildStatus         string       `json:"build_status"` 
166+ 	BuildStartedAt      customTime   `json:"build_started_at"` 
167+ 	BuildFinishedAt     customTime   `json:"build_finished_at"` 
168+ 	BuildDuration       int64        `json:"build_duration"` 
169+ 	BuildAllowFailure   bool         `json:"build_allow_failure"` 
170+ 	BuildFailureReason  string       `json:"build_failure_reason"` 
171+ 	PipelineID          int64        `json:"pipeline_id"` 
172+ 	ProjectID           int64        `json:"project_id"` 
173+ 	ProjectName         string       `json:"project_name"` 
174+ 	User                User         `json:"user"` 
175+ 	Commit              BuildCommit  `json:"commit"` 
176+ 	Repository          Repository   `json:"repository"` 
177+ 	Runner              Runner       `json:"runner"` 
175178}
176179
177180// SystemHookPayload contains the ObjectKind to match with real hook events 
@@ -197,8 +200,8 @@ type Issue struct {
197200	IID          int64       `json:"iid"` 
198201}
199202
200- // Job  contains all of the GitLab job  information 
201- type  Job  struct  {
203+ // Build  contains all of the GitLab Build  information 
204+ type  Build  struct  {
202205	ID             int64          `json:"id"` 
203206	Stage          string         `json:"stage"` 
204207	Name           string         `json:"name"` 
@@ -240,6 +243,7 @@ type Wiki struct {
240243type  Commit  struct  {
241244	ID         string      `json:"id"` 
242245	Message    string      `json:"message"` 
246+ 	Title      string      `json:"title"` 
243247	Timestamp  customTime  `json:"timestamp"` 
244248	URL        string      `json:"url"` 
245249	Author     Author      `json:"author"` 
@@ -304,28 +308,40 @@ type Project struct {
304308
305309// Repository contains all of the GitLab repository information 
306310type  Repository  struct  {
307- 	Name         string  `json:"name"` 
308- 	URL          string  `json:"url"` 
309- 	Description  string  `json:"description"` 
310- 	Homepage     string  `json:"homepage"` 
311+ 	Name             string  `json:"name"` 
312+ 	URL              string  `json:"url"` 
313+ 	Description      string  `json:"description"` 
314+ 	Homepage         string  `json:"homepage"` 
315+ 	GitSSHURL        string  `json:"git_ssh_url"` 
316+ 	GitHTTPURL       string  `json:"git_http_url"` 
317+ 	VisibilityLevel  int64   `json:"visibility_level"` 
311318}
312319
313320// ObjectAttributes contains all of the GitLab object attributes information 
314321type  ObjectAttributes  struct  {
315322	ID                int64       `json:"id"` 
316323	Title             string      `json:"title"` 
324+ 	AssigneeIDS       []int64     `json:"assignee_ids"` 
317325	AssigneeID        int64       `json:"assignee_id"` 
318326	AuthorID          int64       `json:"author_id"` 
319327	ProjectID         int64       `json:"project_id"` 
320328	CreatedAt         customTime  `json:"created_at"` 
321329	UpdatedAt         customTime  `json:"updated_at"` 
322- 	ChangePosition    Position    `json:"change_position"` 
323- 	OriginalPosition  Position    `json:"original_position"` 
330+ 	UpdatedByID       int64       `json:"updated_by_id"` 
331+ 	LastEditedAt      customTime  `json:"last_edited_at"` 
332+ 	LastEditedByID    int64       `json:"last_edited_by_id"` 
333+ 	RelativePosition  int64       `json:"relative_position"` 
324334	Position          Position    `json:"position"` 
325335	BranchName        string      `json:"branch_name"` 
326336	Description       string      `json:"description"` 
327337	MilestoneID       int64       `json:"milestone_id"` 
328338	State             string      `json:"state"` 
339+ 	StateID           int64       `json:"state_id"` 
340+ 	Confidential      bool        `json:"confidential"` 
341+ 	DiscussionLocked  bool        `json:"discussion_locked"` 
342+ 	DueDate           customTime  `json:"due_date"` 
343+ 	TimeEstimate      int64       `json:"time_estimate"` 
344+ 	TotalTimeSpent    int64       `json:"total_time_spent"` 
329345	IID               int64       `json:"iid"` 
330346	URL               string      `json:"url"` 
331347	Action            string      `json:"action"` 
@@ -374,6 +390,13 @@ type PipelineObjectAttributes struct {
374390	CreatedAt   customTime  `json:"created_at"` 
375391	FinishedAt  customTime  `json:"finished_at"` 
376392	Duration    int64       `json:"duration"` 
393+ 	Variables   []Variable  `json:"variables"` 
394+ }
395+ 
396+ // Variable contains pipeline variables 
397+ type  Variable  struct  {
398+ 	Key    string  `json:"key"` 
399+ 	Value  string  `json:"value"` 
377400}
378401
379402// Position defines a specific location, identified by paths line numbers and 
@@ -421,6 +444,7 @@ type MergeRequest struct {
421444	LastCommit       LastCommit  `json:"last_commit"` 
422445	WorkInProgress   bool        `json:"work_in_progress"` 
423446	Assignee         Assignee    `json:"assignee"` 
447+ 	URL              string      `json:"url"` 
424448}
425449
426450// Assignee contains all of the GitLab assignee information 
0 commit comments