From 1d3a66bc5b372245417111778f15f617b8e9b116 Mon Sep 17 00:00:00 2001 From: Leandro Nunes dos Santos Date: Fri, 25 Jul 2014 12:04:31 -0300 Subject: [PATCH] adding jenkins hook --- plugins/serpro_integration/lib/ext/community.rb | 2 ++ plugins/serpro_integration/lib/serpro_integration_plugin/gitlab_integration.rb | 10 +++++++++- plugins/serpro_integration/lib/serpro_integration_plugin/jenkins_integration.rb | 7 +++++++ 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/plugins/serpro_integration/lib/ext/community.rb b/plugins/serpro_integration/lib/ext/community.rb index 5c46b11..733b959 100644 --- a/plugins/serpro_integration/lib/ext/community.rb +++ b/plugins/serpro_integration/lib/ext/community.rb @@ -25,7 +25,9 @@ class Community if allow_jenkins_integration jenkins_integration = SerproIntegrationPlugin::JenkinsIntegration.new(jenkins_host, jenkins_private_token, jenkins_user) jenkins_integration.create_jenkis_project(self, gitlab_project.path_with_namespace, gitlab_project.web_url, gitlab_project.http_url_to_repo) + gitlab_integration.create_jenkins_hook(jenkins_integration.project_url) end + end end diff --git a/plugins/serpro_integration/lib/serpro_integration_plugin/gitlab_integration.rb b/plugins/serpro_integration/lib/serpro_integration_plugin/gitlab_integration.rb index a5e4d06..45107f2 100644 --- a/plugins/serpro_integration/lib/serpro_integration_plugin/gitlab_integration.rb +++ b/plugins/serpro_integration/lib/serpro_integration_plugin/gitlab_integration.rb @@ -4,12 +4,15 @@ class SerproIntegrationPlugin::GitlabIntegration def initialize(host, private_token) @client = Gitlab.client(:endpoint => host, :private_token => private_token) + @group = nil + @project = nil end def create_group(group_name) #FIXME find group by name group = @client.groups.select {|group| group.name == group_name}.first group ||= @client.create_group(group_name, group_name) + @group = group end def create_project(project_name, group) @@ -31,7 +34,7 @@ class SerproIntegrationPlugin::GitlabIntegration #Create Web Hook for Jenkins' integration #Gitlab.add_project_hook(project.id, "#{self.jenkins[:url]}/gitlab/build_now") end - project + @project = project end def create_user(email, group) @@ -59,4 +62,9 @@ class SerproIntegrationPlugin::GitlabIntegration project = create_project(profile.gitlab_project_name, group) end + + def create_jenkins_hook(jenkins_project_url) + @client.add_project_hook(@project.id, "#{jenkins_project_url}/gitlab/build_now") + end + end diff --git a/plugins/serpro_integration/lib/serpro_integration_plugin/jenkins_integration.rb b/plugins/serpro_integration/lib/serpro_integration_plugin/jenkins_integration.rb index 1f3b940..7654ee6 100644 --- a/plugins/serpro_integration/lib/serpro_integration_plugin/jenkins_integration.rb +++ b/plugins/serpro_integration/lib/serpro_integration_plugin/jenkins_integration.rb @@ -5,10 +5,17 @@ class SerproIntegrationPlugin::JenkinsIntegration def initialize(host, private_token, user) @client = JenkinsApi::Client.new(:server_url => host, :password => private_token, :username => user) + @profile = nil + + end + + def project_url + "#{jenkins_host}/#{jenkins_project_name}" end #FIXME make jenkins integration works def create_jenkis_project(profile, repository_path, web_url, git_url) + @profile = profile #begin project_name = repository_path.split('/').last if @client.job.list(project_name).blank? -- libgit2 0.21.2