← 返回首页
chore: add authentication type to GitlabAuthenticationError by JohnVillalovos · Pull Request #1793 · python-gitlab/python-gitlab · GitHub
Skip to content

Navigation Menu

Toggle navigation
Sign in
Appearance settings
Search or jump to...

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Include my email address so I can be contacted

Saved searches

Use saved searches to filter your results more quickly

Appearance settings
Resetting focus

chore: add authentication type to GitlabAuthenticationError#1793

Draft
JohnVillalovos wants to merge 1 commit into
mainfrom
jlvillal/auth_token_type
Draft

chore: add authentication type to GitlabAuthenticationError#1793
JohnVillalovos wants to merge 1 commit into
mainfrom
jlvillal/auth_token_type

Conversation

Copy link
Copy Markdown
Member

Add the type of authentication used to the GitlabAuthenticationError
exception. Hopefully this will make it easier to help user's debug
authentication issues they run into.

Copy link
Copy Markdown

codecov-commenter commented Jan 2, 2022
edited by codecov Bot
Loading

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 92.04%. Comparing base (c6d7e9a) to head (cce2202).
⚠️ Report is 1333 commits behind head on main.

Additional details and impacted files
@@ Coverage Diff @@ ## main #1793 +/- ## ========================================== + Coverage 92.02% 92.04% +0.01% ========================================== Files 76 76 Lines 4790 4801 +11 ========================================== + Hits 4408 4419 +11 Misses 382 382
Flag Coverage Δ
cli_func_v4 81.35% <75.00%> (-0.02%) ⬇️
py_func_v4 80.08% <33.33%> (-0.13%) ⬇️
unit 83.25% <100.00%> (+0.05%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
gitlab/client.py 90.66% <100.00%> (+0.11%) ⬆️
gitlab/exceptions.py 100.00% <100.00%> (ø)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

JohnVillalovos force-pushed the jlvillal/auth_token_type branch from 51573dc to f1239fd Compare January 3, 2022 06:41
Add the type of authentication used to the GitlabAuthenticationError exception. Hopefully this will make it easier to help user's debug authentication issues they run into.
JohnVillalovos force-pushed the jlvillal/auth_token_type branch from f1239fd to cce2202 Compare January 4, 2022 05:42
Copy link
Copy Markdown
Member

nejch left a comment
edited
Loading

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Choose a reason Spam Abuse Off Topic Outdated Duplicate Resolved Low Quality Hide comment

Thanks John! Just a few ideas from my side on this one :) At the beginning I wasn't quite sure about the use case for this, but for authentication errors might be handy with all the job token confusion.

Especially with the job token we could add a link to the endpoints available or something (e.g. have a mapping for the error message).

Comment thread gitlab/exceptions.py
Comment on lines +55 to +67
def __init__(
self,
error_message: Union[str, bytes] = "",
response_code: Optional[int] = None,
response_body: Optional[bytes] = None,
auth_type: str = "",
) -> None:
super().__init__(
error_message=error_message,
response_code=response_code,
response_body=response_body,
)
self.auth_type = auth_type
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Choose a reason Spam Abuse Off Topic Outdated Duplicate Resolved Low Quality Hide comment

Maybe we could add **kwargs to GitlabError and we don't need to reimplement it here? Just pop it from kwargs?

Comment thread gitlab/client.py
response_code=result.status_code,
error_message=error_message,
response_body=result.content,
auth_type=self.auth_type,
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Choose a reason Spam Abuse Off Topic Outdated Duplicate Resolved Low Quality Hide comment

I think we could actually reuse self.headers and pass it (or just the dict keys) to the exception to infer the auth type, without adding custom variables here.

http_username/http_password is basically dead code as HTTP Basic auth has been out of GitLab since version 10 so we don't need to worry about that (I actually have a local draft that performs password-based OAuth login from that). So we're left with Private-Token, Job-Token, and Authorization (OAuth bearer) from headers. We could probably just pass the keys from the headers dict to not leak stuff accidentally.

Comment thread gitlab/exceptions.py

def __str__(self) -> str:
if self.auth_type:
return f"{super().__str__()}: authentication_type: {self.auth_type}"
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Choose a reason Spam Abuse Off Topic Outdated Duplicate Resolved Low Quality Hide comment

If we decide to infer the auth type automatically I'd maybe reformulate this a bit. Not sure exactly how, just authentication_type sounds like it's a variable name defined/passed somewhere. We can maybe check around how more verbose exceptions do it in cpython or some other libraries.

JohnVillalovos marked this pull request as draft February 12, 2022 16:54
Copy link
Copy Markdown

github-actions Bot commented Jul 9, 2025

This Pull Request (PR) was marked stale because it has been open 90 days with no activity. Please remove the stale label or comment on this PR. Otherwise, it will be closed in 15 days.

github-actions Bot added stale and removed stale labels Jul 9, 2025
Copy link
Copy Markdown

github-actions Bot commented Oct 9, 2025

This Pull Request (PR) was marked stale because it has been open 90 days with no activity. Please remove the stale label or comment on this PR. Otherwise, it will be closed in 15 days.

github-actions Bot added stale and removed stale labels Oct 9, 2025
Copy link
Copy Markdown

github-actions Bot commented Jan 8, 2026

This Pull Request (PR) was marked stale because it has been open 90 days with no activity. Please remove the stale label or comment on this PR. Otherwise, it will be closed in 15 days.

github-actions Bot added the stale label Jan 8, 2026
JohnVillalovos self-assigned this Jan 8, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

Footer

© 2026 GitHub, Inc.