build: use new labeling and branching in merge script (#38428)

We introduced a new shared configuration for merge script
labels that follow the proposal of:
https://docs.google.com/document/d/197kVillDwx-RZtSVOBtPb4BBIAw0E9RT3q3v6DZkykU

These label semantics and the branching are set up for the Angular
framework with this commit. The goal is that labeling and merging
is consistent between all Angular projects and that clear rules
are defined for branching. This was previously not the case.

PR Close #38428
This commit is contained in:
Paul Gschwendtner 2020-07-24 17:54:44 +02:00 committed by Joey Perrott
parent e8ea839df8
commit 7723bfd9ba
1 changed files with 6 additions and 19 deletions

View File

@ -1,38 +1,25 @@
import {MergeConfig} from '../dev-infra/pr/merge/config'; import {DevInfraMergeConfig} from '../dev-infra/pr/merge/config';
import {getDefaultTargetLabelConfiguration} from '../dev-infra/pr/merge/defaults';
import {github} from './github';
/** /**
* Configuration for the merge tool in `ng-dev`. This sets up the labels which * Configuration for the merge tool in `ng-dev`. This sets up the labels which
* are respected by the merge script (e.g. the target labels). * are respected by the merge script (e.g. the target labels).
*/ */
export const merge = (): MergeConfig => { export const merge: DevInfraMergeConfig['merge'] = async api => {
// TODO: resume dynamically determining patch branch
const patch = '10.0.x';
return { return {
githubApiMerge: false, githubApiMerge: false,
claSignedLabel: 'cla: yes', claSignedLabel: 'cla: yes',
mergeReadyLabel: /^PR action: merge(-assistance)?/, mergeReadyLabel: /^PR action: merge(-assistance)?/,
caretakerNoteLabel: 'PR action: merge-assistance', caretakerNoteLabel: 'PR action: merge-assistance',
commitMessageFixupLabel: 'commit message fixup', commitMessageFixupLabel: 'commit message fixup',
labels: [ labels: await getDefaultTargetLabelConfiguration(api, github, '@angular/core'),
{
pattern: 'PR target: master-only',
branches: ['master'],
},
{
pattern: 'PR target: patch-only',
branches: [patch],
},
{
pattern: 'PR target: master & patch',
branches: ['master', patch],
},
],
requiredBaseCommits: { requiredBaseCommits: {
// PRs that target either `master` or the patch branch, need to be rebased // PRs that target either `master` or the patch branch, need to be rebased
// on top of the latest commit message validation fix. // on top of the latest commit message validation fix.
// These SHAs are the commits that update the required license text in the header. // These SHAs are the commits that update the required license text in the header.
'master': '5aeb9a4124922d8ac08eb73b8f322905a32b0b3a', 'master': '5aeb9a4124922d8ac08eb73b8f322905a32b0b3a',
[patch]: '27b95ba64a5d99757f4042073fd1860e20e3ed24' '10.0.x': '27b95ba64a5d99757f4042073fd1860e20e3ed24'
}, },
}; };
}; };