76 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			76 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
/**
 | 
						|
 * @license
 | 
						|
 * Copyright Google LLC 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
 | 
						|
 */
 | 
						|
 | 
						|
/**
 | 
						|
 * Class that can be used to describe pull request failures. A failure
 | 
						|
 * is described through a human-readable message and a flag indicating
 | 
						|
 * whether it is non-fatal or not.
 | 
						|
 */
 | 
						|
export class PullRequestFailure {
 | 
						|
  constructor(
 | 
						|
      /** Human-readable message for the failure */
 | 
						|
      public message: string,
 | 
						|
      /** Whether the failure is non-fatal and can be forcibly ignored. */
 | 
						|
      public nonFatal = false) {}
 | 
						|
 | 
						|
  static claUnsigned() {
 | 
						|
    return new this(`CLA has not been signed. Please make sure the PR author has signed the CLA.`);
 | 
						|
  }
 | 
						|
 | 
						|
  static failingCiJobs() {
 | 
						|
    return new this(`Failing CI jobs.`, true);
 | 
						|
  }
 | 
						|
 | 
						|
  static pendingCiJobs() {
 | 
						|
    return new this(`Pending CI jobs.`, true);
 | 
						|
  }
 | 
						|
 | 
						|
  static notMergeReady() {
 | 
						|
    return new this(`Not marked as merge ready.`);
 | 
						|
  }
 | 
						|
 | 
						|
  static mismatchingTargetBranch(allowedBranches: string[]) {
 | 
						|
    return new this(
 | 
						|
        `Pull request is set to wrong base branch. Please update the PR in the Github UI ` +
 | 
						|
        `to one of the following branches: ${allowedBranches.join(', ')}.`);
 | 
						|
  }
 | 
						|
 | 
						|
  static unsatisfiedBaseSha() {
 | 
						|
    return new this(
 | 
						|
        `Pull request has not been rebased recently and could be bypassing CI checks. ` +
 | 
						|
        `Please rebase the PR.`);
 | 
						|
  }
 | 
						|
 | 
						|
  static mergeConflicts(failedBranches: string[]) {
 | 
						|
    return new this(
 | 
						|
        `Could not merge pull request into the following branches due to merge ` +
 | 
						|
        `conflicts: ${
 | 
						|
            failedBranches.join(', ')}. Please rebase the PR or update the target label.`);
 | 
						|
  }
 | 
						|
 | 
						|
  static unknownMergeError() {
 | 
						|
    return new this(`Unknown merge error occurred. Please see console output above for debugging.`);
 | 
						|
  }
 | 
						|
 | 
						|
  static unableToFixupCommitMessageSquashOnly() {
 | 
						|
    return new this(
 | 
						|
        `Unable to fixup commit message of pull request. Commit message can only be ` +
 | 
						|
        `modified if the PR is merged using squash.`);
 | 
						|
  }
 | 
						|
 | 
						|
  static notFound() {
 | 
						|
    return new this(`Pull request could not be found upstream.`);
 | 
						|
  }
 | 
						|
 | 
						|
  static insufficientPermissionsToMerge(
 | 
						|
      message = `Insufficient Github API permissions to merge pull request. Please ensure that ` +
 | 
						|
          `your auth token has write access.`) {
 | 
						|
    return new this(message);
 | 
						|
  }
 | 
						|
}
 |