mirror of
https://github.com/cooperspencer/gickup
synced 2025-05-01 00:37:55 +02:00
implemented includeorgs
parameter
This commit is contained in:
parent
d52d7cc8be
commit
df6767fc53
@ -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
|
||||
}
|
||||
|
@ -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"})
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
30
gogs/gogs.go
30
gogs/gogs.go
@ -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] {
|
||||
|
@ -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"`
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user