diff --git a/internal/commands/release_notes.go b/internal/commands/release_notes.go index 90bf39dd..fc81013f 100644 --- a/internal/commands/release_notes.go +++ b/internal/commands/release_notes.go @@ -11,7 +11,6 @@ import ( "os" "path/filepath" "regexp" - "strings" "text/template" "time" @@ -282,9 +281,6 @@ func getGithubRemoteRepoOwnerAndName(repo *git.Repository) (string, string, erro } config := remote.Config() for _, u := range config.URLs { - if !strings.Contains(u, "github.com") { - continue - } remoteURL = u break } diff --git a/internal/gh/uri.go b/internal/gh/uri.go index 5c52d6b8..e2d2e570 100644 --- a/internal/gh/uri.go +++ b/internal/gh/uri.go @@ -4,6 +4,7 @@ import ( "fmt" "net/url" "path/filepath" + "regexp" "strings" ) @@ -13,7 +14,13 @@ func RepositoryOwnerAndNameFromPath(urlStr string) (owner, repo string, err erro wrapError := func(urlStr string, err error) error { return fmt.Errorf("failed to parse owner and repo name from URI %q: %w", urlStr, err) } - urlStr = strings.TrimPrefix(urlStr, "git@github.com:") + + sshReg := regexp.MustCompile(`(?m)git@(?P.*):(?P[^/]+)/(?P.*)\.git`) + if m := sshReg.FindStringSubmatch(urlStr); m != nil { + owner = m[sshReg.SubexpIndex("owner")] + repo = m[sshReg.SubexpIndex("name")] + return owner, repo, nil + } u, err := url.Parse(urlStr) if err != nil { return "", "", wrapError(urlStr, err) diff --git a/pkg/cargo/bump.go b/pkg/cargo/bump.go index 16af59e3..c50e659b 100644 --- a/pkg/cargo/bump.go +++ b/pkg/cargo/bump.go @@ -3,6 +3,7 @@ package cargo import ( "context" "fmt" + "log" "slices" "sort" "strings" @@ -208,7 +209,10 @@ func fetchReleasesFromRepo(ctx context.Context, repoService RepositoryReleaseLis var result []*github.RepositoryRelease ops := github.ListOptions{} - releases, _, _ := repoService.ListReleases(ctx, owner, repo, &ops) + releases, _, err := repoService.ListReleases(ctx, owner, repo, &ops) + if err != nil { + log.Println(err) + } for _, rel := range releases { rv, err := semver.NewVersion(strings.TrimPrefix(rel.GetTagName(), "v"))