@@ -10,7 +10,8 @@ let coreGlob
1010 * @param {string } organization GitHub organization name
1111 * @param {number } projectNumber project ID as seen in project board URL
1212 * @param {string } statusName status field name to be set
13- * @param {string } statusValue status name to be assigned
13+ * @param {string } prStatusValue PR status name to be assigned
14+ * @param {string } issueStatusValue Issue status name to be assigned
1415 * @param {Boolean } includeEffort if true, set effort
1516 * @param {string } effortName effort field name to be set
1617 * @param {string } effortMapping JSON effort name - days map
@@ -25,7 +26,8 @@ module.exports = async (
2526 organization = '' ,
2627 projectNumber ,
2728 statusName = 'status' ,
28- statusValue = 'todo' ,
29+ prStatusValue = 'todo' ,
30+ issueStatusValue = 'todo' ,
2931 includeEffort = true ,
3032 effortName = 'effort' ,
3133 effortMapping = '{"two days": 2, "workweek": 5}' ,
@@ -59,14 +61,21 @@ module.exports = async (
5961
6062 // get todo status
6163 let statusFieldId ;
62- let statusValueId ;
64+ let prStatusValueId ;
65+ let issueStatusValueId ;
6366 projectFieldOptions . forEach ( field => {
6467 if ( field . name === statusName ) {
6568 statusFieldId = field . id ;
6669 field . options . forEach ( status => {
67- if ( status . name . toLowerCase ( ) . includes ( statusValue . toLowerCase ( ) ) )
68- statusValueId = status . id ;
70+ if ( status . name . toLowerCase ( ) . includes ( prStatusValue . toLowerCase ( ) ) )
71+ prStatusValueId = status . id ;
72+ if ( status . name . toLowerCase ( ) . includes ( issueStatusValue . toLowerCase ( ) ) )
73+ issueStatusValueId = status . id ;
6974 } ) ;
75+ if ( ! prStatusValueId )
76+ bail ( "cannot find PR target status" )
77+ if ( ! issueStatusValueId )
78+ bail ( "cannot find Issue target status" )
7079 } ;
7180 } ) ;
7281
@@ -194,7 +203,9 @@ module.exports = async (
194203 break ;
195204 }
196205 } ;
197-
206+ if ( ! milestonePattern ) {
207+ bail ( "cannot estimate effort" )
208+ }
198209 // select effort ID based on pattern
199210 projectFieldOptions . forEach ( field => {
200211 if ( field . name === effortName ) {
@@ -217,7 +228,7 @@ module.exports = async (
217228 project : projectId ,
218229 item : projectItemId ,
219230 status_field : statusFieldId ,
220- status_value : statusValueId ,
231+ status_value : prStatusValueId ,
221232 effort_field : effortFieldId ,
222233 effort_value : effortValueId ,
223234 primary_milestone_field : monthlyMilestoneFieldId ,
@@ -244,7 +255,7 @@ module.exports = async (
244255 project : projectId ,
245256 item : projectItemId ,
246257 status_field : statusFieldId ,
247- status_value : statusValueId ,
258+ status_value : prStatusValueId ,
248259 primary_milestone_field : monthlyMilestoneFieldId ,
249260 primary_milestone_value : monthlyMilestoneValueId ,
250261 secondary_milestone_field : quarterlyMilestoneFieldId ,
@@ -263,7 +274,7 @@ module.exports = async (
263274 project : projectId ,
264275 item : projectItemId ,
265276 status_field : statusFieldId ,
266- status_value : statusValueId ,
277+ status_value : issueStatusValueId ,
267278 } ;
268279 try {
269280 await github . graphql ( assignProjectFieldsQuery , assignProjectFieldsParams ) ;
0 commit comments