Skip to content

Commit be60777

Browse files
author
Rachel Dowavic
committed
Fix -ignore-fork filtering for GitLab, Bitbucket, and Forgejo
The ignoreFork parameter was accepted but never used by these three services. Add fork detection checks matching the existing GitHub pattern: - GitLab: skip repos where ForkedFromProject is non-nil - Bitbucket: skip repos where Parent is non-nil - Forgejo: skip repos where Fork is true, threading ignoreFork into paginateForgejoRepositories
1 parent 15e3a70 commit be60777

3 files changed

Lines changed: 12 additions & 3 deletions

File tree

bitbucket.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,9 @@ func getBitbucketRepositories(
3434
}
3535

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

3942
httpsURL, sshURL := extractBitbucketCloneURLs(repo.Links)

forgejo.go

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ func getForgejoRepositories(
3333
ListOptions: forgejo.ListOptions{Page: page},
3434
StarredByUserID: user.ID,
3535
})
36-
})
36+
}, ignoreFork)
3737
if err != nil {
3838
return nil, fmt.Errorf("fetching starred repositories from %s: %v", service, err)
3939
}
@@ -44,7 +44,7 @@ func getForgejoRepositories(
4444
return forgejoClient.ListMyRepos(forgejo.ListReposOptions{
4545
ListOptions: forgejo.ListOptions{Page: page},
4646
})
47-
})
47+
}, ignoreFork)
4848
if err != nil {
4949
return nil, fmt.Errorf("fetching user repositories from %s: %v", service, err)
5050
}
@@ -55,7 +55,7 @@ func getForgejoRepositories(
5555
}
5656
}
5757

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

@@ -66,6 +66,9 @@ func paginateForgejoRepositories(fetch func(page int) ([]*forgejo.Repository, *f
6666
}
6767

6868
for _, repo := range results {
69+
if repo.Fork && ignoreFork {
70+
continue
71+
}
6972
repositories = append(repositories, &Repository{
7073
CloneURL: repo.CloneURL,
7174
Name: repo.Name,

gitlab.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,9 @@ func getGitlabRepositories(
5858
return nil, err
5959
}
6060
for _, repo := range repos {
61+
if repo.ForkedFromProject != nil && ignoreFork {
62+
continue
63+
}
6164
namespace := strings.Split(repo.PathWithNamespace, "/")[0]
6265
cloneURL := getCloneURL(repo.WebURL, repo.SSHURLToRepo)
6366
repositories = append(repositories, &Repository{

0 commit comments

Comments
 (0)