1
0
mirror of https://github.com/interviewstreet/go-jira.git synced 2025-06-08 23:26:20 +02:00

Add 'affects versions' to issue fields

This commit is contained in:
David Url 2019-04-28 19:52:48 +02:00
parent 18969b05a0
commit b1589c4b06
2 changed files with 80 additions and 36 deletions

View File

@ -128,6 +128,7 @@ type IssueFields struct {
IssueLinks []*IssueLink `json:"issuelinks,omitempty" structs:"issuelinks,omitempty"` IssueLinks []*IssueLink `json:"issuelinks,omitempty" structs:"issuelinks,omitempty"`
Comments *Comments `json:"comment,omitempty" structs:"comment,omitempty"` Comments *Comments `json:"comment,omitempty" structs:"comment,omitempty"`
FixVersions []*FixVersion `json:"fixVersions,omitempty" structs:"fixVersions,omitempty"` FixVersions []*FixVersion `json:"fixVersions,omitempty" structs:"fixVersions,omitempty"`
AffectsVersions []*AffectsVersion `json:"versions,omitempty" structs:"versions,omitempty"`
Labels []string `json:"labels,omitempty" structs:"labels,omitempty"` Labels []string `json:"labels,omitempty" structs:"labels,omitempty"`
Subtasks []*Subtasks `json:"subtasks,omitempty" structs:"subtasks,omitempty"` Subtasks []*Subtasks `json:"subtasks,omitempty" structs:"subtasks,omitempty"`
Attachments []*Attachment `json:"attachment,omitempty" structs:"attachment,omitempty"` Attachments []*Attachment `json:"attachment,omitempty" structs:"attachment,omitempty"`
@ -476,6 +477,9 @@ type FixVersion struct {
StartDate string `json:"startDate,omitempty" structs:"startDate,omitempty"` StartDate string `json:"startDate,omitempty" structs:"startDate,omitempty"`
} }
// AffectsVersion represents a software release which is affected by an issue.
type AffectsVersion Version
// CommentVisibility represents he visibility of a comment. // CommentVisibility represents he visibility of a comment.
// E.g. Type could be "role" and Value "Administrators" // E.g. Type could be "role" and Value "Administrators"
type CommentVisibility struct { type CommentVisibility struct {

View File

@ -937,6 +937,14 @@ func TestIssueFields_MarshalJSON_Success(t *testing.T) {
ID: "10000", ID: "10000",
Key: "EX", Key: "EX",
}, },
AffectsVersions: []*AffectsVersion{
&AffectsVersion{
ID: "10705",
Name: "2.1.0-rc3",
Self: "http://www.example.com/jira/rest/api/2/version/10705",
ReleaseDate: "2018-09-30",
},
},
} }
bytes, err := json.Marshal(i) bytes, err := json.Marshal(i)
@ -1428,3 +1436,35 @@ func TestIssueService_Get_Fields_Changelog(t *testing.T) {
t.Errorf("Expected CreatedTime func return %v time, %v got", tm, ct) t.Errorf("Expected CreatedTime func return %v time, %v got", tm, ct)
} }
} }
func TestIssueService_Get_Fields_AffectsVersions(t *testing.T) {
setup()
defer teardown()
testMux.HandleFunc("/rest/api/2/issue/10002", func(w http.ResponseWriter, r *http.Request) {
testMethod(t, r, "GET")
testRequestURL(t, r, "/rest/api/2/issue/10002")
fmt.Fprint(w, `{"fields":{"versions":[{"self":"http://www.example.com/jira/rest/api/2/version/10705","id":"10705","description":"test description","name":"2.1.0-rc3","archived":false,"released":false,"releaseDate":"2018-09-30"}]}}`)
})
issue, _, err := testClient.Issue.Get("10002", nil)
if issue == nil {
t.Error("Expected issue. Issue is nil")
}
if !reflect.DeepEqual(issue.Fields.AffectsVersions, []*AffectsVersion{
{
ID: "10705",
Name: "2.1.0-rc3",
Self: "http://www.example.com/jira/rest/api/2/version/10705",
ReleaseDate: "2018-09-30",
Released: false,
Archived: false,
Description: "test description",
},
}) {
t.Error("Expected AffectsVersions for the returned issue")
}
if err != nil {
t.Errorf("Error given: %s", err)
}
}