Joey Perrott 719224bffd feat(dev-infra): add support for new global approvers in pullapprove (#36324)
Pullapprove as added a few new features to allow for us to better
execute our expectation for global approvals. We need to allow for
an expectation that our global approver groups are not in the list
of approved groups. Additionally, since approval groups apply to
all files in the repo, the global approval groups also do not have
conditions defined for them, which means pullapprove verification
need to allow for no conditions need to be defined.

PR Close #36324
2020-04-01 13:25:48 -07:00

36 lines
790 B
TypeScript

/**
* @license
* Copyright Google Inc. All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
import {parse as parseYaml} from 'yaml';
export interface PullApproveGroupConfig {
conditions?: string;
reviewers: {
users: string[],
teams?: string[],
}|{
teams: string[],
};
}
export interface PullApproveConfig {
version: number;
github_api_version?: string;
pullapprove_conditions?: {
condition: string,
unmet_status: string,
explanation: string,
}[];
groups: {
[key: string]: PullApproveGroupConfig,
};
}
export function parsePullApproveYaml(rawYaml: string): PullApproveConfig {
return parseYaml(rawYaml) as PullApproveConfig;
}