From 199448781a0db5a5e07af7235fb3de007db7febc Mon Sep 17 00:00:00 2001 From: Robert Speicher Date: Thu, 24 Sep 2015 19:41:58 +0000 Subject: [PATCH] Merge branch 'get-ci-token-from-ci-projects' into 'master' Get CI token from ci projects This fixes problem when GitLabCiService had different token than stored in Ci::Project. See merge request !1425 --- app/models/project_services/gitlab_ci_service.rb | 8 ++++++-- app/services/ci/create_project_service.rb | 2 +- spec/lib/gitlab/backend/grack_auth_spec.rb | 5 ++++- spec/requests/api/projects_spec.rb | 2 +- 4 files changed, 12 insertions(+), 5 deletions(-) diff --git a/app/models/project_services/gitlab_ci_service.rb b/app/models/project_services/gitlab_ci_service.rb index 9e2b3bcd87..40dd1b44d0 100644 --- a/app/models/project_services/gitlab_ci_service.rb +++ b/app/models/project_services/gitlab_ci_service.rb @@ -19,8 +19,6 @@ # class GitlabCiService < CiService - prop_accessor :token - after_save :compose_service_hook, if: :activated? def compose_service_hook @@ -51,6 +49,12 @@ class GitlabCiService < CiService end end + def token + if project.gitlab_ci_project.present? + project.gitlab_ci_project.token + end + end + def get_ci_commit(sha, ref) Ci::Project.find(project.gitlab_ci_project).commits.find_by_sha_and_ref!(sha, ref) end diff --git a/app/services/ci/create_project_service.rb b/app/services/ci/create_project_service.rb index 839d3f6b44..f42babd238 100644 --- a/app/services/ci/create_project_service.rb +++ b/app/services/ci/create_project_service.rb @@ -10,7 +10,7 @@ module Ci gl_project = ::Project.find(@project.gitlab_id) gl_project.build_missing_services - gl_project.gitlab_ci_service.update_attributes(active: true, token: @project.token) + gl_project.gitlab_ci_service.update_attributes(active: true) end if forked_project diff --git a/spec/lib/gitlab/backend/grack_auth_spec.rb b/spec/lib/gitlab/backend/grack_auth_spec.rb index 9bed8f8ee5..829a9c197e 100644 --- a/spec/lib/gitlab/backend/grack_auth_spec.rb +++ b/spec/lib/gitlab/backend/grack_auth_spec.rb @@ -175,11 +175,14 @@ describe Grack::Auth do context "when a gitlab ci token is provided" do let(:token) { "123" } + let(:gitlab_ci_project) { FactoryGirl.create :ci_project, token: token } before do + project.gitlab_ci_project = gitlab_ci_project + project.save + gitlab_ci_service = project.build_gitlab_ci_service gitlab_ci_service.active = true - gitlab_ci_service.token = token gitlab_ci_service.save env["HTTP_AUTHORIZATION"] = ActionController::HttpAuthentication::Basic.encode_credentials("gitlab-ci-token", token) diff --git a/spec/requests/api/projects_spec.rb b/spec/requests/api/projects_spec.rb index 3007a15b0b..580bbec77d 100644 --- a/spec/requests/api/projects_spec.rb +++ b/spec/requests/api/projects_spec.rb @@ -89,7 +89,7 @@ describe API::API, api: true do it 'returns projects in the correct order when ci_enabled_first parameter is passed' do [project, project2, project3].each{ |project| project.build_missing_services } - project2.gitlab_ci_service.update(active: true, token: "token") + project2.gitlab_ci_service.update(active: true) get api('/projects', user), { ci_enabled_first: 'true' } expect(response.status).to eq(200) expect(json_response).to be_an Array