forgejo-contrib/forgejo-cli
20
408
Fork
You've already forked forgejo-cli
51

Checking out a PR over SSH fails with error when SSH port is not 22 #483

Open
opened 2026年06月01日 06:05:55 +02:00 by 9pfs · 5 comments

Expected Behavior

I executed fj pr checkout 1, expecting to have the forgejo CLI add a remote, fetch the relevant commits, and check out a new branch.

Actual Behavior

Instead of checking out the branch, an error message was displayed (redacted output provided):

[USER@HOST REPOSITORY_DIR]$ fj pr checkout 1
Error: the given reference name 'refs/heads/pr-git-ssh.h.wer.ee:2222-REDACTED-1' is not valid; class=Reference (4); code=InvalidSpec (-12)
Location:
 src/prs.rs:1544:13
[USER@HOST REPOSITORY_DIR]$ 

Steps to Reproduce

Clone a repository from a forgejo instance that has an SSH server on a non-22 port, then attempt to check out a PR over SSH.

fj Version

fj v0.5.0
user agent: forgejo-cli/0.5.0 (https://codeberg.org/forgejo-contrib/forgejo-cli/)
build type: from source
 target: x86_64-unknown-linux-gnu
Check for a new version with `fj version --check`
Additional information: AUR package forgejo-cli-git, version v0.5.0.r134.g4de88bd-1

Forgejo Version

15.0.2

Code of Conduct

  • I agree to act in accordance with the CoC & AI Agreement.
  • This issue was not generated by an LLM, even in part.
### Expected Behavior I executed `fj pr checkout 1`, expecting to have the forgejo CLI add a remote, fetch the relevant commits, and check out a new branch. ### Actual Behavior Instead of checking out the branch, an error message was displayed (redacted output provided): ```text [USER@HOST REPOSITORY_DIR]$ fj pr checkout 1 Error: the given reference name 'refs/heads/pr-git-ssh.h.wer.ee:2222-REDACTED-1' is not valid; class=Reference (4); code=InvalidSpec (-12) Location: src/prs.rs:1544:13 [USER@HOST REPOSITORY_DIR]$ ``` ### Steps to Reproduce Clone a repository from a forgejo instance that has an SSH server on a non-22 port, then attempt to check out a PR over SSH. ### `fj` Version ```text fj v0.5.0 user agent: forgejo-cli/0.5.0 (https://codeberg.org/forgejo-contrib/forgejo-cli/) build type: from source target: x86_64-unknown-linux-gnu Check for a new version with `fj version --check` Additional information: AUR package forgejo-cli-git, version v0.5.0.r134.g4de88bd-1 ``` ### Forgejo Version 15.0.2 ### Code of Conduct - [x] I agree to act in accordance with the CoC & AI Agreement. - [x] This issue was not generated by an LLM, even in part.
Collaborator
Copy link

I can reproduce this on my git server @ https://git.mzte.de. We can use that for testing.

I can reproduce this on my git server @ https://git.mzte.de. We can use that for testing.
Contributor
Copy link

Can you try setting the port in the git remote URL and tell us the result?

Can you try setting the port in the git remote URL and tell us the result?
Member
Copy link

Can you try setting the port in the git remote URL

Is that not already the case It's failing because the : in the URL indicating the port isn't allowed in refspecs

> Can you try setting the port in the git remote URL Is that not already the case It's failing because the `:` in the URL indicating the port isn't allowed in refspecs
Contributor
Copy link

Is that not already the case It's failing because the : in the URL indicating the port isn't allowed in refspecs

I did not see the port in refs/heads/pr-git-ssh.h.wer.ee:2222-REDACTED-1. Interesting, that such a refspec gets created in the first place then.
@LordMZTE regular git operations work just fine with your server, right?

> Is that not already the case It's failing because the `:` in the URL indicating the port isn't allowed in refspecs I did not see the port in `refs/heads/pr-git-ssh.h.wer.ee:2222-REDACTED-1`. Interesting, that such a refspec gets created in the first place then. @LordMZTE regular git operations work just fine with your server, right?
Collaborator
Copy link

@LordMZTE regular git operations work just fine with your server, right?

Yes, this is likely just a bug with how we determine the name of the new branch :D

> @LordMZTE regular git operations work just fine with your server, right? Yes, this is likely just a bug with how we determine the name of the new branch :D
Sign in to join this conversation.
No Branch/Tag specified
main
renovate/open-5.x-lockfile
renovate/comrak-0.x
renovate/uuid-1.x-lockfile
renovate/lock-file-maintenance
docs/contributing
no-port-in-refspec
login/v16.next.forgejo.org
crates-io-publish
0.5.x
compile-time-fluent
0.4.x
localization-alias-demo
api_url_field
v0.5.0
v0.4.1
v0.4.0
v0.3.0
v0.2.0
v0.1.1
v0.1.0
v0.0.4
v0.0.3
v0.0.2
v0.0.1
Labels
Clear labels
Kind/Breaking
Breaking change that won't be backward compatible
Kind/Bug
Something is not working
Kind/Design
Discussion about UI/UX design
Kind/Documentation
Documentation changes
Kind/Enhancement
Improve existing functionality
Kind/Feature
New functionality
Kind/Security
This is security issue
Kind/Testing
Issue or pull request related to testing
Kind/Upstream
This is an issue with upstream software (Forgejo) that is probably not our fault
Priority
Critical
The priority is critical
Priority
High
The priority is high
Priority
Low
The priority is low
Priority
Medium
The priority is medium
Reviewed
Confirmed
Issue has been confirmed
Reviewed
Duplicate
This issue or pull request already exists
Reviewed
Invalid
Invalid issue
Reviewed
Won't Fix
This issue won't be fixed
Status
Abandoned
Somebody has started to work on this but abandoned work
Status
Blocked
Something is blocking this issue or pull request
Status
Need More Info
Feedback is required to reproduce issue or to continue work
Suspicious
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
4 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
forgejo-contrib/forgejo-cli#483
Reference in a new issue
forgejo-contrib/forgejo-cli
No description provided.
Delete branch "%!s()"

Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?