@@ -45,7 +45,7 @@ export default class GitLab {
45
45
46
46
this . MANAGED_LABELS = Object . values ( LABELS ) ;
47
47
try {
48
- const existingLabels = await this . getRepositoryLabels ( ) ;
48
+ let existingLabels = await this . getRepositoryLabels ( ) ;
49
49
const labelsToRemove = existingLabels . filter ( label => label . description && label . description . includes ( DEPRECATED_MANAGED_BY_OTA_MARKER ) ) ;
50
50
51
51
if ( labelsToRemove . length ) {
@@ -56,26 +56,26 @@ export default class GitLab {
56
56
}
57
57
}
58
58
59
- const updatedExistingLabels = labelsToRemove . length ? await this . getRepositoryLabels ( ) : existingLabels ; // Refresh labels after deletion, only if needed
60
- const managedLabelsNames = this . MANAGED_LABELS . map ( label => label . name ) ;
59
+ if ( labelsToRemove . length ) {
60
+ existingLabels = await this . getRepositoryLabels ( ) ;
61
+ }
61
62
62
- const obsoleteManagedLabels = updatedExistingLabels . filter ( label =>
63
- label . description
64
- && label . description . includes ( MANAGED_BY_OTA_MARKER )
65
- && ! managedLabelsNames . includes ( label . name ) ) ;
63
+ const managedLabelsNames = this . MANAGED_LABELS . map ( label => label . name ) ;
64
+ const obsoleteManagedLabels = existingLabels . filter ( label => label . description ?. includes ( MANAGED_BY_OTA_MARKER ) && ! managedLabelsNames . includes ( label . name ) ) ;
66
65
67
66
if ( obsoleteManagedLabels . length ) {
68
67
logger . info ( `Removing obsolete managed labels: ${ obsoleteManagedLabels . map ( label => `"${ label . name } "` ) . join ( ', ' ) } ` ) ;
69
68
70
69
for ( const label of obsoleteManagedLabels ) {
71
- await this . deleteLabel ( label . name ) ; /* eslint-disable-line no-await-in-loop */
70
+ await this . deleteLabel ( label . name ) ;
72
71
}
73
72
}
74
73
75
- const finalExistingLabels = obsoleteManagedLabels . length ? await this . getRepositoryLabels ( ) : updatedExistingLabels ;
76
- const existingLabelsNames = finalExistingLabels . map ( label => label . name ) ;
77
- const existingLabelsMap = new Map ( finalExistingLabels . map ( label => [ label . name , label ] ) ) ;
74
+ if ( obsoleteManagedLabels . length ) {
75
+ existingLabels = await this . getRepositoryLabels ( ) ;
76
+ }
78
77
78
+ const existingLabelsNames = existingLabels . map ( label => label . name ) ;
79
79
const missingLabels = this . MANAGED_LABELS . filter ( label => ! existingLabelsNames . includes ( label . name ) ) ;
80
80
81
81
if ( missingLabels . length ) {
@@ -91,7 +91,7 @@ export default class GitLab {
91
91
}
92
92
93
93
const labelsToUpdate = this . MANAGED_LABELS . filter ( label => {
94
- const existingLabel = existingLabelsMap . get ( label . name ) ;
94
+ const existingLabel = existingLabels . find ( existingLabel => existingLabel . name === label . name ) ;
95
95
96
96
if ( ! existingLabel ) {
97
97
return false ;
@@ -107,7 +107,7 @@ export default class GitLab {
107
107
logger . info ( `Updating labels with changed descriptions: ${ labelsToUpdate . map ( label => `"${ label . name } "` ) . join ( ', ' ) } ` ) ;
108
108
109
109
for ( const label of labelsToUpdate ) {
110
- await this . updateLabel ( { /* eslint-disable-line no-await-in-loop */
110
+ await this . updateLabel ( {
111
111
name : label . name ,
112
112
color : `#${ label . color } ` ,
113
113
description : `${ label . description } ${ MANAGED_BY_OTA_MARKER } ` ,
0 commit comments