async checkTriage()

in functions/src/plugins/triage.ts [73:101]


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