Skip to content

Commit 6b58afa

Browse files
committed
Added github workflows
1 parent 8893bd7 commit 6b58afa

File tree

1 file changed

+22
-11
lines changed

1 file changed

+22
-11
lines changed

src/action.js

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,10 @@ const mapOpenGitHubIssuesToComponents = async (octokit, context) => {
5454
for (let issue of driftDetectionIssues) {
5555
const metadata = getMetadataFromIssueBody(issue.body);
5656
const slug = `${metadata.stack}-${metadata.component}`
57-
componentsToIssues[slug] = issue.number;
57+
componentsToIssues[slug] = {
58+
number: issue.number,
59+
error: issue.title.startsWith('Failure Detected in')
60+
};
5861
componentsToMetadata[slug] = metadata;
5962
}
6063

@@ -106,7 +109,7 @@ const triage = async(componentsToIssueNumber, componentsToIssueMetadata, compone
106109

107110
for (let slug of slugs) {
108111
if (componentsToIssueNumber.hasOwnProperty(slug)) {
109-
const issueNumber = componentsToIssueNumber[slug];
112+
const issueNumber = componentsToIssueNumber[slug].number;
110113

111114
if (componentsToPlanState.hasOwnProperty(slug)) {
112115
const drifted = componentsToPlanState[slug].drifted;
@@ -169,7 +172,7 @@ const closeIssues = async (octokit, context, componentsToIssueNumber, removedCom
169172

170173
for (let i = 0; i < componentsToCloseIssuesFor.length; i++) {
171174
const slug = componentsToCloseIssuesFor[i];
172-
const issueNumber = componentsToIssueNumber[slug];
175+
const issueNumber = componentsToIssueNumber[slug].number;
173176

174177
octokit.rest.issues.update({
175178
...repository,
@@ -183,7 +186,12 @@ const closeIssues = async (octokit, context, componentsToIssueNumber, removedCom
183186
labels: ['drift-recovered']
184187
});
185188

186-
const comment = removedComponents.hasOwnProperty(slug) ? `Component \`${slug}\` has been removed` : `Component \`${slug}\` is not drifting anymore`;
189+
let comment = `Component \`${slug}\` is not drifting anymore`;
190+
if ( removedComponents.hasOwnProperty(slug) ) {
191+
comment = `Component \`${slug}\` has been removed`;
192+
} else if ( componentsToIssueNumber[slug].error ) {
193+
comment = `Failure \`${slug}\` solved`;
194+
}
187195

188196
octokit.rest.issues.createComment({
189197
...repository,
@@ -273,7 +281,7 @@ const updateIssues = async (octokit, context, componentsToIssues, componentsToUp
273281
for (let i = 0; i < componentsToUpdateExistingIssue.length; i++) {
274282
const slug = componentsToUpdateExistingIssue[i];
275283
const issueDescription = fs.readFileSync(`issue-description-${slug}.md`, 'utf8');
276-
const issueNumber = componentsToIssues[slug];
284+
const issueNumber = componentsToIssues[slug].number;
277285

278286
octokit.rest.issues.update({
279287
...repository,
@@ -317,21 +325,24 @@ const postDriftDetectionSummary = async (context, maxOpenedIssues, componentsToI
317325

318326
for (let i = 0; i < removedComponents.length; i++) {
319327
const slug = removedComponents[i];
320-
const issueNumber = componentsToIssues[slug];
328+
const issueNumber = componentsToIssues[slug].number;
321329

322330
table.push( `| [${slug}](https://github.com/${orgName}/${repo}/actions/runs/${runId}#user-content-result-${slug}) | ![removed](https://shields.io/badge/REMOVED-grey?style=for-the-badge "Removed") | Component has been removed. Closed issue [#${issueNumber}](https://github.com/${orgName}/${repo}/issues/${issueNumber}) |`);
323331
}
324332

325333
for (let i = 0; i < recoveredComponents.length; i++) {
326334
const slug = recoveredComponents[i];
327-
const issueNumber = componentsToIssues[slug];
328-
329-
table.push( `| [${slug}](https://github.com/${orgName}/${repo}/actions/runs/${runId}#user-content-result-${slug}) | ![recovered](https://shields.io/badge/RECOVERED-brightgreen?style=for-the-badge "Recovered") | Drift recovered. Closed issue [#${issueNumber}](https://github.com/${orgName}/${repo}/issues/${issueNumber}) |`);
335+
const issueNumber = componentsToIssues[slug].number;
336+
if (componentsToIssues[slug].error) {
337+
table.push( `| [${slug}](https://github.com/${orgName}/${repo}/actions/runs/${runId}#user-content-result-${slug}) | ![recovered](https://shields.io/badge/RECOVERED-brightgreen?style=for-the-badge "Recovered") | Failure recovered. Closed issue [#${issueNumber}](https://github.com/${orgName}/${repo}/issues/${issueNumber}) |`);
338+
} else {
339+
table.push( `| [${slug}](https://github.com/${orgName}/${repo}/actions/runs/${runId}#user-content-result-${slug}) | ![recovered](https://shields.io/badge/RECOVERED-brightgreen?style=for-the-badge "Recovered") | Drift recovered. Closed issue [#${issueNumber}](https://github.com/${orgName}/${repo}/issues/${issueNumber}) |`);
340+
}
330341
}
331342

332343
for (let i = 0; i < driftingComponents.length; i++) {
333344
const slug = driftingComponents[i];
334-
const issueNumber = componentsToIssues[slug];
345+
const issueNumber = componentsToIssues[slug].number;
335346

336347
if (componentsCandidatesToCreateIssue.indexOf(slug) === -1) {
337348
table.push( `| [${slug}](https://github.com/${orgName}/${repo}/actions/runs/${runId}#user-content-result-${slug}) | ![drifted](https://shields.io/badge/DRIFTED-important?style=for-the-badge "Drifted") | Drift detected. Issue already exists [#${issueNumber}](https://github.com/${orgName}/${repo}/issues/${issueNumber}) |`);
@@ -340,7 +351,7 @@ const postDriftDetectionSummary = async (context, maxOpenedIssues, componentsToI
340351

341352
for (let i = 0; i < erroredComponents.length; i++) {
342353
const slug = erroredComponents[i];
343-
const issueNumber = componentsToIssues[slug];
354+
const issueNumber = componentsToIssues[slug].number;
344355

345356
if (componentsCandidatesToCreateIssue.indexOf(slug) === -1) {
346357
table.push( `| [${slug}](https://github.com/${orgName}/${repo}/actions/runs/${runId}#user-content-result-${slug}) | ![failed](https://shields.io/badge/FAILED-ff0000?style=for-the-badge "Failed") | Failure detected. Issue already exists [#${issueNumber}](https://github.com/${orgName}/${repo}/issues/${issueNumber}) |`);

0 commit comments

Comments
 (0)