Documentation ¶
Index ¶
- Constants
- func DefaultStatusesMapSlice() map[string][]string
- func IsMetaStage(status string) bool
- func JQLStringsSimple(field string, exclude bool, vals []string, jqlMaxLength uint) []string
- func MetaStageOrder() []string
- func StatusesInactive() []string
- func TimeRemaining(status string, timeOriginalEstimate, timeEstimate, timeSpent int) (timeRemainingOriginal, timeRemaining int)
- type Config
- type EstimateStats
- type EstimateVsActual
- type IssuesStats
- type JQL
- type ProjectMeta
- type ProjectsMeta
- type StatusesSet
- func (ss *StatusesSet) Add(status, metaStatus string)
- func (ss *StatusesSet) AddMapSlice(m map[string][]string)
- func (ss *StatusesSet) DedupeMetaStageOrder()
- func (ss *StatusesSet) MetaStage(status string) string
- func (ss *StatusesSet) MetaStageOrderMap() map[string]uint
- func (ss *StatusesSet) StatusesDone() []string
- func (ss *StatusesSet) StatusesForMetaStage(metaStatus string) []string
- func (ss *StatusesSet) StatusesInDevelopment() []string
- func (ss *StatusesSet) StatusesInDevelopmentAndDone() []string
- func (ss *StatusesSet) StatusesReadyForPlanning() []string
- type TimeStats
- type TimeStatsSet
- type TimeStatsSets
Constants ¶
const ( FieldFilter = "filter" FieldIssue = "issue" // issue keys FieldKey = "key" FieldParent = "parent" FieldProject = "project" // project keys FieldStatus = "status" FieldType = "type" FieldIssuePlural = "issues" // Statuses: https://support.atlassian.com/jira-cloud-administration/docs/what-are-issue-statuses-priorities-and-resolutions/ StatusOpen = "Open" StatusInProgress = "In Progress" StatusDone = "Done" StatusToDo = "To Do" StatusInReview = "In Review" StatusUnderReview = "Under review" StatusApproved = "Approved" // Done TypeIssue = "Issue" TypeIssuePlural = "Issues" TypeBug = "Bug" TypeBugPlural = "Bugs" TypeEpic = "Epic" TypeEpicPlural = "Epics" TypeSpike = "Spike" TypeSpikePlural = "Spikes" TypeStory = "Story" TypeStoryPlural = "Stories" TypeInitiative = "Initiative" TypeInitiativePlura = "Initiatives" StagePlanning = "Planning" StageDesign = "Design" StageDevelopment = "Development" StageTesting = "Testing" StageDeployment = "Deployment" StageReview = "Review" MetaStageReadyForPlanning = metaStagePrefixReadyFor + StagePlanning MetaStageInPlanning = metaStagePrefixIn + StagePlanning MetaStageReadyForDesign = metaStagePrefixReadyFor + StageDesign MetaStageInDesign = metaStagePrefixIn + StageDesign MetaStageReadyForDevelopment = metaStagePrefixReadyFor + StageDevelopment MetaStageInDevelopment = metaStagePrefixIn + StageDevelopment MetaStageReadyForTesting = metaStagePrefixReadyFor + StageTesting MetaStageInTesting = metaStagePrefixIn + StageTesting MetaStageReadyForDeployment = metaStagePrefixReadyFor + StageDeployment MetaStageInDeployment = metaStagePrefixIn + StageDeployment MetaStageReadyForReview = metaStagePrefixReadyFor + StageReview MetaStageInReview = metaStagePrefixIn + StageReview MetaStageDone = StatusDone WorkingHoursPerDayDefault float32 = 8.0 WorkingDaysPerWeekDefault float32 = 5.0 JiraXMLGenerated = time.UnixDate // "Fri Jul 28 01:07:16 UTC 2023" JQLMaxResults = 100 JQLMaxLength = 6000 // https://jira.atlassian.com/browse/JRASERVER-41005 JQLInSep = "," )
Variables ¶
This section is empty.
Functions ¶
func DefaultStatusesMapSlice ¶ added in v0.12.0
func IsMetaStage ¶ added in v0.14.0
func JQLStringsSimple ¶ added in v0.10.0
JQLStringsSimple provides a set of JQLs for a single field and values. The purpose of this function is to split very long lists of values so that each JQL is under a certain length limit.
func MetaStageOrder ¶ added in v0.14.0
func MetaStageOrder() []string
func StatusesInactive ¶ added in v0.10.0
func StatusesInactive() []string
func TimeRemaining ¶
func TimeRemaining(status string, timeOriginalEstimate, timeEstimate, timeSpent int) (timeRemainingOriginal, timeRemaining int)
TimeRemaining returns calculated timeRemainingOriginal and timeRemaiing and against the timeOriginalEstimate and timeEstimate respectively.
Types ¶
type Config ¶
type Config struct { ServerURL string WorkingHoursPerDay float32 WorkingDaysPerWeek float32 StatusesSet *StatusesSet }
func NewConfigDefault ¶
func NewConfigDefault() *Config
func (*Config) CapacityForDaysPeople ¶
func (*Config) SecondsToDays ¶
func (*Config) SecondsToDaysString ¶
type EstimateStats ¶
type EstimateVsActual ¶
type EstimateVsActual struct { ClosedCount int ClosedCountWithEstimate int EstimateDays float64 ActualDays float64 EstimateRatio float64 }
func (*EstimateVsActual) Inflate ¶
func (eva *EstimateVsActual) Inflate()
type IssuesStats ¶
type IssuesStats struct { WorkingHoursPerDay float32 WorkingDaysPerWeek float32 ItemCount int ItemCountByStatus map[string]int ItemCountByType map[string]int EstimateStatsByType map[string]EstimateStats TimeOriginalEstimate time.Duration TimeOriginalEstimateDays float64 AggregateTimeSpent time.Duration AggregateTimeSpentDays float64 ClosedEstimateVsActual EstimateVsActual }
type JQL ¶ added in v0.10.0
type JQL struct { FiltersIncl [][]string // outer level is `AND`, inner level is `IN`. FiltersExcl [][]string IssuesIncl [][]string IssuesExcl [][]string KeysIncl [][]string KeysExcl [][]string ParentsIncl [][]string ParentsExcl [][]string ProjectsIncl [][]string ProjectsExcl [][]string StatusesIncl [][]string StatusesExcl [][]string TypesIncl [][]string TypesExcl [][]string }
JQL is a JQL builder. It will create a JQL string using `JQL.String()` from the supplied infomration.
type ProjectMeta ¶ added in v0.11.0
type ProjectsMeta ¶ added in v0.11.0
type ProjectsMeta struct {
Projects map[string]ProjectMeta
}
func NewProjectsMeta ¶ added in v0.11.0
func NewProjectsMeta() ProjectsMeta
func (*ProjectsMeta) AddMap ¶ added in v0.11.0
func (pm *ProjectsMeta) AddMap(info map[string]float32)
func (*ProjectsMeta) CapacitySimple ¶ added in v0.12.0
func (pm *ProjectsMeta) CapacitySimple(itemsPerWeekPerFTE, weekCount float32) float32
func (*ProjectsMeta) FTEs ¶ added in v0.12.0
func (pm *ProjectsMeta) FTEs() float32
type StatusesSet ¶ added in v0.12.0
func NewStatusesSet ¶ added in v0.12.0
func NewStatusesSet() StatusesSet
func (*StatusesSet) Add ¶ added in v0.12.0
func (ss *StatusesSet) Add(status, metaStatus string)
func (*StatusesSet) AddMapSlice ¶ added in v0.12.0
func (ss *StatusesSet) AddMapSlice(m map[string][]string)
AddMapSlice should be a map where the keys are meta statuses and the values are slices of Jira statuses.
func (*StatusesSet) DedupeMetaStageOrder ¶ added in v0.14.0
func (ss *StatusesSet) DedupeMetaStageOrder()
func (*StatusesSet) MetaStage ¶ added in v0.14.0
func (ss *StatusesSet) MetaStage(status string) string
MetaStage returns the metastatus for a status. If there is no metastatus, an empty string is returned.
func (*StatusesSet) MetaStageOrderMap ¶ added in v0.14.0
func (ss *StatusesSet) MetaStageOrderMap() map[string]uint
MetaStageOrderMap returns a `map[string]uint` where the key is the meta status and the value is the index.
func (*StatusesSet) StatusesDone ¶ added in v0.12.0
func (ss *StatusesSet) StatusesDone() []string
func (*StatusesSet) StatusesForMetaStage ¶ added in v0.14.0
func (ss *StatusesSet) StatusesForMetaStage(metaStatus string) []string
func (*StatusesSet) StatusesInDevelopment ¶ added in v0.14.0
func (ss *StatusesSet) StatusesInDevelopment() []string
func (*StatusesSet) StatusesInDevelopmentAndDone ¶ added in v0.14.0
func (ss *StatusesSet) StatusesInDevelopmentAndDone() []string
func (*StatusesSet) StatusesReadyForPlanning ¶ added in v0.14.0
func (ss *StatusesSet) StatusesReadyForPlanning() []string
type TimeStats ¶
type TimeStats struct { TimeUnit string WorkingHoursPerDay float32 WorkingDaysPerWeek float32 ItemCount int TimeSpent float32 TimeEstimate float32 TimeOriginalEstimate float32 AggregateTimeOriginalEstimate float32 AggregateTimeSpent float32 AggregateTimeEstimate float32 TimeRemaining float32 TimeRemainingOriginal float32 }
func (TimeStats) SecondsToDays ¶
type TimeStatsSet ¶
type TimeStatsSets ¶
type TimeStatsSets struct {
Map map[string]TimeStatsSet
}
func (*TimeStatsSets) AddIssue ¶
func (tss *TimeStatsSets) AddIssue(iss jira.Issue)