Skip to content

Commit 9d85dcc

Browse files
Merge pull request #1428 from h0x0er/improve-kbanalysis
Add improvements in kbanalysis
2 parents 226b3da + 44c730e commit 9d85dcc

File tree

3 files changed

+59
-30
lines changed

3 files changed

+59
-30
lines changed

.github/workflows/kbanalysis.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ jobs:
4747
uses: peter-evans/create-pull-request@18f7dc018cc2cd597073088f7c7591b9d1c02672
4848
with:
4949
token: ${{secrets.PAT}} # need to use PAT since GITHUB_TOKEN does not initiate workflows
50-
body: "This PR adds a YAML file to describe token permissions needed for Action: ${{steps.get-action.outputs.id}}.\n Fixes #${{github.event.issue.number}}"
50+
body: "This PR adds a YAML file to describe token permissions needed for Action: ${{steps.get-action.outputs.id}}."
5151
commit-message: "added KB for issue#${{github.event.issue.number}}"
5252
title: "[KB] Add GitHub token permissions for ${{steps.get-action.outputs.id}} Action"
5353
branch: "issue#${{github.event.issue.number}}"

kbanalysis/dist/src/index.js

Lines changed: 28 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -8541,6 +8541,12 @@ async function handleKBIssue(octokit, owner, repo, issue) {
85418541
});
85428542
if (resp.status == 200) {
85438543
let old_body = resp.data.body;
8544+
let action_name = getAction(issue.title);
8545+
if (old_body.indexOf(action_name) >= 0) {
8546+
_actions_core__WEBPACK_IMPORTED_MODULE_0__.info(`[!] Action ${action_name} is already being tracked`);
8547+
let ret = await closeIssue(octokit, owner, repo, issue);
8548+
return ret;
8549+
}
85448550
let new_body = old_body + comment;
85458551
let resp2 = await octokit.rest.issues.updateComment({
85468552
owner: owner,
@@ -8553,20 +8559,8 @@ async function handleKBIssue(octokit, owner, repo, issue) {
85538559
}
85548560
else {
85558561
_actions_core__WEBPACK_IMPORTED_MODULE_0__.info(`[!] Added ${issue.title} in tracking comment.`);
8556-
let resp3 = await octokit.rest.issues.update({
8557-
owner: owner,
8558-
repo: repo,
8559-
issue_number: issue.number,
8560-
state: "closed",
8561-
});
8562-
if (resp3.status === 200) {
8563-
_actions_core__WEBPACK_IMPORTED_MODULE_0__.info(`[!] Closed Issue ${issue.number}`);
8564-
return "success";
8565-
}
8566-
else {
8567-
_actions_core__WEBPACK_IMPORTED_MODULE_0__.info(`[X] Unable to close issue ${issue.number}`);
8568-
return "error: unable to close issue";
8569-
}
8562+
let ret = await closeIssue(octokit, owner, repo, issue);
8563+
return ret;
85708564
}
85718565
}
85728566
_actions_core__WEBPACK_IMPORTED_MODULE_0__.info(`[X] Unable to handle: ${issue.title} `);
@@ -8607,6 +8601,26 @@ async function prepareComment(client, owner, repo, issue) {
86078601
body: "unable to fetch analysis",
86088602
});
86098603
}
8604+
function getAction(x) {
8605+
x = x.split(" ");
8606+
return x[6];
8607+
}
8608+
async function closeIssue(octokit, owner, repo, issue) {
8609+
let resp3 = await octokit.rest.issues.update({
8610+
owner: owner,
8611+
repo: repo,
8612+
issue_number: issue.number,
8613+
state: "closed",
8614+
});
8615+
if (resp3.status === 200) {
8616+
_actions_core__WEBPACK_IMPORTED_MODULE_0__.info(`[!] Closed Issue ${issue.number}`);
8617+
return "success";
8618+
}
8619+
else {
8620+
_actions_core__WEBPACK_IMPORTED_MODULE_0__.info(`[X] Unable to close issue ${issue.number}`);
8621+
return "error: unable to close issue";
8622+
}
8623+
}
86108624

86118625

86128626
/***/ }),

kbanalysis/src/issues-util.ts

Lines changed: 30 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import { Octokit } from "@octokit/core";
22
import { Api } from "@octokit/plugin-rest-endpoint-methods/dist-types/types";
33
import * as core from "@actions/core";
4-
import { exit } from "process";
54

65
export async function handleKBIssue(
76
octokit: Octokit & Api,
@@ -22,8 +21,14 @@ export async function handleKBIssue(
2221

2322
if (resp.status == 200) {
2423
let old_body = resp.data.body;
25-
let new_body = old_body + comment;
24+
let action_name = getAction(issue.title);
25+
if (old_body.indexOf(action_name) >= 0) {
26+
core.info(`[!] Action ${action_name} is already being tracked`);
27+
let ret = await closeIssue(octokit, owner, repo, issue)
28+
return ret;
29+
}
2630

31+
let new_body = old_body + comment;
2732
let resp2 = await octokit.rest.issues.updateComment({
2833
owner: owner,
2934
repo: repo,
@@ -34,19 +39,8 @@ export async function handleKBIssue(
3439
core.info(`[X] Unable to add: ${issue.number} in the tracking comment`);
3540
} else {
3641
core.info(`[!] Added ${issue.title} in tracking comment.`);
37-
let resp3 = await octokit.rest.issues.update({
38-
owner: owner,
39-
repo: repo,
40-
issue_number: issue.number,
41-
state: "closed",
42-
});
43-
if (resp3.status === 200) {
44-
core.info(`[!] Closed Issue ${issue.number}`);
45-
return "success";
46-
} else {
47-
core.info(`[X] Unable to close issue ${issue.number}`);
48-
return "error: unable to close issue";
49-
}
42+
let ret = await closeIssue(octokit, owner, repo, issue)
43+
return ret;
5044
}
5145
}
5246
core.info(`[X] Unable to handle: ${issue.title} `);
@@ -95,3 +89,24 @@ async function prepareComment(
9589
body: "unable to fetch analysis",
9690
});
9791
}
92+
93+
function getAction(x) {
94+
x = x.split(" ");
95+
return x[6];
96+
}
97+
98+
async function closeIssue(octokit, owner, repo, issue) {
99+
let resp3 = await octokit.rest.issues.update({
100+
owner: owner,
101+
repo: repo,
102+
issue_number: issue.number,
103+
state: "closed",
104+
});
105+
if (resp3.status === 200) {
106+
core.info(`[!] Closed Issue ${issue.number}`);
107+
return "success";
108+
} else {
109+
core.info(`[X] Unable to close issue ${issue.number}`);
110+
return "error: unable to close issue";
111+
}
112+
}

0 commit comments

Comments
 (0)