1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
# frozen_string_literal: true
module Ci
module JobTokenScopeHelpers
def create_project_in_allowlist(root_project, direction:, target_project: nil)
included_project = target_project || create(:project,
ci_outbound_job_token_scope_enabled: true,
ci_inbound_job_token_scope_enabled: true
)
create(
:ci_job_token_project_scope_link,
source_project: root_project,
target_project: included_project,
direction: direction
)
included_project
end
def create_project_in_both_allowlists(root_project)
create_project_in_allowlist(root_project, direction: :outbound).tap do |new_project|
create_project_in_allowlist(root_project, target_project: new_project, direction: :inbound)
end
end
def create_inbound_accessible_project(project)
create(:project).tap do |accessible_project|
add_inbound_accessible_linkage(project, accessible_project)
end
end
def create_inbound_and_outbound_accessible_project(project)
create(:project).tap do |accessible_project|
make_project_fully_accessible(project, accessible_project)
end
end
def make_project_fully_accessible(project, accessible_project)
add_outbound_accessible_linkage(project, accessible_project)
add_inbound_accessible_linkage(project, accessible_project)
end
def add_outbound_accessible_linkage(project, accessible_project)
create(
:ci_job_token_project_scope_link,
source_project: project,
target_project: accessible_project,
direction: :outbound
)
end
def add_inbound_accessible_linkage(project, accessible_project)
create(
:ci_job_token_project_scope_link,
source_project: accessible_project,
target_project: project,
direction: :inbound
)
end
end
end
|