{"action":"created","comment":{"url":"https://api.github.com/repos/gitlabhq/gitlabhq/pulls/comments/24228483","id":24228483,"diff_hunk":"@@ -0,0 +1,148 @@\n+# == Schema Information\n+#\n+# Table name: services\n+#\n+#  id         :integer          not null, primary key\n+#  type       :string(255)\n+#  title      :string(255)\n+#  project_id :integer          not null\n+#  created_at :datetime\n+#  updated_at :datetime\n+#  active     :boolean          default(FALSE), not null\n+#  properties :text\n+#\n+\n+require 'uri'\n+require 'socket'\n+\n+class IrkerService < Service\n+  prop_accessor :colorize_messages, :recipients, :channels\n+  validates :recipients, presence: true, if: :activated?\n+  validate :check_recipients_count, if: :activated?\n+\n+  before_validation :get_channels\n+\n+  def title\n+    'Irker (IRC gateway)'\n+  end\n+\n+  def description\n+    'Send IRC messages, on update, to a list of recipients through an Irker '\\\n+    'gateway.'\n+  end\n+\n+  def help\n+    msg = 'Recipients have to be specified with a full URI: '\\\n+    'irc[s]://irc.network.net[:port]/#channel. Special cases: if you want '\\\n+    'the channel to be a nickname instead, append \",isnick\" to the channel '\\\n+    'name; if the channel is protected by a secret password, append '\\\n+    '\"?key=secretpassword\" to the URI.'\n+\n+    begin\n+      default_irc = Gitlab.config.irker['default_irc_uri']\n+    rescue Settingslogic::MissingSetting","path":"app/models/project_services/irker_service.rb","position":43,"original_position":43,"commit_id":"7f249d888d40d5934ba9e21397180fde4e6a1aeb","original_commit_id":"6d73cb720c1aef53e097975d038d2fbdf5318411","user":{"login":"jvanbaarsen","id":1362793,"avatar_url":"https://avatars.githubusercontent.com/u/1362793?v=3","gravatar_id":"","url":"https://api.github.com/users/jvanbaarsen","html_url":"https://github.com/jvanbaarsen","followers_url":"https://api.github.com/users/jvanbaarsen/followers","following_url":"https://api.github.com/users/jvanbaarsen/following{/other_user}","gists_url":"https://api.github.com/users/jvanbaarsen/gists{/gist_id}","starred_url":"https://api.github.com/users/jvanbaarsen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jvanbaarsen/subscriptions","organizations_url":"https://api.github.com/users/jvanbaarsen/orgs","repos_url":"https://api.github.com/users/jvanbaarsen/repos","events_url":"https://api.github.com/users/jvanbaarsen/events{/privacy}","received_events_url":"https://api.github.com/users/jvanbaarsen/received_events","type":"User","site_admin":false},"body":"ok! :)","created_at":"2015-02-06T08:47:49Z","updated_at":"2015-02-06T08:47:49Z","html_url":"https://github.com/gitlabhq/gitlabhq/pull/8735#discussion_r24228483","pull_request_url":"https://api.github.com/repos/gitlabhq/gitlabhq/pulls/8735","_links":{"self":{"href":"https://api.github.com/repos/gitlabhq/gitlabhq/pulls/comments/24228483"},"html":{"href":"https://github.com/gitlabhq/gitlabhq/pull/8735#discussion_r24228483"},"pull_request":{"href":"https://api.github.com/repos/gitlabhq/gitlabhq/pulls/8735"}}},"pull_request":{"url":"https://api.github.com/repos/gitlabhq/gitlabhq/pulls/8735","id":28679908,"html_url":"https://github.com/gitlabhq/gitlabhq/pull/8735","diff_url":"https://github.com/gitlabhq/gitlabhq/pull/8735.diff","patch_url":"https://github.com/gitlabhq/gitlabhq/pull/8735.patch","issue_url":"https://api.github.com/repos/gitlabhq/gitlabhq/issues/8735","number":8735,"state":"open","locked":false,"title":"Add Irker service","user":{"login":"Aorimn","id":1292923,"avatar_url":"https://avatars.githubusercontent.com/u/1292923?v=3","gravatar_id":"","url":"https://api.github.com/users/Aorimn","html_url":"https://github.com/Aorimn","followers_url":"https://api.github.com/users/Aorimn/followers","following_url":"https://api.github.com/users/Aorimn/following{/other_user}","gists_url":"https://api.github.com/users/Aorimn/gists{/gist_id}","starred_url":"https://api.github.com/users/Aorimn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Aorimn/subscriptions","organizations_url":"https://api.github.com/users/Aorimn/orgs","repos_url":"https://api.github.com/users/Aorimn/repos","events_url":"https://api.github.com/users/Aorimn/events{/privacy}","received_events_url":"https://api.github.com/users/Aorimn/received_events","type":"User","site_admin":false},"body":"Irker is a gateway which sends IRC messages on git updates. This new\r\nservice provides an interface to this gateway, integrated in Gitlab, for\r\neach updates.\r\nAs per the guidelines, this commit adds the new feature in the\r\nCHANGELOG and tests.\r\n\r\nSee http://www.catb.org/esr/irker/","created_at":"2015-02-04T22:08:26Z","updated_at":"2015-02-06T08:47:49Z","closed_at":null,"merged_at":null,"merge_commit_sha":"061c5354dca8ccc84e298af120a413c7aee57dfe","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/gitlabhq/gitlabhq/pulls/8735/commits","review_comments_url":"https://api.github.com/repos/gitlabhq/gitlabhq/pulls/8735/comments","review_comment_url":"https://api.github.com/repos/gitlabhq/gitlabhq/pulls/comments/{number}","comments_url":"https://api.github.com/repos/gitlabhq/gitlabhq/issues/8735/comments","statuses_url":"https://api.github.com/repos/gitlabhq/gitlabhq/statuses/7f249d888d40d5934ba9e21397180fde4e6a1aeb","head":{"label":"Aorimn:add-irker-service","ref":"add-irker-service","sha":"7f249d888d40d5934ba9e21397180fde4e6a1aeb","user":{"login":"Aorimn","id":1292923,"avatar_url":"https://avatars.githubusercontent.com/u/1292923?v=3","gravatar_id":"","url":"https://api.github.com/users/Aorimn","html_url":"https://github.com/Aorimn","followers_url":"https://api.github.com/users/Aorimn/followers","following_url":"https://api.github.com/users/Aorimn/following{/other_user}","gists_url":"https://api.github.com/users/Aorimn/gists{/gist_id}","starred_url":"https://api.github.com/users/Aorimn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Aorimn/subscriptions","organizations_url":"https://api.github.com/users/Aorimn/orgs","repos_url":"https://api.github.com/users/Aorimn/repos","events_url":"https://api.github.com/users/Aorimn/events{/privacy}","received_events_url":"https://api.github.com/users/Aorimn/received_events","type":"User","site_admin":false},"repo":{"id":30191070,"name":"gitlabhq","full_name":"Aorimn/gitlabhq","owner":{"login":"Aorimn","id":1292923,"avatar_url":"https://avatars.githubusercontent.com/u/1292923?v=3","gravatar_id":"","url":"https://api.github.com/users/Aorimn","html_url":"https://github.com/Aorimn","followers_url":"https://api.github.com/users/Aorimn/followers","following_url":"https://api.github.com/users/Aorimn/following{/other_user}","gists_url":"https://api.github.com/users/Aorimn/gists{/gist_id}","starred_url":"https://api.github.com/users/Aorimn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Aorimn/subscriptions","organizations_url":"https://api.github.com/users/Aorimn/orgs","repos_url":"https://api.github.com/users/Aorimn/repos","events_url":"https://api.github.com/users/Aorimn/events{/privacy}","received_events_url":"https://api.github.com/users/Aorimn/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/Aorimn/gitlabhq","description":"Open source software to collaborate on code. Follow us on twitter @gitlab","fork":true,"url":"https://api.github.com/repos/Aorimn/gitlabhq","forks_url":"https://api.github.com/repos/Aorimn/gitlabhq/forks","keys_url":"https://api.github.com/repos/Aorimn/gitlabhq/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Aorimn/gitlabhq/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Aorimn/gitlabhq/teams","hooks_url":"https://api.github.com/repos/Aorimn/gitlabhq/hooks","issue_events_url":"https://api.github.com/repos/Aorimn/gitlabhq/issues/events{/number}","events_url":"https://api.github.com/repos/Aorimn/gitlabhq/events","assignees_url":"https://api.github.com/repos/Aorimn/gitlabhq/assignees{/user}","branches_url":"https://api.github.com/repos/Aorimn/gitlabhq/branches{/branch}","tags_url":"https://api.github.com/repos/Aorimn/gitlabhq/tags","blobs_url":"https://api.github.com/repos/Aorimn/gitlabhq/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Aorimn/gitlabhq/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Aorimn/gitlabhq/git/refs{/sha}","trees_url":"https://api.github.com/repos/Aorimn/gitlabhq/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Aorimn/gitlabhq/statuses/{sha}","languages_url":"https://api.github.com/repos/Aorimn/gitlabhq/languages","stargazers_url":"https://api.github.com/repos/Aorimn/gitlabhq/stargazers","contributors_url":"https://api.github.com/repos/Aorimn/gitlabhq/contributors","subscribers_url":"https://api.github.com/repos/Aorimn/gitlabhq/subscribers","subscription_url":"https://api.github.com/repos/Aorimn/gitlabhq/subscription","commits_url":"https://api.github.com/repos/Aorimn/gitlabhq/commits{/sha}","git_commits_url":"https://api.github.com/repos/Aorimn/gitlabhq/git/commits{/sha}","comments_url":"https://api.github.com/repos/Aorimn/gitlabhq/comments{/number}","issue_comment_url":"https://api.github.com/repos/Aorimn/gitlabhq/issues/comments/{number}","contents_url":"https://api.github.com/repos/Aorimn/gitlabhq/contents/{+path}","compare_url":"https://api.github.com/repos/Aorimn/gitlabhq/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Aorimn/gitlabhq/merges","archive_url":"https://api.github.com/repos/Aorimn/gitlabhq/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Aorimn/gitlabhq/downloads","issues_url":"https://api.github.com/repos/Aorimn/gitlabhq/issues{/number}","pulls_url":"https://api.github.com/repos/Aorimn/gitlabhq/pulls{/number}","milestones_url":"https://api.github.com/repos/Aorimn/gitlabhq/milestones{/number}","notifications_url":"https://api.github.com/repos/Aorimn/gitlabhq/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Aorimn/gitlabhq/labels{/name}","releases_url":"https://api.github.com/repos/Aorimn/gitlabhq/releases{/id}","created_at":"2015-02-02T14:35:57Z","updated_at":"2015-02-05T11:03:25Z","pushed_at":"2015-02-05T14:17:02Z","git_url":"git://github.com/Aorimn/gitlabhq.git","ssh_url":"git@github.com:Aorimn/gitlabhq.git","clone_url":"https://github.com/Aorimn/gitlabhq.git","svn_url":"https://github.com/Aorimn/gitlabhq","homepage":"https://about.gitlab.com/","size":88571,"stargazers_count":0,"watchers_count":0,"language":"Ruby","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"gitlabhq:master","ref":"master","sha":"31323205bcc3ed663e7a1c5be4c5e5bd5b9ec5a6","user":{"login":"gitlabhq","id":1086321,"avatar_url":"https://avatars.githubusercontent.com/u/1086321?v=3","gravatar_id":"","url":"https://api.github.com/users/gitlabhq","html_url":"https://github.com/gitlabhq","followers_url":"https://api.github.com/users/gitlabhq/followers","following_url":"https://api.github.com/users/gitlabhq/following{/other_user}","gists_url":"https://api.github.com/users/gitlabhq/gists{/gist_id}","starred_url":"https://api.github.com/users/gitlabhq/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gitlabhq/subscriptions","organizations_url":"https://api.github.com/users/gitlabhq/orgs","repos_url":"https://api.github.com/users/gitlabhq/repos","events_url":"https://api.github.com/users/gitlabhq/events{/privacy}","received_events_url":"https://api.github.com/users/gitlabhq/received_events","type":"Organization","site_admin":false},"repo":{"id":2500088,"name":"gitlabhq","full_name":"gitlabhq/gitlabhq","owner":{"login":"gitlabhq","id":1086321,"avatar_url":"https://avatars.githubusercontent.com/u/1086321?v=3","gravatar_id":"","url":"https://api.github.com/users/gitlabhq","html_url":"https://github.com/gitlabhq","followers_url":"https://api.github.com/users/gitlabhq/followers","following_url":"https://api.github.com/users/gitlabhq/following{/other_user}","gists_url":"https://api.github.com/users/gitlabhq/gists{/gist_id}","starred_url":"https://api.github.com/users/gitlabhq/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gitlabhq/subscriptions","organizations_url":"https://api.github.com/users/gitlabhq/orgs","repos_url":"https://api.github.com/users/gitlabhq/repos","events_url":"https://api.github.com/users/gitlabhq/events{/privacy}","received_events_url":"https://api.github.com/users/gitlabhq/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/gitlabhq/gitlabhq","description":"Open source software to collaborate on code. Follow us on twitter @gitlab","fork":false,"url":"https://api.github.com/repos/gitlabhq/gitlabhq","forks_url":"https://api.github.com/repos/gitlabhq/gitlabhq/forks","keys_url":"https://api.github.com/repos/gitlabhq/gitlabhq/keys{/key_id}","collaborators_url":"https://api.github.com/repos/gitlabhq/gitlabhq/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/gitlabhq/gitlabhq/teams","hooks_url":"https://api.github.com/repos/gitlabhq/gitlabhq/hooks","issue_events_url":"https://api.github.com/repos/gitlabhq/gitlabhq/issues/events{/number}","events_url":"https://api.github.com/repos/gitlabhq/gitlabhq/events","assignees_url":"https://api.github.com/repos/gitlabhq/gitlabhq/assignees{/user}","branches_url":"https://api.github.com/repos/gitlabhq/gitlabhq/branches{/branch}","tags_url":"https://api.github.com/repos/gitlabhq/gitlabhq/tags","blobs_url":"https://api.github.com/repos/gitlabhq/gitlabhq/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/gitlabhq/gitlabhq/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/gitlabhq/gitlabhq/git/refs{/sha}","trees_url":"https://api.github.com/repos/gitlabhq/gitlabhq/git/trees{/sha}","statuses_url":"https://api.github.com/repos/gitlabhq/gitlabhq/statuses/{sha}","languages_url":"https://api.github.com/repos/gitlabhq/gitlabhq/languages","stargazers_url":"https://api.github.com/repos/gitlabhq/gitlabhq/stargazers","contributors_url":"https://api.github.com/repos/gitlabhq/gitlabhq/contributors","subscribers_url":"https://api.github.com/repos/gitlabhq/gitlabhq/subscribers","subscription_url":"https://api.github.com/repos/gitlabhq/gitlabhq/subscription","commits_url":"https://api.github.com/repos/gitlabhq/gitlabhq/commits{/sha}","git_commits_url":"https://api.github.com/repos/gitlabhq/gitlabhq/git/commits{/sha}","comments_url":"https://api.github.com/repos/gitlabhq/gitlabhq/comments{/number}","issue_comment_url":"https://api.github.com/repos/gitlabhq/gitlabhq/issues/comments/{number}","contents_url":"https://api.github.com/repos/gitlabhq/gitlabhq/contents/{+path}","compare_url":"https://api.github.com/repos/gitlabhq/gitlabhq/compare/{base}...{head}","merges_url":"https://api.github.com/repos/gitlabhq/gitlabhq/merges","archive_url":"https://api.github.com/repos/gitlabhq/gitlabhq/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/gitlabhq/gitlabhq/downloads","issues_url":"https://api.github.com/repos/gitlabhq/gitlabhq/issues{/number}","pulls_url":"https://api.github.com/repos/gitlabhq/gitlabhq/pulls{/number}","milestones_url":"https://api.github.com/repos/gitlabhq/gitlabhq/milestones{/number}","notifications_url":"https://api.github.com/repos/gitlabhq/gitlabhq/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/gitlabhq/gitlabhq/labels{/name}","releases_url":"https://api.github.com/repos/gitlabhq/gitlabhq/releases{/id}","created_at":"2011-10-02T16:25:27Z","updated_at":"2015-02-06T07:26:57Z","pushed_at":"2015-02-06T05:56:35Z","git_url":"git://github.com/gitlabhq/gitlabhq.git","ssh_url":"git@github.com:gitlabhq/gitlabhq.git","clone_url":"https://github.com/gitlabhq/gitlabhq.git","svn_url":"https://github.com/gitlabhq/gitlabhq","homepage":"https://about.gitlab.com/","size":145909,"stargazers_count":14830,"watchers_count":14830,"language":"Ruby","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":3890,"mirror_url":null,"open_issues_count":748,"forks":3890,"open_issues":748,"watchers":14830,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/gitlabhq/gitlabhq/pulls/8735"},"html":{"href":"https://github.com/gitlabhq/gitlabhq/pull/8735"},"issue":{"href":"https://api.github.com/repos/gitlabhq/gitlabhq/issues/8735"},"comments":{"href":"https://api.github.com/repos/gitlabhq/gitlabhq/issues/8735/comments"},"review_comments":{"href":"https://api.github.com/repos/gitlabhq/gitlabhq/pulls/8735/comments"},"review_comment":{"href":"https://api.github.com/repos/gitlabhq/gitlabhq/pulls/comments/{number}"},"commits":{"href":"https://api.github.com/repos/gitlabhq/gitlabhq/pulls/8735/commits"},"statuses":{"href":"https://api.github.com/repos/gitlabhq/gitlabhq/statuses/7f249d888d40d5934ba9e21397180fde4e6a1aeb"}}}}