github.com/git-chglog/git-chglog@v0.15.5-0.20240126074033-6a6993d52d69/jira.go (about) 1 package chglog 2 3 import ( 4 agjira "github.com/andygrunwald/go-jira" 5 ) 6 7 // JiraClient is an HTTP client for Jira 8 type JiraClient interface { 9 GetJiraIssue(id string) (*agjira.Issue, error) 10 } 11 12 type jiraClient struct { 13 username string 14 token string 15 url string 16 } 17 18 // NewJiraClient returns an instance of JiraClient 19 func NewJiraClient(config *Config) JiraClient { 20 return jiraClient{ 21 username: config.Options.JiraUsername, 22 token: config.Options.JiraToken, 23 url: config.Options.JiraURL, 24 } 25 } 26 27 func (jira jiraClient) GetJiraIssue(id string) (*agjira.Issue, error) { 28 tp := agjira.BasicAuthTransport{ 29 Username: jira.username, 30 Password: jira.token, 31 } 32 client, err := agjira.NewClient(tp.Client(), jira.url) 33 if err != nil { 34 return nil, err 35 } 36 issue, _, err := client.Issue.Get(id, nil) 37 return issue, err 38 }