From dd5948db8a1d3777340e4174a7ac80a3caeb5233 Mon Sep 17 00:00:00 2001 From: Jon Date: Tue, 12 Nov 2024 12:39:17 -0600 Subject: [PATCH] [codeowners] Filter kibanamachine (#199404) Currently we remove CODEOWNERS on backport branches to avoid review assignments: reviews were already collected on the source pull request. If there's a conflict, it will go through another round of review but not require all the original assignees. We want to re-add the file for our own tooling, and to avoid CODEOWNERS merge conflicts on backports. To do this, we're going to add a global override to code assignments on backport branches. This updates our CODEOWNERS libraries to ignore assignments to `kibanamachine`. --------- Co-authored-by: Dzmitry Lemechko --- packages/kbn-code-owners/src/file_code_owner.ts | 4 +++- packages/kbn-lint-packages-cli/migrate_plugins_to_package.ts | 3 ++- .../ingest_coverage/team_assignment/parse_owners.js | 5 +++-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/packages/kbn-code-owners/src/file_code_owner.ts b/packages/kbn-code-owners/src/file_code_owner.ts index 1f98d50c4bacc..a7812a6121d90 100644 --- a/packages/kbn-code-owners/src/file_code_owner.ts +++ b/packages/kbn-code-owners/src/file_code_owner.ts @@ -39,7 +39,9 @@ export function getPathsWithOwnersReversed(): PathWithOwners[] { const codeownersLines = codeownersContent.split(/\r?\n/); const codeowners = codeownersLines .map((line) => line.trim()) - .filter((line) => line && line[0] !== '#'); + .filter((line) => line && line[0] !== '#') + // kibanamachine is an assignment override on backport branches to avoid review requests + .filter((line) => line && !line.includes('@kibanamachine')); const pathsWithOwners: PathWithOwners[] = codeowners.map((c) => { const [path, ...ghTeams] = c.split(/\s+/); diff --git a/packages/kbn-lint-packages-cli/migrate_plugins_to_package.ts b/packages/kbn-lint-packages-cli/migrate_plugins_to_package.ts index 8641fa3c324d9..789729993c0bc 100644 --- a/packages/kbn-lint-packages-cli/migrate_plugins_to_package.ts +++ b/packages/kbn-lint-packages-cli/migrate_plugins_to_package.ts @@ -78,7 +78,8 @@ export async function migratePluginsToPackages(legacyManifests: RepoPath[]) { .split('\n') .flatMap((line) => { const trim = line.trim(); - if (!trim || trim.startsWith('#')) { + // kibanamachine is an assignment override on backport branches to avoid review requests + if (!trim || trim.startsWith('#') || trim.includes('@kibanamachine')) { return []; } diff --git a/src/dev/code_coverage/ingest_coverage/team_assignment/parse_owners.js b/src/dev/code_coverage/ingest_coverage/team_assignment/parse_owners.js index c384d4f010dc3..ed027e184ef75 100644 --- a/src/dev/code_coverage/ingest_coverage/team_assignment/parse_owners.js +++ b/src/dev/code_coverage/ingest_coverage/team_assignment/parse_owners.js @@ -13,8 +13,9 @@ import { pipe } from '../utils'; const allLines$ = (lineReader) => fromEvent(lineReader, 'line').pipe( - filter(function dropEmptiesAndDropComments(x) { - return x !== '' && !/^#\s{1,3}/.test(x); + filter(function dropEmptiesAndDropCommentsAndDropKibanamachine(x) { + // kibanamachine is an assignment override on backport branches to avoid review requests + return x !== '' && !/^#\s{1,3}/.test(x) && !x.includes('@kibanamachine'); }), map(pipe(dropCCDelim, pathAndTeams)), takeUntil(fromEvent(lineReader, 'close'))