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

Method getAllRepos

github.go:102–155  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

100}
101
102func (c *GithubConfig) getAllRepos() ([]*github.Repository, error) {
103 all := make(map[string]*github.Repository, 0)
104
105 // fetch the configured repos
106 if len(c.Repositories) > 0 {
107 if repos, err := c.getRepoList(c.Repositories); err != nil {
108 return nil, err
109 } else {
110 for _, repo := range repos {
111 all[*repo.FullName] = repo
112 }
113 }
114 }
115
116 // use discovery mechanisms
117 var err error
118
119 for repos, response, apiErr := c.discoverRepos(1); true; repos, response, apiErr = c.discoverRepos(response.NextPage) {
120 if apiErr != nil {
121 err = apiErr
122 break
123 } else {
124 for _, repo := range repos {
125 all[*repo.FullName] = repo
126 }
127 }
128
129 if len(repos) == 0 || response.NextPage == 0 {
130 break
131 }
132 }
133 if err != nil {
134 return nil, err
135 }
136
137 if *c.Starred {
138 for repos, response, apiErr := c.getStarredRepos(1); true; repos, response, apiErr = c.getStarredRepos(response.NextPage) {
139 if apiErr != nil {
140 err = apiErr
141 break
142 } else {
143 for _, repo := range repos {
144 all[*repo.FullName] = repo
145 }
146 }
147
148 if len(repos) == 0 || response.NextPage == 0 {
149 break
150 }
151 }
152 }
153
154 return slices.Collect(maps.Values(all)), err
155}
156
157func (c *GithubConfig) getRepoList(repos []string) ([]*github.Repository, error) {
158

Callers 1

ListRepositoriesMethod · 0.95

Calls 3

getRepoListMethod · 0.95
discoverReposMethod · 0.95
getStarredReposMethod · 0.95

Tested by

no test coverage detected