Skip to content

Commit f7e1e0e

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

File tree

2 files changed

+11
-0
lines changed

2 files changed

+11
-0
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
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,7 @@ class UsersTest < ActiveSupport::TestCase
156156
assert_nil user.email
157157
end
158158

159+
# here
159160
test "find_or_create_from_github handles user 403" do
160161
Shipit.preferred_org_emails = [@org_domain]
161162
Octokit::Client.any_instance.expects(:emails).raises(Octokit::Forbidden)
@@ -203,6 +204,14 @@ class UsersTest < ActiveSupport::TestCase
203204
assert_equal '[email protected]', user.email
204205
end
205206

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

0 commit comments

Comments
 (0)