- Notifications
You must be signed in to change notification settings - Fork673
feat(cli): allow options from CLI args or environment variables#1296
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Uh oh!
There was an error while loading.Please reload this page.
Conversation
codecov-io commentedFeb 14, 2021
Codecov Report
@@ Coverage Diff @@## master #1296 +/- ##======================================= Coverage 78.26% 78.26% ======================================= Files 12 12 Lines 2894 2894 ======================================= Hits 2265 2265 Misses 629 629
Flags with carried forward coverage won't be shown.Click here to find out more. Continue to review full report at Codecov.
|
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
phillid commentedJul 4, 2021 • edited
Loading Uh oh!
There was an error while loading.Please reload this page.
edited
Uh oh!
There was an error while loading.Please reload this page.
We found this PR after we tried including gitlab-cli in a GitLab CI/CD pipeline job. This PR looks like it will achieve what we wanted to do (drive the GitLab API without creating a config file in each job) 🎉 One outstanding wishlist item we had was if the tool could look for the same environment variables that are set inside a GitLab CI/CD job, i.e. CI_JOB_TOKEN, CI_SERVER_URL and so on1. If the tool shared these varaibles, it could authenticate with the GitLab instance without any extra code written in CI/CD jobs - is that something that has already been considered? |
Yes, part of this was meant to implement zero-config for CI jobs. But I need to maybe tweak and add tests to really check all scenarios (for some endpoints, a PAT is needed, so we should allow overriding in a sensible precedence between cli args/env/config files/CI env). Currently the precedence planned is: python-gitlab/gitlab/__init__.py Lines 224 to 232 incab343c
I'll try to get back to this PR in the coming days :) |
phillid commentedJul 6, 2021
Aha. I'm blind 👀 That does indeed look like exactly the behaviour we wanted. |
cab343c
to13467c5
Comparecodecov-commenter commentedSep 12, 2021 • edited
Loading Uh oh!
There was an error while loading.Please reload this page.
edited
Uh oh!
There was an error while loading.Please reload this page.
Codecov Report
@@ Coverage Diff @@## master #1296 +/- ##==========================================+ Coverage 91.57% 91.61% +0.03%========================================== Files 74 74 Lines 4263 4281 +18 ==========================================+ Hits 3904 3922 +18 Misses 359 359
Flags with carried forward coverage won't be shown.Click here to find out more.
|
13467c5
toa998970
CompareWhat do you think about using For example:
But now that I look at the code I'm not sure where to do the processing to load the environment variable 😟 I'll just leave this comment anyway and maybe it gives you an idea 🤷♂️ |
nejch commentedDec 10, 2021 • edited
Loading Uh oh!
There was an error while loading.Please reload this page.
edited
Uh oh!
There was an error while loading.Please reload this page.
Thanks! Yes, I think it might be useful (not for arg/var exclusive I think but maybe for different types of tokens). But yes sometimes we want to validate those a bit later, because things like CI_JOB_TOKEN might always be present 🤦 I think we just need to write a bunch of tests for expected behaviors in all the possible combinations, and write the code based on that. |
a6390bf
toc60ae1f
Compare14487b3
toc6de2f5
CompareUh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
@JohnVillalovos took almost a year to get back to this, but ready for another look 😅 |
c6de2f5
tofe964dd
CompareThere was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
A few nits. But overall looks good to me. Thanks!
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
BREAKING-CHANGE: The gitlab CLI will now accept CLI argumentsand environment variables for its global options in additionto configuration file options. This may change behavior forsome workflows such as running inside GitLab CI and withcertain environment variables configured.
fe964dd
to1158be3
CompareThere was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
Thanks@nejch . Looks good.
Uh oh!
There was an error while loading.Please reload this page.
Closes#960
Closes#893
Makes it easier to later introduce#715 hopefully, and maybe#1195.
BREAKING-CHANGE: The gitlab CLI will now accept CLI arguments
and environment variables for its global options in addition
to configuration file options. This may change behavior for
some workflows such as running inside GitLab CI and with
certain environment variables configured.