Skip to content

Commit 17053cc

Browse files
committed
create the parent team if not found (mkdir -p) style
1 parent c2c4c99 commit 17053cc

File tree

1 file changed

+13
-2
lines changed

1 file changed

+13
-2
lines changed

lib/entitlements/backend/github_team/service.rb

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -271,8 +271,19 @@ def create_team(entitlement_group:)
271271
begin
272272
entitlement_metadata = entitlement_group.metadata
273273
unless entitlement_metadata["parent_team_name"].nil?
274-
parent_team_data = graphql_team_data(entitlement_metadata["parent_team_name"])
275-
team_options[:parent_team_id] = parent_team_data[:team_id]
274+
275+
begin
276+
parent_team_data = graphql_team_data(entitlement_metadata["parent_team_name"])
277+
team_options[:parent_team_id] = parent_team_data[:team_id]
278+
rescue TeamNotFound
279+
# if the parent team does not exist, create it (think `mkdir -p` logic here)
280+
result = octokit.create_team(
281+
org,
282+
{ name: entitlement_metadata["parent_team_name"], repo_names: [], privacy: "closed" }
283+
)
284+
team_options[:parent_team_id] = result[:id]
285+
end
286+
276287
Entitlements.logger.debug "create_team(team=#{team_name}) Parent team #{entitlement_metadata["parent_team_name"]} with id #{parent_team_data[:team_id]} found"
277288
end
278289
rescue Entitlements::Models::Group::NoMetadata

0 commit comments

Comments
 (0)