Back to Codeberg

use ssh_url_parse, not .parse::<Url> #219

forgejo-contrib-forgejo-cli-pulls-219.md

latest14.1 KB
Original Source

forgejo-contrib/forgejo-cli

Watch20

Star402

Fork

You've already forked forgejo-cli

51

CodeIssues 44Pull requests 8Releases 11Packages 2WikiActivity

use ssh_url_parse, not .parse::<Url>#219

Merged

Cyborusmerged 1 commit from cyborus/agit-fix-wrong-parse into main 2025-09-21 20:44:47 +02:00AGit

Conversation 7Commits 1Files changed 1 +6 -5

Cyborus commented 2025-09-20 15:18:41 +02:00

Member

Copy link

The URL was being parsed using str::parse, which fails on SSH-style URLs. Now it uses the proper ssh_url_parse function

Fixes #218

The URL was being parsed using str::parse, which fails on SSH-style URLs. Now it uses the proper ssh_url_parse function Fixes #218

Cyborus added 1 commit 2025-09-20 15:18:42 +02:00

fix: use ssh_url_parse, not .parse::<Url>

All checks were successful

ci/woodpecker/pr/check Pipeline was successful

Details

2a0bed489d

Cyborus commented 2025-09-20 15:19:34 +02:00

Author

Member

Copy link

@untitaker Does this fix your issue?

@untitaker Does this fix your issue?

untitaker commented 2025-09-20 15:27:33 +02:00

First-time contributor

Copy link

it appears to work with fj pr create test but not fj --host codeberg.org pr create test

I have --host codeberg.org set all of the time using an alias.

it appears to work with fj pr create test but not fj --host codeberg.org pr create test I have --host codeberg.org set all of the time using an alias.

Cyborus commented 2025-09-20 15:33:30 +02:00

Author

Member

Copy link

And it's the same error still?

And it's the same error still?

untitaker commented 2025-09-20 15:37:27 +02:00

First-time contributor

Copy link

yes:

text
$ cb pr create
[src/repo.rs:196:9] &info = RepoInfo {
    url: Url {
        scheme: "https",
        cannot_be_a_base: false,
        username: "",
        password: None,
        host: Some(
            Domain(
                "codeberg.org",
            ),
        ),
        port: None,
        path: "/",
        query: None,
        fragment: None,
    },
    name: None,
    remote_name: Some(
        "origin",
    ),
}
Error: can't figure what repo to access, try specifying with `--repo`

Location:
    src/prs.rs:415:17

(i only patched one debug stmt in again)

yes: $ cb pr create [src/repo.rs:196:9] &info = RepoInfo { url: Url { scheme: "https", cannot_be_a_base: false, username: "", password: None, host: Some( Domain( "codeberg.org", ), ), port: None, path: "/", query: None, fragment: None, }, name: None, remote_name: Some( "origin", ), } Error: can't figure what repo to access, try specifying with `--repo` Location: src/prs.rs:415:17 (i only patched one debug stmt in again)

Cyborus commented 2025-09-20 15:44:16 +02:00

Author

Member

Copy link

That's... very odd. That isn't the same error, for some reason it's not even getting to the change I made. Did you change anything about your setup?

That's... very odd. That isn't the same error, for some reason it's not even getting to the change I made. Did you change anything about your setup?

untitaker commented 2025-09-20 15:48:23 +02:00

First-time contributor

Copy link

ugh i'm sorry, the original bug report was faulty. what i posted just now is the original error. the bug report contained this additional patch:

#click to expand

diff
diff --git a/src/repo.rs b/src/repo.rs
index 8d292ef..975698e 100644
--- a/src/repo.rs
+++ b/src/repo.rs
@@ -8,6 +8,7 @@ use url::Url;

 use crate::SpecialRender;

