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
if [[ "${BUILD_ASSETS_IMAGE}" != "true" ]]
then
exit 0
exit 0
fi
# Generate the image name based on the project this is being run in
......
......@@ -26,6 +26,9 @@ module Trigger
class Base
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
puts "Triggering downstream pipeline on #{downstream_project_path}"
......@@ -40,7 +43,7 @@ module Trigger
puts "Triggered downstream pipeline: #{pipeline.web_url}\n"
puts "Waiting for downstream pipeline status"
Trigger::CommitComment.post!(pipeline, access_token) if post_comment
Trigger::CommitComment.post!(pipeline) if post_comment
downstream_job =
if downstream_job_name
Gitlab.pipeline_jobs(downstream_project_path, pipeline.id).auto_paginate.find do |potential_job|
......@@ -49,9 +52,9 @@ module Trigger
end
if downstream_job
Trigger::Job.new(downstream_project_path, downstream_job.id, access_token)
Trigger::Job.new(downstream_project_path, downstream_job.id)
else
Trigger::Pipeline.new(downstream_project_path, pipeline.id, access_token)
Trigger::Pipeline.new(downstream_project_path, pipeline.id)
end
end
......@@ -197,9 +200,7 @@ module Trigger
end
class CommitComment
def self.post!(downstream_pipeline, access_token)
Gitlab.private_token = access_token
def self.post!(downstream_pipeline)
Gitlab.create_commit_comment(
ENV['CI_PROJECT_PATH'],
Trigger.non_empty_variable_value('CI_MERGE_REQUEST_SOURCE_BRANCH_SHA') || ENV['CI_COMMIT_SHA'],
......@@ -214,7 +215,7 @@ module Trigger
INTERVAL = 60 # seconds
MAX_DURATION = 3600 * 3 # 3 hours
attr_reader :project, :id, :api_token
attr_reader :project, :id
def self.unscoped_class_name
name.split('::').last
......@@ -224,14 +225,10 @@ module Trigger
unscoped_class_name.downcase
end
def initialize(project, id, api_token)
def initialize(project, id)
@project = project
@id = id
@api_token = api_token
@start = Time.now.to_i
# gitlab-bot's token "GitLab multi-project pipeline polling"
Gitlab.private_token = api_token
end
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