ekho / capistrano-git-submodule-strategy

Git submodule support for Capistrano 3
MIT License
47 stars 20 forks source link

Failing to authenticate correctly with git. Capistrano 3.40, git 1.9.1 #18

Open mike-onehub opened 4 years ago

mike-onehub commented 4 years ago

When trying to the checkout, it doesn't correctly authenticate back to github for the submodule update.

 DEBUG [6dd13baf]   git version 1.9.1
 DEBUG [6dd13baf] Finished in 0.252 seconds with exit status 0 (successful).
  INFO [a1adaea7] Running /usr/bin/env git clone --depth=1 -b capistrano_update file:///usr/share/puppet/barista/repo /usr/share/puppet/barista/releases/20200831204343 as onehub@10.0.2.96
 DEBUG [a1adaea7] Command: cd /usr/share/puppet/barista/repo && ( export GIT_ASKPASS="/bin/echo" GIT_SSH="/tmp/barista/git-ssh.sh" ; /usr/bin/env git clone --depth=1 -b capistrano_update file:///usr/share/puppet/barista/repo /usr/share/puppet/barista/releases/20200831204343 )
DEBUG [a1adaea7]   Cloning into '/usr/share/puppet/barista/releases/20200831204343'...
  INFO [a1adaea7] Finished in 0.896 seconds with exit status 0 (successful).
 DEBUG [f3715b46] Running if test ! -d /usr/share/puppet/barista/releases/20200831204343; then echo "Directory does not exist '/usr/share/puppet/barista/releases/20200831204343'" 1>&2; false; fi as onehub@10.0.2.96
 DEBUG [f3715b46] Command: if test ! -d /usr/share/puppet/barista/releases/20200831204343; then echo "Directory does not exist '/usr/share/puppet/barista/releases/20200831204343'" 1>&2; false; fi
 DEBUG [f3715b46] Finished in 0.269 seconds with exit status 0 (successful).
  INFO [034e30f5] Running /usr/bin/env git remote set-url origin git@github.com:onehub/barista.git as onehub@10.0.2.96
 DEBUG [034e30f5] Command: cd /usr/share/puppet/barista/releases/20200831204343 && ( export GIT_ASKPASS="/bin/echo" GIT_SSH="/tmp/barista/git-ssh.sh" ; /usr/bin/env git remote set-url origin git@github.com:onehub/barista.git )
  INFO [034e30f5] Finished in 0.253 seconds with exit status 0 (successful).
 DEBUG [3b601a64] Running if test ! -d /usr/share/puppet/barista/releases/20200831204343; then echo "Directory does not exist '/usr/share/puppet/barista/releases/20200831204343'" 1>&2; false; fi as onehub@10.0.2.96
 DEBUG [3b601a64] Command: if test ! -d /usr/share/puppet/barista/releases/20200831204343; then echo "Directory does not exist '/usr/share/puppet/barista/releases/20200831204343'" 1>&2; false; fi
 DEBUG [3b601a64] Finished in 0.256 seconds with exit status 0 (successful).
  INFO [bdd9c110] Running /usr/bin/env git submodule update --init --recursive as onehub@10.0.2.96
 DEBUG [bdd9c110] Command: cd /usr/share/puppet/barista/releases/20200831204343 && ( export GIT_ASKPASS="/bin/echo" GIT_SSH="/tmp/barista/git-ssh.sh" ; /usr/bin/env git submodule update --init --recursive )
 DEBUG [bdd9c110]   Submodule 'Verona' (https://github.com/onehub/verona) registered for path 'Verona'
 DEBUG [bdd9c110]   Cloning into 'Verona'...
 DEBUG [bdd9c110]   remote: Invalid username or password.
 DEBUG [bdd9c110]   fatal: Authentication failed for 'https://github.com/onehub/verona/'
 DEBUG [bdd9c110]   Clone of 'https://github.com/onehub/verona' into submodule path 'Verona' failed

I know that my credentials are good because I can update the submodule manually on the remote server:

git submodule update --init --recursive
Cloning into 'Verona'...
Username for 'https://github.com': xXxXxXxXxX (hiding login)
Password for 'https://xXxXxXxXxX@github.com':
remote: Enumerating objects: 2308, done.
remote: Counting objects: 100% (2308/2308), done.
remote: Compressing objects: 100% (1596/1596), done.
remote: Total 2308 (delta 400), reused 2292 (delta 389), pack-reused 0
Receiving objects: 100% (2308/2308), 4.47 MiB | 0 bytes/s, done.
Resolving deltas: 100% (400/400), done.
Checking connectivity... done.
Submodule path 'Verona': checked out 'f5656edb151bd65ed9c703dd916d92a278dd0562'

So I'm not sure what is going on. Why isn't the --recursive being done at initial checkout?

mike-onehub commented 4 years ago

Did some playing around with git on the cmd line on the remote server. git clone --recursive ssh://git@github.com/onehub/barista.git -b capistrano_update This will pull the barista repo at the branch specified and recurse automagically to get the Verona repo, but it asks for authorization again for the Verona repo. So I think there is the basic issue.