()
| 100 | } |
| 101 | |
| 102 | func (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 | |
| 157 | func (c *GithubConfig) getRepoList(repos []string) ([]*github.Repository, error) { |
| 158 |
no test coverage detected