libcmds: Add support for authentication with gitlab CI
Gitlab CI predefine many variables in its environment, among them the sever hostname and a token that can be used to authenticate with the server. If we find these variables in the environment add the credentials to .netrc which in turn allow git and other tools to access resources found on the CI server. Signed-off-by: Alban Bedel <alban.bedel@aerq.com> Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
This commit is contained in:
parent
5ecef9f919
commit
b3405be5e8
@ -83,6 +83,10 @@ Environment variables
|
|||||||
| |git_cred| | Allows to set the git credential helper in the |
|
| |git_cred| | Allows to set the git credential helper in the |
|
||||||
| | `.gitconfig` of the kas user. |
|
| | `.gitconfig` of the kas user. |
|
||||||
+--------------------------+--------------------------------------------------+
|
+--------------------------+--------------------------------------------------+
|
||||||
|
| ``CI_SERVER_HOST`` | Environment variables from gitlab CI, if set |
|
||||||
|
| ``CI_JOB_TOKEN`` | .netrc is configured to allow fetching from |
|
||||||
|
| | the gitlab instance. |
|
||||||
|
+--------------------------+--------------------------------------------------+
|
||||||
|
|
||||||
.. |aws_cred| replace:: ``AWS_SHARED_CREDENTIALS_FILE``
|
.. |aws_cred| replace:: ``AWS_SHARED_CREDENTIALS_FILE``
|
||||||
.. |git_cred| replace:: ``GIT_CREDENTIAL_HELPER``
|
.. |git_cred| replace:: ``GIT_CREDENTIAL_HELPER``
|
||||||
|
@ -170,7 +170,14 @@ class SetupHome(Command):
|
|||||||
with open(self.tmpdirname + '/.wgetrc', 'w') as fds:
|
with open(self.tmpdirname + '/.wgetrc', 'w') as fds:
|
||||||
fds.write('\n')
|
fds.write('\n')
|
||||||
with open(self.tmpdirname + '/.netrc', 'w') as fds:
|
with open(self.tmpdirname + '/.netrc', 'w') as fds:
|
||||||
fds.write('\n')
|
# Configure the gitlab CI authentification token
|
||||||
|
if os.environ.get('CI_SERVER_HOST', False) \
|
||||||
|
and os.environ.get('CI_JOB_TOKEN', False):
|
||||||
|
fds.write('machine ' + os.environ['CI_SERVER_HOST'] + '\n'
|
||||||
|
'login gitlab-ci-token\n'
|
||||||
|
'password ' + os.environ['CI_JOB_TOKEN'] + '\n')
|
||||||
|
else:
|
||||||
|
fds.write('\n')
|
||||||
with open(self.tmpdirname + '/.gitconfig', 'w') as fds:
|
with open(self.tmpdirname + '/.gitconfig', 'w') as fds:
|
||||||
fds.write('[User]\n'
|
fds.write('[User]\n'
|
||||||
'\temail = kas@example.com\n'
|
'\temail = kas@example.com\n'
|
||||||
|
Loading…
Reference in New Issue
Block a user