Skip to content

gh stack submit fails when remote uses a custom SSH host alias #45

@EricCrosson

Description

@EricCrosson

gh stack submit exits with an error when the git remote URL uses a custom SSH host alias (e.g. github.com-work) instead of the literal github.com hostname. There is no flag to override the repository, so submit is unusable in this configuration.

Steps to reproduce

  1. Configure ~/.ssh/config with a host alias (common for multi-account setups):

    Host github.com-work
        HostName github.com
        User git
        IdentityFile ~/.ssh/id_ed25519_work
    
  2. Clone using the alias:

    git clone git@github.com-work:org/repo.git
    cd repo
    

    git remote get-url origingit@github.com-work:org/repo.git

  3. Initialize a stack and submit:

    git checkout -b layer-1 && git commit --allow-empty -m "layer 1"
    git checkout -b layer-2 && git commit --allow-empty -m "layer 2"
    git checkout layer-1
    gh stack init --adopt -b main layer-1 layer-2
    gh stack submit --draft
    

Actual result

✗ failed to create GitHub client: determining repository: unable to determine current
repository, none of the git remotes configured for this repository point to a known
GitHub host

The --remote origin flag and GH_HOST=github.com env var do not help — the error
is identical with both.

Expected result

gh stack submit pushes the branches and opens draft PRs, the same as it would with a git@github.com:org/repo.git remote.

What I tried

  • gh stack submit --remote origin — same error
  • GH_HOST=github.com gh stack submit — same error
  • GH_REPO=org/repo gh stack submit — gets past host detection, but then pushes to
    git@github.com:org/repo.git instead of the configured alias, so the push fails
    with a key-agent rejection

Workaround

Push branches manually and create PRs one at a time:

git push origin layer-1 layer-2
gh pr create --draft --repo org/repo --base main   --head layer-1 --title "layer 1"
gh pr create --draft --repo org/repo --base layer-1 --head layer-2 --title "layer 2"

Environment

gh version 2.89.0 (nixpkgs)
gh extension: gh stack (github/gh-stack)
OS: macOS
Remote URL format: git@github.com-<alias>:org/repo.git

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions