-
Notifications
You must be signed in to change notification settings - Fork 22
/
jira_comment.go
51 lines (41 loc) · 1.37 KB
/
jira_comment.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
package message
import (
"github.com/mongodb/grip/level"
)
type jiraComment struct {
Payload JIRAComment `bson:"payload" json:"payload" yaml:"payload"`
Base `bson:"metadata" json:"metadata" yaml:"metadata"`
}
// JIRAComment represents a single comment to post to the given JIRA issue
type JIRAComment struct {
IssueID string `bson:"issue_id,omitempty" json:"issue_id,omitempty" yaml:"issue_id,omitempty"`
Body string `bson:"body" json:"body" yaml:"body"`
}
// NewJIRACommentMessage returns a self-contained composer for posting a comment
// to a single JIRA issue. This composer will override the issue set in the
// JIRA sender
func NewJIRACommentMessage(p level.Priority, issueID, body string) Composer {
s := MakeJIRACommentMessage(issueID, body)
_ = s.SetPriority(p)
return s
}
// MakeJIRACommentMessage returns a self-contained composer for posting a comment
// to a single JIRA issue. This composer will override the issue set in the
// JIRA sender. The composer will not have a priority set
func MakeJIRACommentMessage(issueID, body string) Composer {
return &jiraComment{
Payload: JIRAComment{
IssueID: issueID,
Body: body,
},
}
}
func (c *jiraComment) Loggable() bool {
return len(c.Payload.IssueID) > 0 && len(c.Payload.Body) > 0
}
func (c *jiraComment) String() string {
return c.Payload.Body
}
func (c *jiraComment) Raw() interface{} {
return &c.Payload
}