1
1
mirror of https://github.com/cooperspencer/gickup synced 2024-09-18 23:01:35 +02:00

implemented includeorgs parameter

This commit is contained in:
Andreas Wachter 2022-01-27 18:36:41 +01:00
parent d52d7cc8be
commit df6767fc53
4 changed files with 64 additions and 19 deletions

View File

@ -82,6 +82,7 @@ func Get(conf *types.Conf) []types.Repo {
include := types.GetMap(repo.Include)
exclude := types.GetMap(repo.Exclude)
includeorgs := types.GetMap(repo.IncludeOrgs)
excludeorgs := types.GetMap(repo.ExcludeOrgs)
for _, r := range gitearepos {
@ -116,21 +117,30 @@ func Get(conf *types.Conf) []types.Repo {
orgopt.Page++
}
orgopt.Page = 1
orgrepos := []*gitea.Repository{}
for _, org := range orgs {
orgopt.Page = 1
if excludeorgs[org.UserName] {
continue
}
o, _, err := client.ListOrgRepos(org.UserName, gitea.ListOrgReposOptions{orgopt})
if err != nil {
log.Fatal().Str("stage", "gitea").Str("url", repo.Url).Msg(err.Error())
for {
if len(includeorgs) > 0 {
if includeorgs[org.UserName] {
o := getOrgRepos(client, org, orgopt, repo)
if len(o) == 0 {
break
}
orgrepos = append(orgrepos, o...)
}
} else {
o := getOrgRepos(client, org, orgopt, repo)
if len(o) == 0 {
break
}
orgrepos = append(orgrepos, o...)
}
orgopt.Page++
}
if len(o) == 0 {
break
}
orgrepos = append(orgrepos, o...)
orgopt.Page++
}
for _, r := range orgrepos {
if include[r.Name] {
@ -153,3 +163,11 @@ func Get(conf *types.Conf) []types.Repo {
}
return repos
}
func getOrgRepos(client *gitea.Client, org *gitea.Organization, orgopt gitea.ListOptions, repo types.GenRepo) []*gitea.Repository {
o, _, err := client.ListOrgRepos(org.UserName, gitea.ListOrgReposOptions{orgopt})
if err != nil {
log.Fatal().Str("stage", "gitea").Str("url", repo.Url).Msg(err.Error())
}
return o
}

View File

@ -50,6 +50,7 @@ func Get(conf *types.Conf) []types.Repo {
}
include := types.GetMap(repo.Include)
includeorgs := types.GetMap(repo.IncludeOrgs)
exclude := types.GetMap(repo.Exclude)
excludeorgs := types.GetMap(repo.ExcludeOrgs)
@ -68,9 +69,18 @@ func Get(conf *types.Conf) []types.Repo {
continue
}
if len(repo.Include) == 0 {
repos = append(repos, types.Repo{Name: r.GetName(), Url: r.GetCloneURL(), SshUrl: r.GetSSHURL(), Token: token, Defaultbranch: r.GetDefaultBranch(), Origin: repo, Owner: r.GetOwner().GetLogin(), Hoster: "github.com"})
if *r.HasWiki && repo.Wiki && *r.HasPages {
repos = append(repos, types.Repo{Name: *r.Name + ".wiki", Url: types.DotGitRx.ReplaceAllString(r.GetCloneURL(), ".wiki.git"), SshUrl: types.DotGitRx.ReplaceAllString(r.GetSSHURL(), ".wiki.git"), Token: token, Defaultbranch: r.GetDefaultBranch(), Origin: repo, Owner: r.GetOwner().GetLogin(), Hoster: "github.com"})
if len(includeorgs) > 0 {
if includeorgs[r.GetOwner().GetLogin()] {
repos = append(repos, types.Repo{Name: r.GetName(), Url: r.GetCloneURL(), SshUrl: r.GetSSHURL(), Token: token, Defaultbranch: r.GetDefaultBranch(), Origin: repo, Owner: r.GetOwner().GetLogin(), Hoster: "github.com"})
if *r.HasWiki && repo.Wiki && *r.HasPages {
repos = append(repos, types.Repo{Name: *r.Name + ".wiki", Url: types.DotGitRx.ReplaceAllString(r.GetCloneURL(), ".wiki.git"), SshUrl: types.DotGitRx.ReplaceAllString(r.GetSSHURL(), ".wiki.git"), Token: token, Defaultbranch: r.GetDefaultBranch(), Origin: repo, Owner: r.GetOwner().GetLogin(), Hoster: "github.com"})
}
}
} else {
repos = append(repos, types.Repo{Name: r.GetName(), Url: r.GetCloneURL(), SshUrl: r.GetSSHURL(), Token: token, Defaultbranch: r.GetDefaultBranch(), Origin: repo, Owner: r.GetOwner().GetLogin(), Hoster: "github.com"})
if *r.HasWiki && repo.Wiki && *r.HasPages {
repos = append(repos, types.Repo{Name: *r.Name + ".wiki", Url: types.DotGitRx.ReplaceAllString(r.GetCloneURL(), ".wiki.git"), SshUrl: types.DotGitRx.ReplaceAllString(r.GetSSHURL(), ".wiki.git"), Token: token, Defaultbranch: r.GetDefaultBranch(), Origin: repo, Owner: r.GetOwner().GetLogin(), Hoster: "github.com"})
}
}
}
}

View File

@ -51,6 +51,7 @@ func Get(conf *types.Conf) []types.Repo {
}
include := types.GetMap(repo.Include)
includeorgs := types.GetMap(repo.IncludeOrgs)
exclude := types.GetMap(repo.Exclude)
excludeorgs := types.GetMap(repo.ExcludeOrgs)
@ -82,14 +83,29 @@ func Get(conf *types.Conf) []types.Repo {
if excludeorgs[org.UserName] {
continue
}
o, err := client.ListOrgRepos(org.UserName)
if err != nil {
log.Fatal().Str("stage", "gogs").Str("url", repo.Url).Msg(err.Error())
for {
if len(includeorgs) > 0 {
if includeorgs[org.UserName] {
o, err := client.ListOrgRepos(org.UserName)
if err != nil {
log.Fatal().Str("stage", "gogs").Str("url", repo.Url).Msg(err.Error())
}
if len(o) == 0 {
break
}
orgrepos = append(orgrepos, o...)
}
} else {
o, err := client.ListOrgRepos(org.UserName)
if err != nil {
log.Fatal().Str("stage", "gogs").Str("url", repo.Url).Msg(err.Error())
}
if len(o) == 0 {
break
}
orgrepos = append(orgrepos, o...)
}
}
if len(o) == 0 {
break
}
orgrepos = append(orgrepos, o...)
}
for _, r := range orgrepos {
if include[r.Name] {

View File

@ -164,6 +164,7 @@ type GenRepo struct {
Exclude []string `yaml:"exclude"`
ExcludeOrgs []string `yaml:"excludeorgs"`
Include []string `yaml:"include"`
IncludeOrgs []string `yaml:"includeorgs"`
Wiki bool `yaml:"wiki"`
}