Documentation
¶
Index ¶
- Constants
- Variables
- func BacklogAPIURL(baseURL string, boardID uint, qry *BoardBacklogParams) string
- func BuildJiraIssueURL(baseURL, issueKey string) string
- func DefaultIssuesSetTableColumns() *table.ColumnDefinitions
- func GetCustomValueString(iss jira.Issue, customFieldKey string) (string, error)
- func GetUnmarshalCustomValue(iss jira.Issue, customFieldKey string, v any) error
- func HTTPClientBasicAuthFile(filename, credsKey string) (hclient *http.Client, serverURL string, err error)
- func IssueFieldsCustomFieldString(fields *jira.IssueFields, id string) string
- func IssueToEpic(iss jira.Issue) (*jira.Epic, error)
- func JiraClientBasicAuth(creds *goauth.CredentialsBasicAuth) (*jira.Client, error)
- func JiraClientBasicAuthFile(filename, credsKey string) (*jira.Client, error)
- func KeysJQL(keys []string) string
- func UserPassCredsBasic(filename, credsKey string) (*goauth.CredentialsBasicAuth, error)
- type API
- type BacklogService
- func (s *BacklogService) GetBacklogIssuesAll(boardID uint, jql string) (*IssuesResponse, [][]byte, error)
- func (s *BacklogService) GetBacklogIssuesResponse(boardID uint, qry *BoardBacklogParams) (*IssuesResponse, []byte, error)
- func (s *BacklogService) GetBacklogIssuesSetAll(boardID uint, jql string) (*IssuesSet, [][]byte, error)
- type BoardBacklogParams
- type Client
- func (c *Client) GetIssuesSetForKeys(keys []string) (*IssuesSet, error)
- func (c *Client) Issue(key string) (*jira.Issue, error)
- func (c *Client) SearchIssues(jql string) (Issues, error)
- func (c *Client) SearchIssuesMulti(jqls ...string) (Issues, error)
- func (c *Client) SearchIssuesSetForJQL(jql string) (*IssuesSet, error)
- type CustomCol
- type CustomField
- type CustomFieldSchema
- type CustomFields
- type CustomFieldsService
- type CustomTableCols
- type EpicsSet
- type IssueCustomField
- type IssueMeta
- type IssueMetas
- type IssueMore
- func (im *IssueMore) AsigneeName() string
- func (im *IssueMore) CreateTime() time.Time
- func (im *IssueMore) CreatorName() string
- func (im *IssueMore) CustomField(customFieldLabel string) (IssueCustomField, error)
- func (im *IssueMore) EpicKey() string
- func (im *IssueMore) EpicName() string
- func (im *IssueMore) EpicNameOrSummary() string
- func (im *IssueMore) Key() string
- func (im *IssueMore) KeyURL(baseURL string) string
- func (im *IssueMore) Meta(baseURL string) IssueMeta
- func (im *IssueMore) ParentKey() string
- func (im *IssueMore) Project() string
- func (im *IssueMore) ProjectKey() string
- func (im *IssueMore) Resolution() string
- func (im *IssueMore) Status() string
- func (im *IssueMore) Summary() string
- func (im *IssueMore) Type() string
- func (im *IssueMore) UpdateTime() time.Time
- type Issues
- type IssuesResponse
- type IssuesSet
- func (is *IssuesSet) Add(issues ...jira.Issue) error
- func (is *IssuesSet) Counts() map[string]map[string]uint
- func (is *IssuesSet) CountsByProject() map[string]uint
- func (is *IssuesSet) CountsByProjectKey() map[string]uint
- func (is *IssuesSet) CountsByStatus() map[string]uint
- func (is *IssuesSet) CountsByTime() map[string]uint
- func (is *IssuesSet) CountsByType() map[string]uint
- func (is *IssuesSet) EpicKeys(customFieldID string) []string
- func (is *IssuesSet) FilterByStatus(inclStatuses, exclStatuses []string) (*IssuesSet, error)
- func (is *IssuesSet) FilterStatus(inclStatuses ...string) (*IssuesSet, error)
- func (is *IssuesSet) FilterType(inclTypes ...string) (*IssuesSet, error)
- func (is *IssuesSet) HistogramSets() *histogram.HistogramSets
- func (is *IssuesSet) InflateEpicKeys(customFieldEpicLinkID string)
- func (is *IssuesSet) InflateEpics(jclient *jira.Client, customFieldIDEpicLink string) error
- func (is *IssuesSet) Issues() Issues
- func (is *IssuesSet) Keys() []string
- func (is *IssuesSet) Lineage(key string) (IssueMetas, error)
- func (is *IssuesSet) RetrieveIssues(client *Client, ids []string) error
- func (is *IssuesSet) RetrieveParents(client *Client) error
- func (is *IssuesSet) RetrieveParentsIssuesSet(client *Client) (*IssuesSet, error)
- func (is *IssuesSet) Table(customCols *CustomTableCols) (table.Table, error)
- func (is *IssuesSet) TimeStats() gojira.TimeStats
- func (is *IssuesSet) UnknownParents() []string
- func (is *IssuesSet) WriteFileJSON(name, prefix, indent string) error
- type Status
Constants ¶
const ( ParamFields = "fields" ParamJQL = "jql" ParamMaxResults = "maxResults" ParamStartAt = "startAt" ParamValidateQuery = "validateQuery" )
const ( APIURL2ListCustomFields = `/rest/api/2/field` StatusDone = "Done" StatusOpen = "Open" StatusCustomClosed = "Closed" MaxResults = uint(1000) MetaParamRank = "_rank" TimeTimeSpent = "Time Spent" TimeTimeEstimate = "Time Estimate" TimeTimeOriginalEstimate = "Time Original Estimate" TimeAggregateTimeOriginalEstimate = "Aggregate Time Original Estimate" TimeAggregateTimeSpent = "Aggregate Time Spent" TimeAggregateTimeEstimate = "Aggregate Time Estimate" TimeTimeRemaining = "Time Remaining" TimeTimeRemainingOriginal = "Time Remaining Original" )
const (
CustomFieldNameEpicLink = "Epic Link"
)
Variables ¶
var ErrJiraRESTClientCannotBeNil = errors.New("jirarest.Client cannot be nil")
Functions ¶
func BacklogAPIURL ¶
func BacklogAPIURL(baseURL string, boardID uint, qry *BoardBacklogParams) string
BacklogAPIURL returns a backlog issues API URL described at https://docs.atlassian.com/jira-software/REST/7.3.1/ . The description is here: Returns all issues from the board's backlog, for the given board Id. This only includes issues that the user has permission to view. The backlog contains incomplete issues that are not assigned to any future or active sprint. Note, if the user does not have permission to view the board, no issues will be returned at all. Issues returned from this resource include Agile fields, like sprint, closedSprints, flagged, and epic. By default, the returned issues are ordered by rank. Reference: https://docs.atlassian.com/jira-software/REST/7.3.1/#agile/1.0/board-getIssuesForBacklog
func BuildJiraIssueURL ¶
func DefaultIssuesSetTableColumns ¶
func DefaultIssuesSetTableColumns() *table.ColumnDefinitions
func GetCustomValueString ¶
GetCustomValueString attempts to return a string if either the custom value is a simple string or is an `IssueCustomField`, in which case it returns the `value` property.
func GetUnmarshalCustomValue ¶
GetUnmarshalCustomValue can be used to unmarshal a value to `IssueCustomField{}`.
func HTTPClientBasicAuthFile ¶
func IssueFieldsCustomFieldString ¶
func IssueFieldsCustomFieldString(fields *jira.IssueFields, id string) string
IssueFieldsCustomFieldString returns a string custom field, e.g "Epic Link"
func JiraClientBasicAuth ¶
func JiraClientBasicAuth(creds *goauth.CredentialsBasicAuth) (*jira.Client, error)
func JiraClientBasicAuthFile ¶
func UserPassCredsBasic ¶
func UserPassCredsBasic(filename, credsKey string) (*goauth.CredentialsBasicAuth, error)
Types ¶
type API ¶ added in v0.8.0
type API struct {
Client *Client
Backlog *BacklogService
CustomFields *CustomFieldsService
}
type BacklogService ¶ added in v0.6.0
type BacklogService struct {
Client *Client
// contains filtered or unexported fields
}
func NewBacklogService ¶ added in v0.6.0
func NewBacklogService(client *Client) *BacklogService
func (*BacklogService) GetBacklogIssuesAll ¶ added in v0.6.0
func (s *BacklogService) GetBacklogIssuesAll(boardID uint, jql string) (*IssuesResponse, [][]byte, error)
func (*BacklogService) GetBacklogIssuesResponse ¶ added in v0.6.0
func (s *BacklogService) GetBacklogIssuesResponse(boardID uint, qry *BoardBacklogParams) (*IssuesResponse, []byte, error)
func (*BacklogService) GetBacklogIssuesSetAll ¶ added in v0.6.0
type BoardBacklogParams ¶ added in v0.6.0
type BoardBacklogParams struct {
StartAt uint `url:"startAt"`
MaxResults uint `url:"maxResults"`
JQL string `url:"jql"`
ValidateQuery bool `url:"validateQuery"`
Fields string `url:"fields"`
Expand string `url:"expand"`
}
func (BoardBacklogParams) URLValues ¶ added in v0.6.0
func (p BoardBacklogParams) URLValues() url.Values
type Client ¶ added in v0.7.0
func ClientsBasicAuthFile ¶
func (*Client) GetIssuesSetForKeys ¶ added in v0.7.0
func (*Client) SearchIssues ¶ added in v0.7.0
SearchIssues returns all issues for a JQL query, automatically handling API pagination.
func (*Client) SearchIssuesMulti ¶ added in v0.7.0
type CustomField ¶
type CustomField struct {
ID string `json:"id"` // "customfield_12345"
Key string `json:"key"`
Name string `json:"name"`
UntranslatedName string `json:"untranslatedName"`
Custom bool `json:"custom"`
Orderable bool `json:"orderable"`
Searchable bool `json:"searchable"`
ClauseNames []string `json:"clauseNames"`
Schema CustomFieldSchema `json:"schema"`
}
type CustomFieldSchema ¶
type CustomFields ¶
type CustomFields []CustomField
func (CustomFields) FilterByIDs ¶
func (cfs CustomFields) FilterByIDs(ids ...string) CustomFields
func (CustomFields) FilterByNames ¶
func (cfs CustomFields) FilterByNames(names ...string) CustomFields
func (CustomFields) SortByName ¶
func (cfs CustomFields) SortByName(asc bool) CustomFields
func (CustomFields) WriteTable ¶
func (cfs CustomFields) WriteTable(w io.Writer)
type CustomFieldsService ¶ added in v0.8.0
type CustomFieldsService struct {
JRClient *Client
}
func NewCustomFieldsService ¶ added in v0.8.0
func NewCustomFieldsService(client *Client) *CustomFieldsService
func (*CustomFieldsService) GetCustomField ¶ added in v0.8.0
func (svc *CustomFieldsService) GetCustomField(customFieldName string) (CustomField, error)
func (*CustomFieldsService) GetCustomFieldEpicLink ¶ added in v0.8.0
func (svc *CustomFieldsService) GetCustomFieldEpicLink() (CustomField, error)
func (*CustomFieldsService) GetCustomFields ¶ added in v0.8.0
func (svc *CustomFieldsService) GetCustomFields() (CustomFields, error)
type CustomTableCols ¶
type CustomTableCols struct {
Cols []CustomCol
}
type EpicsSet ¶
func NewEpicsSet ¶
func NewEpicsSet() EpicsSet
type IssueCustomField ¶
type IssueCustomField struct {
ID string `json:"id"`
Self string `json:"self"`
Value string `json:"value"`
}
func GetIssueCustomValueStruct ¶
func GetIssueCustomValueStruct(iss jira.Issue) (*IssueCustomField, error)
type IssueMeta ¶ added in v0.7.0
type IssueMetas ¶ added in v0.7.0
type IssueMetas []IssueMeta
type IssueMore ¶ added in v0.7.0
func (*IssueMore) AsigneeName ¶ added in v0.7.0
func (*IssueMore) CreateTime ¶ added in v0.7.0
func (*IssueMore) CreatorName ¶ added in v0.7.0
func (*IssueMore) CustomField ¶ added in v0.8.0
func (im *IssueMore) CustomField(customFieldLabel string) (IssueCustomField, error)
CustomField takes a custom value key such as `customfield_12345`.`
func (*IssueMore) EpicNameOrSummary ¶ added in v0.8.1
func (*IssueMore) ProjectKey ¶ added in v0.7.0
func (*IssueMore) Resolution ¶ added in v0.7.0
func (*IssueMore) UpdateTime ¶ added in v0.7.0
type Issues ¶
func IssuesReadFileJSON ¶ added in v0.7.0
func (Issues) CountsByProjectTypeStatus ¶
func (ii Issues) CountsByProjectTypeStatus() *histogram.HistogramSets
CountsByProjectTypeStatus returns a `*histogram.Histogram` with issue counts by project, type, and status. This can be used to export CSV and XLSX sheets for analysis.
func (Issues) CountsByType ¶
func (Issues) WriteFileJSON ¶ added in v0.7.0
type IssuesResponse ¶
type IssuesResponse struct {
Issues Issues `json:"issues" structs:"issues"`
Expand string `json:"expand"`
StartAt int `json:"startAt" structs:"startAt"`
MaxResults int `json:"maxResults" structs:"maxResults"`
Total int `json:"total" structs:"total"`
}
IssuesResponse is only a small wrapper around the Search (with JQL) method to be able to parse the results
func IssuesResponseReadFile ¶
func IssuesResponseReadFile(filename string) (*IssuesResponse, error)
func ParseIssuesResponseBytes ¶
func ParseIssuesResponseBytes(b []byte) (*IssuesResponse, error)
func ParseIssuesResponseReader ¶
func ParseIssuesResponseReader(r io.Reader) (*IssuesResponse, error)
type IssuesSet ¶
func NewIssuesSet ¶
func (*IssuesSet) CountsByProject ¶ added in v0.7.0
func (*IssuesSet) CountsByProjectKey ¶ added in v0.7.0
func (*IssuesSet) CountsByStatus ¶ added in v0.6.0
func (*IssuesSet) CountsByTime ¶ added in v0.6.0
func (*IssuesSet) CountsByType ¶ added in v0.6.0
func (*IssuesSet) FilterByStatus ¶ added in v0.6.0
func (*IssuesSet) FilterStatus ¶ added in v0.7.0
func (*IssuesSet) FilterType ¶ added in v0.7.0
func (*IssuesSet) HistogramSets ¶
func (is *IssuesSet) HistogramSets() *histogram.HistogramSets
func (*IssuesSet) InflateEpicKeys ¶
func (*IssuesSet) InflateEpics ¶
InflateEpics uses the Jira REST API to inflate the Issue struct with an Epic struct.
func (*IssuesSet) Lineage ¶ added in v0.7.0
func (is *IssuesSet) Lineage(key string) (IssueMetas, error)
func (*IssuesSet) RetrieveIssues ¶ added in v0.7.0
func (*IssuesSet) RetrieveParents ¶ added in v0.7.0
func (*IssuesSet) RetrieveParentsIssuesSet ¶ added in v0.7.0
func (*IssuesSet) Table ¶
func (is *IssuesSet) Table(customCols *CustomTableCols) (table.Table, error)