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  }