+#[derive(Debug)]
 pub struct RepoInfo {
     url: Url,
     name: Option<RepoName>,
@@ -164,7 +165,7 @@ impl RepoInfo {
             (repo_url, repo_name)
         } else if repo_name.is_some() {
             (host_url.or(remote_url), repo_name)
- } else if remote.is_some() {
+ } else if remote_url.is_some() {
...skipping...
     name: Option<RepoName>,
@@ -164,7 +165,7 @@ impl RepoInfo {
             (repo_url, repo_name)
         } else if repo_name.is_some() {
             (host_url.or(remote_url), repo_name)
- } else if remote.is_some() {
+ } else if remote_url.is_some() {
             (remote_url, remote_repo_name)
         } else if host_url.is_none() || remote_url == host_url {
             (remote_url, remote_repo_name)
@@ -192,6 +193,7 @@ impl RepoInfo {
             (None, None) => eyre::bail!("no repo info specified"),
         };

+ dbg!(&info);
         Ok(info)
     }

as i tried to fix the issue myself

ugh i'm sorry, the original bug report was faulty. what i posted just now is the original error. the bug report contained this additional patch: <details><summary>click to expand</summary> diff diff --git a/src/repo.rs b/src/repo.rs index 8d292ef..975698e 100644 --- a/src/repo.rs +++ b/src/repo.rs @@ -8,6 +8,7 @@ use url::Url; use crate::SpecialRender; +#[derive(Debug)] pub struct RepoInfo { url: Url, name: Option\<RepoName\>, @@ -164,7 +165,7 @@ impl RepoInfo { (repo_url, repo_name) } else if repo_name.is_some() { (host_url.or(remote_url), repo_name) - } else if remote.is_some() { + } else if remote_url.is_some() { ...skipping... name: Option\<RepoName\>, @@ -164,7 +165,7 @@ impl RepoInfo { (repo_url, repo_name) } else if repo_name.is_some() { (host_url.or(remote_url), repo_name) - } else if remote.is_some() { + } else if remote_url.is_some() { (remote_url, remote_repo_name) } else if host_url.is_none() || remote_url == host_url { (remote_url, remote_repo_name) @@ -192,6 +193,7 @@ impl RepoInfo { (None, None) =\> eyre::bail!("no repo info specified"), }; + dbg!(&info); Ok(info) } </details> as i tried to fix the issue myself

Cyborus commented 2025-09-21 20:33:02 +02:00

Author

Member

Copy link

I'll go ahead and merge this pr anyway since it does seem to fix the issue you didn't mean to report. I'll make separate one for the other problem

I'll go ahead and merge this pr anyway since it does seem to fix the issue you didn't mean to report. I'll make separate one for the other problem

Cyborus merged commit 7c32bed32b into main 2025-09-21 20:44:47 +02:00

Cyborus referenced this pull request from a commit 2025-09-21 20:44:50 +02:00 Merge pull request 'use ssh_url_parse, not .parse::\<Url\>' (#219) from cyborus/agit-fix-wrong-parse into main

Cyborus added this to the v0.4.0 milestone 2025-12-01 17:02:56 +01:00

Sign in to join this conversation.

Reviewers

No reviewers

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

](#)

No labels Kind/Breaking Kind/Bug Kind/Design Kind/Documentation Kind/Enhancement Kind/Feature Kind/Security Kind/Testing Kind/Upstream [ Priority

Critical ](/forgejo-contrib/forgejo-cli/pulls?labels=173012) [ Priority

High ](/forgejo-contrib/forgejo-cli/pulls?labels=173013) [ Priority

Low ](/forgejo-contrib/forgejo-cli/pulls?labels=173015) [ Priority

Medium ](/forgejo-contrib/forgejo-cli/pulls?labels=173014) [ Reviewed

Confirmed ](/forgejo-contrib/forgejo-cli/pulls?labels=173007) [ Reviewed

Duplicate ](/forgejo-contrib/forgejo-cli/pulls?labels=173005) [ Reviewed

Invalid ](/forgejo-contrib/forgejo-cli/pulls?labels=173006) [ Reviewed

Won't Fix ](/forgejo-contrib/forgejo-cli/pulls?labels=173008) [ Status

Abandoned ](/forgejo-contrib/forgejo-cli/pulls?labels=173011) [ Status

Blocked ](/forgejo-contrib/forgejo-cli/pulls?labels=173010) [ Status

Need More Info ](/forgejo-contrib/forgejo-cli/pulls?labels=173009) Suspicious

Milestone

Clear milestone

No items

No milestone v0.4.0

Projects

Clear projects

No items

No project

Assignees

Clear assignees

No assignees

2 participants

Notifications Subscribe

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!219

WritePreview

Loading…

Add table

| Rows | | | Columns | |

CancelOK

Add a link

Url Description Hint: With a URL in your clipboard, you can paste directly into the editor to create a link.

CancelOK

CancelSave

Reference in a new issue

Repository

forgejo-contrib/forgejo-cli

Title

Body

Create issue

No description provided.

Delete branch "cyborus/agit-fix-wrong-parse"

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?

No Yes