Skip to content

Commit 6cb78d0

Browse files
committed
Omit reviewers from environment payload when empty
An explicit empty `reviewers: []` was sent to the API, clearing any existing required reviewers on an already-provisioned environment. Treat an empty array like an absent key and omit it from the payload.
1 parent ba3b860 commit 6cb78d0

2 files changed

Lines changed: 19 additions & 1 deletion

File tree

lib/rake_github/tasks/environments/provision.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ def environment_options(client, org, environment)
4545
end
4646

4747
def resolve_reviewers(client, org, reviewers)
48-
return nil if reviewers.nil?
48+
return nil if reviewers.nil? || reviewers.empty?
4949

5050
reviewers.map { |reviewer| resolve_reviewer(client, org, reviewer) }
5151
end

spec/rake_github/tasks/environments/provision_spec.rb

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -267,6 +267,24 @@ def define_task(opts = {}, &block)
267267
.with(repository, 'release', {}))
268268
end
269269

270+
it 'omits reviewers when an empty array is supplied' do
271+
repository = 'org/repo'
272+
273+
client = stub_github_client
274+
275+
define_task(
276+
repository:,
277+
access_token: 'some-token',
278+
environments: [{ name: 'release', reviewers: [] }]
279+
)
280+
281+
Rake::Task['environments:provision'].invoke
282+
283+
expect(client)
284+
.to(have_received(:create_or_update_environment)
285+
.with(repository, 'release', {}))
286+
end
287+
270288
it 'retains falsy optional values such as wait_timer zero' do
271289
repository = 'org/repo'
272290

0 commit comments

Comments
 (0)