MCPcopy Create free account
hub / github.com/ChappIO/git-backup / getAllRepos

Method getAllRepos

gitlab.go:89–135  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

87}
88
89func (g *GitLabConfig) getAllRepos() ([]*gitlab.Project, error) {
90 all := make(map[string]*gitlab.Project, 0)
91
92 // fetch the configured repos
93 if len(g.Repositories) > 0 {
94 if repos, err := g.getRepoList(g.Repositories); err != nil {
95 return nil, err
96 } else {
97 for _, repo := range repos {
98 all[repo.PathWithNamespace] = repo
99 }
100 }
101 }
102
103 // use discovery mechanisms
104 if *g.Starred {
105 if repos, err := g.discoverRepos(&gitlab.ListProjectsOptions{Starred: boolPointer(true)}); err != nil {
106 return nil, err
107 } else {
108 for _, repo := range repos {
109 all[repo.PathWithNamespace] = repo
110 }
111 }
112 }
113
114 if *g.Owned {
115 if repos, err := g.discoverRepos(&gitlab.ListProjectsOptions{Owned: boolPointer(true)}); err != nil {
116 return nil, err
117 } else {
118 for _, repo := range repos {
119 all[repo.PathWithNamespace] = repo
120 }
121 }
122 }
123
124 if *g.Member {
125 if repos, err := g.discoverRepos(&gitlab.ListProjectsOptions{Membership: boolPointer(true)}); err != nil {
126 return nil, err
127 } else {
128 for _, repo := range repos {
129 all[repo.PathWithNamespace] = repo
130 }
131 }
132 }
133
134 return slices.Collect(maps.Values(all)), nil
135}
136
137func (g *GitLabConfig) getRepoList(repos []string) ([]*gitlab.Project, error) {
138 glProjects := make([]*gitlab.Project, 0, len(repos))

Callers 1

ListRepositoriesMethod · 0.95

Calls 3

getRepoListMethod · 0.95
discoverReposMethod · 0.95
boolPointerFunction · 0.85

Tested by

no test coverage detected