Skip to content

Commit 067410e

Browse files
committed
rescue forbidden user github error
1 parent d5cf443 commit 067410e

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

app/models/shipit/user.rb

+2
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,8 @@ def refresh_from_github!
9595
update!(github_user: Shipit.github.api.user(github_id))
9696
rescue Octokit::NotFound
9797
identify_renamed_user!
98+
rescue Octokit::Forbidden
99+
Rails.logger.info("User #{name}, github_id #{github_id} has forbidden access to their GitHub, likely deleted.")
98100
end
99101

100102
def github_user=(github_user)

test/models/users_test.rb

+9-1
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ class UsersTest < ActiveSupport::TestCase
155155
user = User.find_or_create_from_github(@minimal_github_user)
156156
assert_nil user.email
157157
end
158-
158+
159159
test "find_or_create_from_github handles user 403" do
160160
Shipit.preferred_org_emails = [@org_domain]
161161
Octokit::Client.any_instance.expects(:emails).raises(Octokit::Forbidden)
@@ -203,6 +203,14 @@ class UsersTest < ActiveSupport::TestCase
203203
assert_equal '[email protected]', user.email
204204
end
205205

206+
test "#refresh_from_github! logs deleted users" do
207+
Shipit.github.api.expects(:user).with(@user.github_id).raises(Octokit::Forbidden)
208+
209+
Rails.logger.expects(:info).with("User #{@user.name}, github_id #{@user.github_id} has forbidden access to their GitHub, likely deleted.")
210+
211+
@user.refresh_from_github!
212+
end
213+
206214
test "#github_api uses the user's access token" do
207215
assert_equal @user.github_access_token, @user.github_api.access_token
208216
end

0 commit comments

Comments
 (0)