@@ -28,13 +28,24 @@ const getMetadataFromIssueBody = (body) => {
28
28
}
29
29
}
30
30
31
+ class Component {
32
+ constructor ( slug , metadata , issueNumber , drifted , error ) {
33
+ this . slug = slug ;
34
+ this . metadata = metadata ;
35
+ this . issueNumber = issueNumber ;
36
+ this . drifted = drifted ;
37
+ this . error = error ;
38
+ }
39
+ }
40
+
31
41
const mapOpenGitHubIssuesToComponents = async ( octokit , context ) => {
32
42
const repository = context . repo ;
33
43
34
44
let per_page = 100 ; // Max allowed value per page
35
45
let page = 1 ;
36
46
let componentsToIssues = { } ;
37
47
let componentsToMetadata = { } ;
48
+ let components = { } ;
38
49
let isContinue = true ;
39
50
40
51
while ( isContinue ) {
@@ -53,8 +64,10 @@ const mapOpenGitHubIssuesToComponents = async (octokit, context) => {
53
64
54
65
for ( let issue of driftDetectionIssues ) {
55
66
const metadata = getMetadataFromIssueBody ( issue . body ) ;
56
- componentsToIssues [ `${ metadata . stack } -${ metadata . component } ` ] = issue . number ;
57
- componentsToMetadata [ `${ metadata . stack } -${ metadata . component } ` ] = metadata ;
67
+ const slug = `${ metadata . stack } -${ metadata . component } `
68
+ componentsToIssues [ slug ] = issue . number ;
69
+ componentsToMetadata [ slug ] = metadata ;
70
+ components [ slug ] = new Component ( slug , metadata , issue . number , true , false )
58
71
}
59
72
60
73
page ++ ;
@@ -64,6 +77,7 @@ const mapOpenGitHubIssuesToComponents = async (octokit, context) => {
64
77
return {
65
78
componentsToIssues : componentsToIssues ,
66
79
componentsToMetadata : componentsToMetadata ,
80
+ components : components
67
81
} ;
68
82
}
69
83
@@ -73,6 +87,7 @@ const readMetadataFromPlanArtifacts = async () => {
73
87
74
88
let componentsToState = { } ;
75
89
let componentsToMetadata = { } ;
90
+ let components = { } ;
76
91
77
92
for ( let i = 0 ; i < metadataFiles . length ; i ++ ) {
78
93
const metadata = JSON . parse ( fs . readFileSync ( metadataFiles [ i ] , 'utf8' ) ) ;
@@ -83,17 +98,19 @@ const readMetadataFromPlanArtifacts = async () => {
83
98
drifted : metadata . drifted ,
84
99
error : metadata . error
85
100
} ;
86
- componentsToMetadata [ slug ] = metadata ;
101
+ componentsToMetadata [ slug ] = metadata ;
102
+ components [ slug ] = new Component ( slug , metadata , null , metadata . drifted , metadata . error )
87
103
}
88
104
89
105
return {
90
106
componentsToState : componentsToState ,
91
107
componentsToMetadata : componentsToMetadata ,
108
+ components : components
92
109
} ;
93
110
}
94
111
95
- const triage = async ( componentsToIssueNumber , componentsToIssueMetadata , componentsToPlanState ) => {
96
- let slugs = new Set ( [ ...Object . keys ( componentsToIssueNumber ) , ...Object . keys ( componentsToPlanState ) ] ) ;
112
+ const triage = async ( componentsToIssueNumber , componentsToIssueMetadata , componentsToPlanState , componentsFromIssues , componentsFromArtifacts ) => {
113
+ let slugs = new Set ( [ ...Object . keys ( componentsFromIssues ) , ...Object . keys ( componentsFromArtifacts ) ] ) ;
97
114
98
115
const componentsCandidatesToCreateIssue = [ ] ;
99
116
const componentsCandidatesToCloseIssue = [ ] ;
@@ -385,11 +402,13 @@ const runAction = async (octokit, context, parameters) => {
385
402
const openGitHubIssuesToComponents = await mapOpenGitHubIssuesToComponents ( octokit , context ) ;
386
403
const componentsToIssueNumber = openGitHubIssuesToComponents . componentsToIssues ;
387
404
const componentsToIssueMetadata = openGitHubIssuesToComponents . componentsToMetadata ;
405
+ const componentsFromIssues = openGitHubIssuesToComponents . components
388
406
389
407
const metadataFromPlanArtifacts = await readMetadataFromPlanArtifacts ( ) ;
390
408
const componentsToPlanState = metadataFromPlanArtifacts . componentsToState ;
409
+ const componentsFromArtifacts = metadataFromPlanArtifacts . components
391
410
392
- const triageResults = await triage ( componentsToIssueNumber , componentsToIssueMetadata , componentsToPlanState ) ;
411
+ const triageResults = await triage ( componentsToIssueNumber , componentsToIssueMetadata , componentsToPlanState , componentsFromIssues , componentsFromArtifacts ) ;
393
412
const componentsCandidatesToCreateIssue = triageResults . componentsCandidatesToCreateIssue ;
394
413
const componentsToUpdateExistingIssue = triageResults . componentsToUpdateExistingIssue ;
395
414
const removedComponents = triageResults . removedComponents ;
0 commit comments