async checkTriage()

in functions/src/plugins/triagePR.ts [74:101]


  async checkTriage(context: Context): Promise<void> {
    if((context.payload.issue && context.payload.issue.pull_request) || context.payload.pull_request) {
      const pr: Github.PullRequestsGetResponse | Github.IssuesGetResponse = context.payload.pull_request || context.payload.issue;
      const config = await this.getConfig(context);
      if(config.disabled) {
        return;
      }
      const {owner, repo} = context.repo();
      const isL1Triaged = this.isTriaged(config.l1TriageLabels, getLabelsNames(pr.labels));
      if(!isL1Triaged) {
        if(pr.milestone) {
          await this.setMilestone(null, context.github, owner, repo, pr);
        }
      } else if(!pr.milestone || pr.milestone.number === config.defaultMilestone || pr.milestone.number === config.needsTriageMilestone) {
        const isL2Triaged = this.isTriaged(config.l2TriageLabels || config.triagedLabels, getLabelsNames(pr.labels));
        if(isL2Triaged) {
          if(!pr.milestone || pr.milestone.number !== config.defaultMilestone) {
            await this.setMilestone(config.defaultMilestone, context.github, owner, repo, pr);
          }
        } else {
          // if it's not triaged, set the "needsTriage" milestone
          if(!pr.milestone || pr.milestone.number !== config.needsTriageMilestone) {
            await this.setMilestone(config.needsTriageMilestone, context.github, owner, repo, pr);
          }
        }
      }
    }
  }