Commit 8b953da2 authored by Lin Jen-Shin's avatar Lin Jen-Shin

Set the GitLab access token first

It's always globally set so there's no reason not to set it first.
We need this for checking downstream pipeline when the project is
private like for security.
parent 4daec2a9
# Exit early if we don't want to build the image # Exit early if we don't want to build the image
if [[ "${BUILD_ASSETS_IMAGE}" != "true" ]] if [[ "${BUILD_ASSETS_IMAGE}" != "true" ]]
then then
exit 0 exit 0
fi fi
# Generate the image name based on the project this is being run in # Generate the image name based on the project this is being run in
......
...@@ -26,6 +26,9 @@ module Trigger ...@@ -26,6 +26,9 @@ module Trigger
class Base class Base
def invoke!(post_comment: false, downstream_job_name: nil) def invoke!(post_comment: false, downstream_job_name: nil)
# gitlab-bot's token "GitLab multi-project pipeline polling"
Gitlab.private_token = access_token
pipeline_variables = variables pipeline_variables = variables
puts "Triggering downstream pipeline on #{downstream_project_path}" puts "Triggering downstream pipeline on #{downstream_project_path}"
...@@ -40,7 +43,7 @@ module Trigger ...@@ -40,7 +43,7 @@ module Trigger
puts "Triggered downstream pipeline: #{pipeline.web_url}\n" puts "Triggered downstream pipeline: #{pipeline.web_url}\n"
puts "Waiting for downstream pipeline status" puts "Waiting for downstream pipeline status"
Trigger::CommitComment.post!(pipeline, access_token) if post_comment Trigger::CommitComment.post!(pipeline) if post_comment
downstream_job = downstream_job =
if downstream_job_name if downstream_job_name
Gitlab.pipeline_jobs(downstream_project_path, pipeline.id).auto_paginate.find do |potential_job| Gitlab.pipeline_jobs(downstream_project_path, pipeline.id).auto_paginate.find do |potential_job|
...@@ -49,9 +52,9 @@ module Trigger ...@@ -49,9 +52,9 @@ module Trigger
end end
if downstream_job if downstream_job
Trigger::Job.new(downstream_project_path, downstream_job.id, access_token) Trigger::Job.new(downstream_project_path, downstream_job.id)
else else
Trigger::Pipeline.new(downstream_project_path, pipeline.id, access_token) Trigger::Pipeline.new(downstream_project_path, pipeline.id)
end end
end end
...@@ -197,9 +200,7 @@ module Trigger ...@@ -197,9 +200,7 @@ module Trigger
end end
class CommitComment class CommitComment
def self.post!(downstream_pipeline, access_token) def self.post!(downstream_pipeline)
Gitlab.private_token = access_token
Gitlab.create_commit_comment( Gitlab.create_commit_comment(
ENV['CI_PROJECT_PATH'], ENV['CI_PROJECT_PATH'],
Trigger.non_empty_variable_value('CI_MERGE_REQUEST_SOURCE_BRANCH_SHA') || ENV['CI_COMMIT_SHA'], Trigger.non_empty_variable_value('CI_MERGE_REQUEST_SOURCE_BRANCH_SHA') || ENV['CI_COMMIT_SHA'],
...@@ -214,7 +215,7 @@ module Trigger ...@@ -214,7 +215,7 @@ module Trigger
INTERVAL = 60 # seconds INTERVAL = 60 # seconds
MAX_DURATION = 3600 * 3 # 3 hours MAX_DURATION = 3600 * 3 # 3 hours
attr_reader :project, :id, :api_token attr_reader :project, :id
def self.unscoped_class_name def self.unscoped_class_name
name.split('::').last name.split('::').last
...@@ -224,14 +225,10 @@ module Trigger ...@@ -224,14 +225,10 @@ module Trigger
unscoped_class_name.downcase unscoped_class_name.downcase
end end
def initialize(project, id, api_token) def initialize(project, id)
@project = project @project = project
@id = id @id = id
@api_token = api_token
@start = Time.now.to_i @start = Time.now.to_i
# gitlab-bot's token "GitLab multi-project pipeline polling"
Gitlab.private_token = api_token
end end
def wait! def wait!
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment