Less verbose HipChat integration

Whenever a push with a lot of merges is made, the HipChat channel gets
overwhelmed. It is easy to loose everything else in all the GitLab
messages. It makes more sense to limit the number of commits shown.

The same problem happens with longer commit messages (like this one). It
will be useful to show only the subject of the commit message, not the
full one.
This commit is contained in:
Stefan Kanev 2014-07-29 11:04:19 +03:00
parent d30454e112
commit 1cf1e7bedb
1 changed files with 9 additions and 2 deletions

View File

@ -18,6 +18,8 @@
#
class HipchatService < Service
MAX_COMMITS = 3
validates :token, presence: true, if: :activated?
def title
@ -64,8 +66,13 @@ class HipchatService < Service
message << "pushed to branch <a href=\"#{project.web_url}/commits/#{ref}\">#{ref}</a> "
message << "of <a href=\"#{project.web_url}\">#{project.name_with_namespace.gsub!(/\s/,'')}</a> "
message << "(<a href=\"#{project.web_url}/compare/#{before}...#{after}\">Compare changes</a>)"
for commit in push[:commits] do
message << "<br /> - #{commit[:message]} (<a href=\"#{commit[:url]}\">#{commit[:id][0..5]}</a>)"
push[:commits].take(MAX_COMMITS).each do |commit|
message << "<br /> - #{commit[:message].lines.first} (<a href=\"#{commit[:url]}\">#{commit[:id][0..5]}</a>)"
end
if push[:commits].count > MAX_COMMITS
message << "<br />... #{push[:commits].count - MAX_COMMITS} more commits"
end
end