Skip to content

[Bug]: A run fails if a private Git has (using SSH auth) has a Git submodule using HTTPS auth #2850

@peterschmidt85

Description

@peterschmidt85

Steps to reproduce

  1. Clone a Git repo using SSH auth

Example:

git clone git@github.com:peterschmidt85/git-submodule-parent.git
cd git-submodule-parent
  1. Add a submodule using HTTPS auth
git submodule add https://github.com/peterschmidt85/git-submodule-public
git add .gitmodules git-submodule-public 
git commit -m "Properly add submodule"
git push origin main

Here's .gitmodules:

[submodule "git-submodule-public"]
	path = git-submodule-public
	url = https://github.com/peterschmidt85/git-submodule-public
type: task
name: git-submodule-dev

commands: 
  - |
    find .
dstack init
dstack apply -f .dstack.yml

Actual behaviour

$ dstack logs -d git-submodule-dev
time=2025-06-27T04:18:52.869099-04:00 level=info msg=Run job log_level=trace
time=2025-06-27T04:18:52.869136-04:00 level=trace msg=checking if repo checkout is needed
time=2025-06-27T04:18:52.871193-04:00 level=trace msg=Fetching git repository
time=2025-06-27T04:18:52.871223-04:00 level=trace msg=Credentials is not empty
time=2025-06-27T04:18:52.871232-04:00 level=trace msg=Select SSH protocol
time=2025-06-27T04:18:52.871697-04:00 level=trace msg=Checking out remote repo GIT URL=ssh://git@github.com/peterschmidt85/git-submodule-parent.git
time=2025-06-27T04:18:52.871717-04:00 level=info msg=git checkout path=/workflow auth=*ssh.PublicKeys url=ssh://git@github.com/peterschmidt85/git-submodule-parent.git branch=main hash=777ddea4e3455861643fb812423fb0c63e91dc52
time=2025-06-27T04:18:55.09289-04:00 level=info msg=Job state changed new=failed
time=2025-06-27T04:18:55.092932-04:00 level=error msg=Executor failed err=[executor.go:141 executor.(*RunExecutor).Run] [repo.go:47 executor.(*RunExecutor).setupRepo] [repo.go:93 executor.(*RunExecutor).prepareGit] [manager.go:70 repo.(*Manager).Checkout] invalid auth method

Expected behaviour

  1. Runner should fetch the repo without errors

dstack version

0.19.16

Server logs

Additional information

Workaround:

Change the URL of the submodule from using HTTPS to using SSH auth:

git submodule add git@github.com:peterschmidt85/git-submodule-public

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions