Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions bitbucket.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import (

func getBitbucketRepositories(
client *bitbucket.Client,
ignoreFork bool,
) ([]*Repository, error) {

var repositories []*Repository
Expand All @@ -26,6 +27,9 @@ func getBitbucketRepositories(
}

for _, repo := range resp.Items {
if repo.Parent != nil && ignoreFork {
continue
}
namespace := strings.Split(repo.Full_name, "/")[0]

httpsURL, sshURL := extractBitbucketCloneURLs(repo.Links)
Expand Down
10 changes: 7 additions & 3 deletions forgejo.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import (
func getForgejoRepositories(
client *forgejo.Client,
forgejoRepoType string,
ignoreFork bool,
) ([]*Repository, error) {

switch forgejoRepoType {
Expand All @@ -26,7 +27,7 @@ func getForgejoRepositories(
ListOptions: forgejo.ListOptions{Page: page},
StarredByUserID: user.ID,
})
})
}, ignoreFork)
if err != nil {
return nil, fmt.Errorf("fetching starred repositories from forgejo: %v", err)
}
Expand All @@ -37,7 +38,7 @@ func getForgejoRepositories(
return client.ListMyRepos(forgejo.ListReposOptions{
ListOptions: forgejo.ListOptions{Page: page},
})
})
}, ignoreFork)
if err != nil {
return nil, fmt.Errorf("fetching user repositories from forgejo: %v", err)
}
Expand All @@ -48,7 +49,7 @@ func getForgejoRepositories(
}
}

func paginateForgejoRepositories(fetch func(page int) ([]*forgejo.Repository, *forgejo.Response, error)) ([]*Repository, error) {
func paginateForgejoRepositories(fetch func(page int) ([]*forgejo.Repository, *forgejo.Response, error), ignoreFork bool) ([]*Repository, error) {
var repositories []*Repository
page := 1

Expand All @@ -59,6 +60,9 @@ func paginateForgejoRepositories(fetch func(page int) ([]*forgejo.Repository, *f
}

for _, repo := range results {
if repo.Fork && ignoreFork {
continue
}
repositories = append(repositories, &Repository{
CloneURL: getCloneURL(repo.CloneURL, repo.SSHURL),
Name: repo.Name,
Expand Down
4 changes: 4 additions & 0 deletions gitlab.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import (
func getGitlabRepositories(
client *gitlab.Client,
gitlabProjectVisibility string, gitlabProjectMembershipType string,
ignoreFork bool,
) ([]*Repository, error) {

var repositories []*Repository
Expand Down Expand Up @@ -51,6 +52,9 @@ func getGitlabRepositories(
return nil, err
}
for _, repo := range repos {
if repo.ForkedFromProject != nil && ignoreFork {
continue
}
namespace := strings.Split(repo.PathWithNamespace, "/")[0]
cloneURL := getCloneURL(repo.WebURL, repo.SSHURLToRepo)
repositories = append(repositories, &Repository{
Expand Down
3 changes: 3 additions & 0 deletions repositories.go
Original file line number Diff line number Diff line change
Expand Up @@ -63,15 +63,18 @@ func getRepositories(
client.(*gitlab.Client),
gitlabProjectVisibility,
gitlabProjectMembershipType,
ignoreFork,
)
case "bitbucket":
repositories, err = getBitbucketRepositories(
client.(*bitbucket.Client),
ignoreFork,
)
case "forgejo":
repositories, err = getForgejoRepositories(
client.(*forgejo.Client),
forgejoRepoType,
ignoreFork,
)
}
return repositories, err
Expand Down
Loading