Merge pull request #7754 from Bugagazavr/hooks
More information in merge request hook
This commit is contained in:
commit
03b44916ba
7 changed files with 70 additions and 12 deletions
|
@ -88,6 +88,21 @@ class Commit
|
|||
description.present?
|
||||
end
|
||||
|
||||
def hook_attrs(project)
|
||||
path_with_namespace = project.path_with_namespace
|
||||
|
||||
{
|
||||
id: id,
|
||||
message: safe_message,
|
||||
timestamp: committed_date.xmlschema,
|
||||
url: "#{Gitlab.config.gitlab.url}/#{path_with_namespace}/commit/#{id}",
|
||||
author: {
|
||||
name: author_name,
|
||||
email: author_email
|
||||
}
|
||||
}
|
||||
end
|
||||
|
||||
# Discover issues should be closed when this commit is pushed to a project's
|
||||
# default branch.
|
||||
def closes_issues(project)
|
||||
|
|
|
@ -134,7 +134,7 @@ module Issuable
|
|||
def to_hook_data
|
||||
{
|
||||
object_kind: self.class.name.underscore,
|
||||
object_attributes: self.attributes
|
||||
object_attributes: hook_attrs
|
||||
}
|
||||
end
|
||||
|
||||
|
|
|
@ -48,6 +48,10 @@ class Issue < ActiveRecord::Base
|
|||
state :closed
|
||||
end
|
||||
|
||||
def hook_attrs
|
||||
attributes
|
||||
end
|
||||
|
||||
# Mentionable overrides.
|
||||
|
||||
def gfm_reference
|
||||
|
|
|
@ -211,6 +211,20 @@ class MergeRequest < ActiveRecord::Base
|
|||
Gitlab::Satellite::MergeAction.new(current_user, self).format_patch
|
||||
end
|
||||
|
||||
def hook_attrs
|
||||
attrs = {
|
||||
source: source_project.hook_attrs,
|
||||
target: target_project.hook_attrs,
|
||||
last_commit: nil
|
||||
}
|
||||
|
||||
unless last_commit.nil?
|
||||
attrs.merge!(last_commit: last_commit.hook_attrs(source_project))
|
||||
end
|
||||
|
||||
attributes.merge!(attrs)
|
||||
end
|
||||
|
||||
def for_fork?
|
||||
target_project != source_project
|
||||
end
|
||||
|
|
|
@ -544,6 +544,16 @@ class Project < ActiveRecord::Base
|
|||
end
|
||||
end
|
||||
|
||||
def hook_attrs
|
||||
{
|
||||
name: name,
|
||||
ssh_url: ssh_url_to_repo,
|
||||
http_url: http_url_to_repo,
|
||||
namespace: namespace.name,
|
||||
visibility_level: visibility_level
|
||||
}
|
||||
end
|
||||
|
||||
# Reset events cache related to this project
|
||||
#
|
||||
# Since we do cache @event we need to reset cache in special cases:
|
||||
|
|
|
@ -150,16 +150,7 @@ class GitPushService
|
|||
# will be passed as post receive hook data.
|
||||
#
|
||||
push_commits_limited.each do |commit|
|
||||
data[:commits] << {
|
||||
id: commit.id,
|
||||
message: commit.safe_message,
|
||||
timestamp: commit.committed_date.xmlschema,
|
||||
url: "#{Gitlab.config.gitlab.url}/#{project.path_with_namespace}/commit/#{commit.id}",
|
||||
author: {
|
||||
name: commit.author_name,
|
||||
email: commit.author_email
|
||||
}
|
||||
}
|
||||
data[:commits] << commit.hook_attrs(project)
|
||||
end
|
||||
|
||||
data
|
||||
|
|
|
@ -109,7 +109,31 @@ Triggered when a new merge request is created or an existing merge request was u
|
|||
"merge_status": "unchecked",
|
||||
"target_project_id": 14,
|
||||
"iid": 1,
|
||||
"description": ""
|
||||
"description": "",
|
||||
"source": {
|
||||
"name": "awesome_project",
|
||||
"ssh_url": "ssh://git@example.com/awesome_space/awesome_project.git",
|
||||
"http_url": "http://example.com/awesome_space/awesome_project.git",
|
||||
"visibility_level": 20,
|
||||
"namespace": "awesome_space"
|
||||
},
|
||||
"target": {
|
||||
"name": "awesome_project",
|
||||
"ssh_url": "ssh://git@example.com/awesome_space/awesome_project.git",
|
||||
"http_url": "http://example.com/awesome_space/awesome_project.git",
|
||||
"visibility_level": 20,
|
||||
"namespace": "awesome_space"
|
||||
},
|
||||
"last_commit": {
|
||||
"id": "da1560886d4f094c3e6c9ef40349f7d38b5d27d7",
|
||||
"message": "fixed readme",
|
||||
"timestamp": "2012-01-03T23:36:29+02:00",
|
||||
"url": "http://example.com/awesome_space/awesome_project/commits/da1560886d4f094c3e6c9ef40349f7d38b5d27d7",
|
||||
"author": {
|
||||
"name": "GitLab dev user",
|
||||
"email": "gitlabdev@dv6700.(none)"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
|
Loading…
Reference in a new issue