-
-
Notifications
You must be signed in to change notification settings - Fork 54
Description
Sometimes you can't use Git over SSH in a project, hence you'll use HTTP (e.g. due to network constraints). I'm struggling to get this working, and I can't see any related information in our README.
My modulesync.yml looks like this:
---
git_base: https://gitlab.example.com/
branch: managed-updateThe repository is private, hence I need to authenticate. It's not 100% clear how to do that properly (not taking hardcoding https://username:password@gitlab.example.com/ into consideration). The error I get is this one:
Syncing some/project
Cloning repository fresh
Cloning from https://gitlab.example.com/some/project.git
Error while updating some/project
/usr/local/bundle/gems/git-1.7.0/lib/git/lib.rb:989:in `command': git '-c' 'color.ui=false' clone '--' 'https://gitlab.example.com/some/project.git' 'modules/some/project' 2>&1:Cloning into 'modules/some/project'... (Git::GitExecuteError)
fatal: could not read Username for 'https://gitlab.example.com': No such device or address
from /usr/local/bundle/gems/git-1.7.0/lib/git/lib.rb:78:in `clone'
from /usr/local/bundle/gems/git-1.7.0/lib/git/base.rb:29:in `clone'
from /usr/local/bundle/gems/git-1.7.0/lib/git.rb:98:in `clone'
from /usr/local/bundle/gems/modulesync-2.0.0/lib/modulesync/git.rb:58:in `pull'
from /usr/local/bundle/gems/modulesync-2.0.0/lib/modulesync.rb:115:in `manage_module'
from /usr/local/bundle/gems/modulesync-2.0.0/lib/modulesync.rb:176:in `block in update'
from /usr/local/bundle/gems/modulesync-2.0.0/lib/modulesync.rb:173:in `each'
from /usr/local/bundle/gems/modulesync-2.0.0/lib/modulesync.rb:173:in `update'
from /usr/local/bundle/gems/modulesync-2.0.0/lib/modulesync/cli.rb:142:in `update'
from /usr/local/bundle/gems/thor-1.0.1/lib/thor/command.rb:27:in `run'
from /usr/local/bundle/gems/thor-1.0.1/lib/thor/invocation.rb:127:in `invoke_command'
from /usr/local/bundle/gems/thor-1.0.1/lib/thor.rb:392:in `dispatch'
from /usr/local/bundle/gems/thor-1.0.1/lib/thor/base.rb:485:in `start'
from /usr/local/bundle/gems/modulesync-2.0.0/bin/msync:8:in `<top (required)>'
from /usr/local/bundle/bin/msync:23:in `load'
from /usr/local/bundle/bin/msync:23:in `<main>'Just for the sake of completeness, the setup uses the vshn/modulesync Docker image and roughly this CI configuration on GitLab:
update_repository:
image: vshn/modulesync:latest
variables:
GITLAB_BASE_URL: ${CI_SERVER_URL}
GITLAB_TOKEN: ${SECRET_TOKEN}
GIT_COMMITTER_NAME: Edda Example
GIT_COMMITTER_EMAIL: edda@example.com
script: msync --pr --pr-labels=managed-update --forceNote that the GITLAB_BASE_URL ad GITLAB_TOKEN is really just for creating the merge request (via GitLab's API).
Document how this shall be done
Using Git over HTTP is probably possible as an alternative.
If we want to suggest using a token for the normal Git operation we should explain how to do this in the README.