diff --git a/common/lib/dependabot/clients/bitbucket.rb b/common/lib/dependabot/clients/bitbucket.rb index 37f04b9c501..95a06f1eddf 100644 --- a/common/lib/dependabot/clients/bitbucket.rb +++ b/common/lib/dependabot/clients/bitbucket.rb @@ -144,7 +144,14 @@ def create_pull_request(repo, pr_name, source_branch, target_branch, end # rubocop:enable Metrics/ParameterLists + def current_user + base_url = "https://api.bitbucket.org/2.0/user?fields=uuid" + response = get(base_url) + JSON.parse(response.body).fetch("uuid") + end + def default_reviewers(repo) + current_uuid = current_user path = "#{repo}/default-reviewers?pagelen=100&fields=values.uuid,next" reviewers_url = base_url + path @@ -153,7 +160,7 @@ def default_reviewers(repo) reviewer_data = [] default_reviewers.each do |reviewer| - reviewer_data.append({ uuid: reviewer.fetch("uuid") }) + reviewer_data.append({ uuid: reviewer.fetch("uuid") }) unless current_uuid == reviewer.fetch("uuid") end reviewer_data diff --git a/common/spec/dependabot/clients/bitbucket_spec.rb b/common/spec/dependabot/clients/bitbucket_spec.rb index 96c9ab671d9..988b85e7217 100644 --- a/common/spec/dependabot/clients/bitbucket_spec.rb +++ b/common/spec/dependabot/clients/bitbucket_spec.rb @@ -4,6 +4,13 @@ require "dependabot/clients/bitbucket" RSpec.describe Dependabot::Clients::Bitbucket do + let(:current_user_url) { "https://api.bitbucket.org/2.0/user?fields=uuid" } + + before(:each) do + stub_request(:get, current_user_url). + with(headers: { "Authorization" => "Bearer #{access_token}" }). + to_return(status: 200, body: fixture("bitbucket", "current_user.json")) + end let(:access_token) { "access_token" } let(:credentials) do [{ @@ -84,4 +91,13 @@ specify { expect { subject }.to_not raise_error } end end + + describe "#remove_current_user_from_default_reviewer" do + subject do + client.current_user + end + specify { expect { subject }.to_not raise_error } + + it { is_expected.to eq("{11111111-6349-0000-aea6-111111111111}") } + end end diff --git a/common/spec/fixtures/bitbucket/current_user.json b/common/spec/fixtures/bitbucket/current_user.json new file mode 100644 index 00000000000..84c24d7c747 --- /dev/null +++ b/common/spec/fixtures/bitbucket/current_user.json @@ -0,0 +1,3 @@ +{ + "uuid": "{11111111-6349-0000-aea6-111111111111}" +} diff --git a/common/spec/fixtures/bitbucket/default_reviewers_with_data.json b/common/spec/fixtures/bitbucket/default_reviewers_with_data.json index 67917e190e9..9f5550cefc9 100644 --- a/common/spec/fixtures/bitbucket/default_reviewers_with_data.json +++ b/common/spec/fixtures/bitbucket/default_reviewers_with_data.json @@ -1,5 +1,6 @@ { - "values": [ - {"uuid": "{00000000-0000-0000-0000-000000000001}", "is_project_reviewer": false} - ] + "values": [ + { "uuid": "{00000000-0000-0000-0000-000000000001}", "is_project_reviewer": false }, + { "uuid": "{11111111-6349-0000-aea6-111111111111}", "is_project_reviewer": false } + ] }