From 08476297dfdc5d22e21589802e351c55ede39a81 Mon Sep 17 00:00:00 2001 From: Victoria Zhizhonkova Date: Wed, 28 Feb 2024 18:57:43 +0700 Subject: [PATCH] feat: process issues by tag label --- VKUI/complete-publish/src/main.ts | 1 + VKUI/complete-publish/src/workflowHandler.ts | 28 ++++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/VKUI/complete-publish/src/main.ts b/VKUI/complete-publish/src/main.ts index 6085c227..87871014 100644 --- a/VKUI/complete-publish/src/main.ts +++ b/VKUI/complete-publish/src/main.ts @@ -10,6 +10,7 @@ async function run(): Promise { const workflow = new WorkflowHandler(token, releaseTag); await workflow.processReleaseNotes(latest === 'true'); + await workflow.processIssuesByTagLabel(); await workflow.processMilestone(); if (workflow.isProcessWithError()) { diff --git a/VKUI/complete-publish/src/workflowHandler.ts b/VKUI/complete-publish/src/workflowHandler.ts index 17cffef3..fddd8141 100644 --- a/VKUI/complete-publish/src/workflowHandler.ts +++ b/VKUI/complete-publish/src/workflowHandler.ts @@ -45,6 +45,19 @@ export class WorkflowHandler { } } + public async processIssuesByTagLabel() { + try { + const issueNumbers = await this.getIssueNumbersByTagLabel(); + + await this.commentOnIssues(issueNumbers); + } catch (error) { + if (error instanceof Error) { + core.error(error.message); + } + this.error = true; + } + } + public async processReleaseNotes(latest: boolean) { try { const releaseNotes = await this.findReleaseNotes(); @@ -115,6 +128,21 @@ export class WorkflowHandler { }, []); } + private async getIssueNumbersByTagLabel() { + const issues = await this.gh.paginate(this.gh.rest.issues.listForRepo, { + ...github.context.repo, + state: 'all', + labels: this.releaseTag, + }); + + return issues.reduce((issueNumbers, issue) => { + if (issue.state_reason !== IGNORED_STATE && !issue.locked) { + issueNumbers.push(issue.number); + } + return issueNumbers; + }, []); + } + private async commentOnIssues(issueNumbers: number[]) { core.debug(`Processing the following linked issues: [${issueNumbers}]`);