From 8bab4b47535560f4bf86fa56eab0bd5fdfb97a60 Mon Sep 17 00:00:00 2001 From: Azeem Sajid Date: Wed, 29 Jan 2025 18:30:43 +0500 Subject: [PATCH 1/3] [gh project item-list] Add `iterationId` field in ProjectV2ItemFieldIterationValue --- pkg/cmd/project/shared/queries/queries.go | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/pkg/cmd/project/shared/queries/queries.go b/pkg/cmd/project/shared/queries/queries.go index 080a43097..5855e906e 100644 --- a/pkg/cmd/project/shared/queries/queries.go +++ b/pkg/cmd/project/shared/queries/queries.go @@ -235,10 +235,11 @@ type FieldValueNodes struct { Field ProjectField } `graphql:"... on ProjectV2ItemFieldDateValue"` ProjectV2ItemFieldIterationValue struct { - Title string - StartDate string - Duration int - Field ProjectField + Title string + StartDate string + Duration int + Field ProjectField + IterationId string } `graphql:"... on ProjectV2ItemFieldIterationValue"` ProjectV2ItemFieldLabelValue struct { Labels struct { @@ -1488,9 +1489,10 @@ func projectFieldValueData(v FieldValueNodes) interface{} { return v.ProjectV2ItemFieldDateValue.Date case "ProjectV2ItemFieldIterationValue": return map[string]interface{}{ - "title": v.ProjectV2ItemFieldIterationValue.Title, - "startDate": v.ProjectV2ItemFieldIterationValue.StartDate, - "duration": v.ProjectV2ItemFieldIterationValue.Duration, + "title": v.ProjectV2ItemFieldIterationValue.Title, + "startDate": v.ProjectV2ItemFieldIterationValue.StartDate, + "duration": v.ProjectV2ItemFieldIterationValue.Duration, + "iterationId": v.ProjectV2ItemFieldIterationValue.IterationId, } case "ProjectV2ItemFieldNumberValue": return v.ProjectV2ItemFieldNumberValue.Number From 029a5a577b2ab4ac180e4ff93ea6b74ebc09d75b Mon Sep 17 00:00:00 2001 From: Azeem Sajid Date: Thu, 30 Jan 2025 19:23:07 +0500 Subject: [PATCH 2/3] Update test --- pkg/cmd/project/shared/queries/export_data_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/cmd/project/shared/queries/export_data_test.go b/pkg/cmd/project/shared/queries/export_data_test.go index adfdce63f..c9f991ed4 100644 --- a/pkg/cmd/project/shared/queries/export_data_test.go +++ b/pkg/cmd/project/shared/queries/export_data_test.go @@ -321,7 +321,7 @@ func TestJSONProjectItem_DraftIssue_ProjectV2ItemFieldIterationValue(t *testing. assert.NoError(t, err) assert.JSONEq( t, - `{"items":[{"sprint":{"title":"Iteration Title","startDate":"","duration":0},"content":{"type":"DraftIssue","body":"a body","title":"Pull Request title","id":"draftIssueId"},"id":"draftIssueId"}],"totalCount":5}`, + `{"items":[{"sprint":{"title":"Iteration Title","startDate":"","duration":0,"iterationId":""},"content":{"type":"DraftIssue","body":"a body","title":"Pull Request title","id":"draftIssueId"},"id":"draftIssueId"}],"totalCount":5}`, string(out)) } From 5f54201fc5189fa41dfcb60bf6419b94fdbfa7ed Mon Sep 17 00:00:00 2001 From: Andy Feller Date: Mon, 3 Feb 2025 15:25:15 -0500 Subject: [PATCH 3/3] Ensure item iteration field is populated in tests Updating tests to ensure `ProjectV2ItemFieldIterationValue` actually populates `IterationId` appropriately. --- pkg/cmd/project/shared/queries/export_data_test.go | 3 ++- pkg/cmd/project/shared/queries/queries_test.go | 6 ++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/pkg/cmd/project/shared/queries/export_data_test.go b/pkg/cmd/project/shared/queries/export_data_test.go index c9f991ed4..25e3fbace 100644 --- a/pkg/cmd/project/shared/queries/export_data_test.go +++ b/pkg/cmd/project/shared/queries/export_data_test.go @@ -295,6 +295,7 @@ func TestJSONProjectItem_DraftIssue_ProjectV2ItemFieldIterationValue(t *testing. iterationFieldValue := FieldValueNodes{Type: "ProjectV2ItemFieldIterationValue"} iterationFieldValue.ProjectV2ItemFieldIterationValue.Title = "Iteration Title" iterationFieldValue.ProjectV2ItemFieldIterationValue.Field = iterationField + iterationFieldValue.ProjectV2ItemFieldIterationValue.IterationId = "iterationId" draftIssue := ProjectItem{ Id: "draftIssueId", @@ -321,7 +322,7 @@ func TestJSONProjectItem_DraftIssue_ProjectV2ItemFieldIterationValue(t *testing. assert.NoError(t, err) assert.JSONEq( t, - `{"items":[{"sprint":{"title":"Iteration Title","startDate":"","duration":0,"iterationId":""},"content":{"type":"DraftIssue","body":"a body","title":"Pull Request title","id":"draftIssueId"},"id":"draftIssueId"}],"totalCount":5}`, + `{"items":[{"sprint":{"title":"Iteration Title","startDate":"","duration":0,"iterationId":"iterationId"},"content":{"type":"DraftIssue","body":"a body","title":"Pull Request title","id":"draftIssueId"},"id":"draftIssueId"}],"totalCount":5}`, string(out)) } diff --git a/pkg/cmd/project/shared/queries/queries_test.go b/pkg/cmd/project/shared/queries/queries_test.go index bfdd4d95c..57ec9ed02 100644 --- a/pkg/cmd/project/shared/queries/queries_test.go +++ b/pkg/cmd/project/shared/queries/queries_test.go @@ -395,8 +395,9 @@ func TestProjectItems_FieldTitle(t *testing.T) { "fieldValues": map[string]interface{}{ "nodes": []map[string]interface{}{ { - "__typename": "ProjectV2ItemFieldIterationValue", - "title": "Iteration Title 1", + "__typename": "ProjectV2ItemFieldIterationValue", + "title": "Iteration Title 1", + "iterationId": "iterationId1", }, { "__typename": "ProjectV2ItemFieldMilestoneValue", @@ -426,6 +427,7 @@ func TestProjectItems_FieldTitle(t *testing.T) { assert.Len(t, project.Items.Nodes, 1) assert.Len(t, project.Items.Nodes[0].FieldValues.Nodes, 2) assert.Equal(t, project.Items.Nodes[0].FieldValues.Nodes[0].ProjectV2ItemFieldIterationValue.Title, "Iteration Title 1") + assert.Equal(t, project.Items.Nodes[0].FieldValues.Nodes[0].ProjectV2ItemFieldIterationValue.IterationId, "iterationId1") assert.Equal(t, project.Items.Nodes[0].FieldValues.Nodes[1].ProjectV2ItemFieldMilestoneValue.Milestone.Title, "Milestone Title 1") }