@@ -223,25 +223,42 @@ class Jira {
223
223
}
224
224
225
225
/**
226
- * Search for issues with a specific status and update them
227
- * @param {string } currentStatus - Current status to search for
228
- * @param {string } newStatus - New status to transition to
229
- * @param {Object } fields - Additional fields to set during transition
226
+ * Find issues with a specific status
227
+ * @param {string } status - Status to search for
228
+ * @param {number } maxResults - Maximum number of results to return (default: 100)
229
+ * @param {Array<string> } fields - Fields to include in the response (default: ['key', 'summary', 'status'])
230
+ * @returns {Promise<Array> } Array of issues matching the status
230
231
*/
231
- async updateByStatus ( currentStatus , newStatus , fields = { } ) {
232
+ async findByStatus ( status , maxResults = 100 , fields = [ 'key' , 'summary' , 'status' ] ) {
232
233
try {
233
- let jql = `status = "${ currentStatus } "`
234
+ const jql = `status = "${ status } "`
234
235
const response = await this . request ( '/search' , {
235
236
method : 'POST' ,
236
237
body : JSON . stringify ( {
237
238
jql,
238
- fields : [ 'key' , 'summary' , 'status' ] ,
239
- maxResults : 100
239
+ fields,
240
+ maxResults
240
241
} )
241
242
} )
242
243
243
244
const data = await response . json ( )
244
- const issues = data . issues
245
+ console . log ( `Found ${ data . issues . length } issues in "${ status } " status` )
246
+ return data . issues
247
+ } catch ( error ) {
248
+ console . error ( `Error finding issues by status:` , error . message )
249
+ throw error
250
+ }
251
+ }
252
+
253
+ /**
254
+ * Search for issues with a specific status and update them
255
+ * @param {string } currentStatus - Current status to search for
256
+ * @param {string } newStatus - New status to transition to
257
+ * @param {Object } fields - Additional fields to set during transition
258
+ */
259
+ async updateByStatus ( currentStatus , newStatus , fields = { } ) {
260
+ try {
261
+ const issues = await this . findByStatus ( currentStatus )
245
262
console . log ( `Found ${ issues . length } issues in "${ currentStatus } " status` )
246
263
247
264
const settledIssuePromises = await Promise . allSettled (
@@ -255,7 +272,6 @@ class Jira {
255
272
256
273
const rejected = settledIssuePromises . filter ( ( result ) => result . status === 'rejected' )
257
274
const fullfilled = settledIssuePromises . filter ( ( result ) => result . status === 'fulfilled' )
258
-
259
275
console . log ( `Sucessfully updated ${ fullfilled . length } isssues.` )
260
276
261
277
if ( rejected ) {
0 commit comments