diff --git a/client.go b/client.go index 7ceaa64..65777a1 100644 --- a/client.go +++ b/client.go @@ -205,6 +205,7 @@ func newForgejoClient(gitHostURLParsed *url.URL) *forgejo.Client { url = gitHostURLParsed.String() } + gitHostToken = forgejoToken log.Println("Creating forgejo client", url) client, err := forgejo.NewClient(url, forgejo.SetToken(forgejoToken), forgejo.SetForgejoVersion("")) if err != nil { diff --git a/forgejo.go b/forgejo.go index 980bb2f..41e4e7f 100644 --- a/forgejo.go +++ b/forgejo.go @@ -67,7 +67,7 @@ func paginateForgejoRepositories(fetch func(page int) ([]*forgejo.Repository, *f for _, repo := range results { repositories = append(repositories, &Repository{ - CloneURL: repo.CloneURL, + CloneURL: getCloneURL(repo.CloneURL, repo.SSHURL), Name: repo.Name, Namespace: repo.Owner.UserName, Private: repo.Private, diff --git a/helpers.go b/helpers.go index 11896ca..85cfd22 100644 --- a/helpers.go +++ b/helpers.go @@ -4,6 +4,7 @@ import ( "context" "log" + forgejo "codeberg.org/mvdkleijn/forgejo-sdk/forgejo/v2" "github.com/google/go-github/v34/github" "github.com/ktrysmt/go-bitbucket" gitlab "github.com/xanzy/go-gitlab" @@ -41,6 +42,14 @@ func getUsername(client interface{}, service string) string { return user.Username } + if service == "forgejo" { + user, _, err := client.(*forgejo.Client).GetMyUserInfo() + if err != nil { + log.Fatal("Error retrieving username", err.Error()) + } + return user.UserName + } + return "" } diff --git a/repositories_test.go b/repositories_test.go index 69fb7fb..d5b00a5 100644 --- a/repositories_test.go +++ b/repositories_test.go @@ -260,7 +260,7 @@ func TestGetForgejoRepositories(t *testing.T) { defer teardownRepositoryTests() mux.HandleFunc("/api/v1/user/repos", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `[{"clone_url":"git@codeberg.org:abc/def.git","name":"def","owner":{"login":"abc"},"private":true}]`) + fmt.Fprint(w, `[{"clone_url":"https://codeberg.org/abc/def.git","ssh_url":"git@codeberg.org:abc/def.git","name":"def","owner":{"login":"abc"},"private":true}]`) }) repos, err := getRepositories(ForgejoClient, "forgejo", "", []string{}, "", "", false, "") @@ -285,7 +285,7 @@ func TestGetForgejoStarredRepositories(t *testing.T) { }) mux.HandleFunc("/api/v1/repos/search", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprint(w, `{"data":[{"clone_url":"git@codeberg.org:abc/def.git","name":"def","owner":{"login":"abc"},"private":true}]}`) + fmt.Fprint(w, `{"data":[{"clone_url":"https://codeberg.org/abc/def.git","ssh_url":"git@codeberg.org:abc/def.git","name":"def","owner":{"login":"abc"},"private":true}]}`) }) repos, err := getRepositories(ForgejoClient, "forgejo", "", []string{}, "", "", false, "starred")