Skip to content

Commit

Permalink
feat(autodiscover): improve logging/visibility (#25304)
Browse files Browse the repository at this point in the history
  • Loading branch information
rarkins committed Oct 20, 2023
1 parent f19eff9 commit b565ee3
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 22 deletions.
41 changes: 30 additions & 11 deletions lib/modules/platform/github/index.ts
Expand Up @@ -262,17 +262,36 @@ async function fetchRepositories(): Promise<GhRestRepo[]> {
// Get all repositories that the user has access to
export async function getRepos(config?: AutodiscoverConfig): Promise<string[]> {
logger.debug('Autodiscovering GitHub repositories');
return (await fetchRepositories())
.filter(is.nonEmptyObject)
.filter((repo) => !repo.archived)
.filter((repo) => {
if (config?.topics) {
const autodiscoverTopics = config.topics;
return repo.topics.some((topic) => autodiscoverTopics.includes(topic));
}
return true;
})
.map((repo) => repo.full_name);
const nonEmptyRepositories = (await fetchRepositories()).filter(
is.nonEmptyObject
);
const nonArchivedRepositories = nonEmptyRepositories.filter(
(repo) => !repo.archived
);
if (nonArchivedRepositories.length < nonEmptyRepositories.length) {
logger.debug(
`Filtered out ${
nonEmptyRepositories.length - nonArchivedRepositories.length
} archived repositories`
);
}
if (!config?.topics) {
return nonArchivedRepositories.map((repo) => repo.full_name);
}

logger.debug({ topics: config.topics }, 'Filtering by topics');
const topicRepositories = nonArchivedRepositories.filter((repo) =>
repo.topics?.some((topic) => config?.topics?.includes(topic))
);

if (topicRepositories.length < nonArchivedRepositories.length) {
logger.debug(
`Filtered out ${
nonArchivedRepositories.length - topicRepositories.length
} repositories not matching topic filters`
);
}
return topicRepositories.map((repo) => repo.full_name);
}

async function getBranchProtection(
Expand Down
22 changes: 11 additions & 11 deletions lib/workers/global/autodiscover.ts
Expand Up @@ -13,6 +13,7 @@ function repoName(value: string | { repository: string }): string {
export async function autodiscoverRepositories(
config: AllConfig
): Promise<AllConfig> {
const { autodiscoverFilter } = config;
if (config.platform === 'local') {
if (config.repositories?.length) {
logger.debug(
Expand Down Expand Up @@ -42,31 +43,30 @@ export async function autodiscoverRepositories(
});
if (!discovered?.length) {
// Soft fail (no error thrown) if no accessible repositories
logger.debug(
'The account associated with your token does not have access to any repos'
);
logger.debug('No repositories were autodiscovered');
return config;
}

if (config.autodiscoverFilter) {
logger.debug(`Autodiscovered ${discovered.length} repositories`);

if (autodiscoverFilter) {
logger.debug({ autodiscoverFilter }, 'Applying autodiscoverFilter');
discovered = applyFilters(
discovered,
is.string(config.autodiscoverFilter)
? [config.autodiscoverFilter]
: config.autodiscoverFilter
is.string(autodiscoverFilter) ? [autodiscoverFilter] : autodiscoverFilter
);

if (!discovered.length) {
// Soft fail (no error thrown) if no accessible repositories match the filter
logger.debug('None of the discovered repositories matched the filter');
return config;
}
logger.debug(
`Autodiscovered ${discovered.length} repositories after filter`
);
}

logger.info(
{ length: discovered.length, repositories: discovered },
`Autodiscovered repositories`
);
logger.info({ repositories: discovered }, `Autodiscovered repositories`);

// istanbul ignore if
if (config.repositories?.length) {
Expand Down

0 comments on commit b565ee3

Please sign in to comment.