Commit 3275c783dcc9af3f8431186ab6feb58a150597bc

Authored by Leandro Santos
1 parent e1f5af1a

add hook for gitlab projects

plugins/serpro_integration/lib/ext/community.rb
... ... @@ -24,8 +24,9 @@ class Community
24 24  
25 25 if allow_jenkins_integration
26 26 jenkins_integration = SerproIntegrationPlugin::JenkinsIntegration.new(jenkins_host, jenkins_private_token, jenkins_user)
  27 +
27 28 jenkins_integration.create_jenkis_project(self, gitlab_project.path_with_namespace, gitlab_project.web_url, gitlab_project.http_url_to_repo)
28   - gitlab_integration.create_jenkins_hook(jenkins_integration.project_url)
  29 + gitlab_integration.create_jenkins_hook(jenkins_integration.host)
29 30 end
30 31  
31 32 end
... ...
plugins/serpro_integration/lib/serpro_integration_plugin/gitlab_integration.rb
... ... @@ -63,8 +63,8 @@ class SerproIntegrationPlugin::GitlabIntegration
63 63 end
64 64  
65 65  
66   - def create_jenkins_hook(jenkins_project_url)
67   - @client.add_project_hook(@project.id, "#{jenkins_project_url}/gitlab/build_now")
  66 + def create_jenkins_hook(jenkins_host)
  67 + @client.add_project_hook(@project.id, "#{jenkins_host}/gitlab/build_now")
68 68 end
69 69  
70 70 end
... ...
plugins/serpro_integration/lib/serpro_integration_plugin/jenkins_integration.rb
... ... @@ -3,21 +3,25 @@ require 'jenkins_api_client'
3 3  
4 4 class SerproIntegrationPlugin::JenkinsIntegration
5 5  
  6 + attr_accessor :host, :project_name, :user, :private_token, :profile
  7 +
6 8 def initialize(host, private_token, user)
7 9 @client = JenkinsApi::Client.new(:server_url => host, :password => private_token, :username => user)
8 10 @profile = nil
9   -
  11 + @host = host
  12 + @user = user
  13 + @private_token = private_token
10 14 end
11 15  
12 16 def project_url
13   - "#{jenkins_host}/#{jenkins_project_name}"
  17 + "#{host}/#{project_name}"
14 18 end
15 19  
16 20 #FIXME make jenkins integration works
17 21 def create_jenkis_project(profile, repository_path, web_url, git_url)
18 22 @profile = profile
19 23 #begin
20   - project_name = repository_path.split('/').last
  24 + @project_name = repository_path.split('/').last
21 25 if @client.job.list(project_name).blank?
22 26 @client.job.create(profile.jenkins_project_name, xml_jenkins(repository_path, web_url, git_url))
23 27 end
... ...