Skip to content

Commit

Permalink
[QA] Generate Code Owners
Browse files Browse the repository at this point in the history
Record to codeowners.

Types fixup

Not done yet, but so far I've got a sorta-solution for
just the files, not the excludeFiles.

The rub is that one of my expressions breaks when I use the real
rule set.  There's something in the real rule set that I'm not
considering.  But, I'm sleepy lol

Meh, for codeowners, this is done.
  • Loading branch information
wayneseymour committed Aug 13, 2020
1 parent 4c810be commit b4c59fa
Show file tree
Hide file tree
Showing 9 changed files with 900 additions and 22 deletions.
7 changes: 4 additions & 3 deletions .ci/Jenkinsfile_coverage
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,10 @@ kibanaPipeline(timeoutMinutes: 240) {
]) {
workers.base(name: 'coverage-worker', size: 'l', ramDisk: false, bootstrapped: false) {
catchError {
kibanaCoverage.runTests()
kibanaTeamAssign.load('team_assignment', "### Upload Team Assignment JSON")
handleIngestion(TIME_STAMP)
// kibanaCoverage.runTests()
// kibanaTeamAssign.load('team_assignment', "### Upload Team Assignment JSON")
// handleIngestion(TIME_STAMP)
kibanaTeamAssign.generateCodeOwners('.github/CODEOWNERS', "### Generate CODEOWNERS")
}
handleFail()
}
Expand Down
48 changes: 48 additions & 0 deletions packages/kbn-dev-utils/src/code_ownership/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
/*
* Licensed to Elasticsearch B.V. under one or more contributor
* license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright
* ownership. Elasticsearch B.V. licenses this file to you under
* the Apache License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/

import { createFlagError, run, RunContext } from '../run';
import { rules } from './ownership_config';
import { record } from './record';

const description = `
Create .github/CODEOWNERS file from authoritative source
`;

export const generateCodeOwners = () => {
run(
({ flags, log }: RunContext) => {
if (flags.codeOwnersPath === '')
throw createFlagError('please provide a single --codeOwnersPath flag');

record(flags.codeOwnersPath as string, log, rules);
},
{
description,
flags: {
string: ['codeOwnersPath'],
help: `
--codeOwnersPath Required, path to CODEOWNERS file.
`,
},
}
);
};
Loading

0 comments on commit b4c59fa

Please sign in to comment.