jazz

package module
v0.0.0-...-9e26ea8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 12, 2023 License: Apache-2.0 Imports: 29 Imported by: 0

README

Go Reference Go Report Card

go-jazz

This package provides access to the API of the IBM Engineering Lifecycle Management.

Features

  • generic client that handles multiple authentication methods
    • Form Challenge
    • Basic Auth
  • support for requests under a global configuration
  • interface to RTC SCM credentials (see Credential helper)
  • support of multiple jazz applications:
    • CCM:
      • generated code with all available object types
      • read only
    • QM:
      • only some objects implemented
      • modification of some object implemented
      • upload of attachments
    • GC:
      • only minimal list and get implementation

Usage

Note: At least Go 1.18 is required as this package is using generics.

import "gitlab.com/bboehmke/go-jazz"

Construct a new Jazz client, then access one of the applications. For example, to list all work items available in CCM:

client, err := jazz.NewClient("https://jazz.example.com/", "user", "password")
if err != nil {
    panic(err)
}

workItems, err := jazz.CCMList[*jazz.CCMWorkItem](context.TODO(), client.CCM, nil)

Note: Use the generic URL without the ccm, qm or gc suffix!

CCM Application

The CCM interface is build based on the description of the Reportable REST API.

The objects are directly generated from the documentation (see cmd/ccm_model_generator).

There are two request types:

  1. CCMList, CCMListChan: returns a list of objects
  2. CCMGet, CCMGetFilter: returns only one object

For example to get all work items created by a specific user we can do the following:

// first get the user with the user ID "user"
user, err := jazz.CCMGetFilter[*jazz.CCMContributor](context.TODO(), client.CCM, jazz.CCMFilter{
    "UserId": []interface{}{"user"},
})
if err != nil {
    panic(err)
}

// then query the work items
workItems, err := jazz.CCMList[*jazz.CCMWorkItem](context.TODO(), client.CCM, jazz.CCMFilter{
    "Creator": []interface{}{user},
})
if err != nil {
    panic(err)
}
QM Application

The QM interface is build based on the description of the Reportable REST API.

The interface only implements a small subset of available objects and values provided by the API.

There are 3 request types:

  1. QMList, QMListChan: returns a list of objects
  2. QMGet, QMGetFilter: returns only one object
  3. QMSave: is used to modify an object (only supported for some objects)
  4. QMListEntryChan: similar to QMListChan but does not load the objects and only returns resource URLs

Note: currently only some fields and objects are supported for write operations

Each action against the QM API are related to a project so this has to be get first. All following action are executed against this project.

For example to get all execution records of a test plan:

// get the project
project, err := client.QM.GetProject(context.TODO(), "Project Title")
if err != nil {
    panic(err)
}

// get a test plan by its name/title
testPlan, err := jazz.QMGetFilter[*jazz.QMTestPlan](context.TODO(), project, jazz.QMFilter{
    "title": "TestPlan Title",
})
if err != nil {
    panic(err)
}

// get execution records from test plan
executionRecords, err := QMList[*QMTestExecutionRecord](context.TODO(), project, map[string]string{
    "testplan/@href": testPlan.ResourceUrl,
})
if err != nil {
    panic(err)
}

For some relation the objects contains methods to query for related objects:

// get execution records from test plan
executionRecords, err := testPlan.TestExecutionRecords(context.TODO())
if err != nil {
    panic(err)
}
Credential Helper

Instead of providing the password directly it is also possible to reuse the password stored in the eclipse password store (which is used by teh SCM desktop client):

password, err := jazz.ReadEclipsePassword("https://jazz.example.com/", "user")
if err != nil {
    panic(err)
}

Note: this is currently only possible on Windows.

API Reference

This implementation is mainly based on these resources:

Also, some information were collected based on API responses and other information available in the jazz.net forums:

Documentation

Index

Constants

View Source
const (
	QMResultStatePaused       = "com.ibm.rqm.execution.common.state.paused"
	QMResultStateInProgress   = "com.ibm.rqm.execution.common.state.inprogress"
	QMResultStateNotRun       = "com.ibm.rqm.execution.common.state.notrun"
	QMResultStatePassed       = "com.ibm.rqm.execution.common.state.passed"
	QMResultStatePermFailed   = "com.ibm.rqm.execution.common.state.perm_failed"
	QMResultStateIncomplete   = "com.ibm.rqm.execution.common.state.incomplete"
	QMResultStateInconclusive = "com.ibm.rqm.execution.common.state.inconclusive"
	QMResultStatePartBlocked  = "com.ibm.rqm.execution.common.state.part_blocked"
	QMResultStateDeferred     = "com.ibm.rqm.execution.common.state.deferred"
	QMResultStateFailed       = "com.ibm.rqm.execution.common.state.failed"
	QMResultStateError        = "com.ibm.rqm.execution.common.state.error"
	QMResultStateBlocked      = "com.ibm.rqm.execution.common.state.blocked"
)

Variables

View Source
var CCMBaseObjectType = reflect.TypeOf(CCMBaseObject{})
View Source
var CCMErrorEmptyResponse = errors.New("empty response XML -> item maybe deleted")

CCMErrorEmptyResponse is returned if an empty XML response was received

Functions

func CCMGet

func CCMGet[T CCMObject](ctx context.Context, ccm *CCMApplication, id string) (T, error)

CCMGet object of the given type

func CCMGetFilter

func CCMGetFilter[T CCMObject](ctx context.Context, ccm *CCMApplication, filter CCMFilter) (T, error)

CCMGetFilter object of the given filter

func CCMList

func CCMList[T CCMObject](ctx context.Context, ccm *CCMApplication, filter CCMFilter) ([]T, error)

CCMList object of the given type

func CCMListChan

func CCMListChan[T CCMObject](ctx context.Context, ccm *CCMApplication, filter CCMFilter, results chan T) error

CCMListChan object of the given type returned via a channel

func CCMListEntryChan

func CCMListEntryChan[T CCMObject](ctx context.Context, ccm *CCMApplication, filter CCMFilter, results chan string) error

CCMListEntryChan queries only the references of objects (without loading)

func Chan2List

func Chan2List[T any](f func(ch chan T) error) ([]T, error)

Chan2List converts a channel to a slice

func QMGet

func QMGet[T QMObject](ctx context.Context, proj *QMProject, id string) (T, error)

QMGet object of the given type

func QMGetFilter

func QMGetFilter[T QMObject](ctx context.Context, proj *QMProject, filter QMFilter) (T, error)

QMGetFilter object of the given filter

func QMList

func QMList[T QMObject](ctx context.Context, proj *QMProject, filter QMFilter) ([]T, error)

QMList object of the given type

func QMListChan

func QMListChan[T QMObject](ctx context.Context, proj *QMProject, filter QMFilter, results chan T) error

QMListChan object of the given type returned via a channel

func QMListEntryChan

func QMListEntryChan[T QMObject](ctx context.Context, proj *QMProject, filter QMFilter, results chan FeedEntry, fastMode bool) error

QMListEntryChan queries only the references of objects (without loading) if fastMode is set an experimental parallel feed request is used

func QMSave

func QMSave[T QMObject](ctx context.Context, proj *QMProject, obj T) (T, error)

QMSave object of the given type

func ReadEclipsePassword

func ReadEclipsePassword(user, url string) string

ReadEclipsePassword reads password from eclipse secure storage

Types

type App

type App struct {
	Application
}

func (*App) RootServices

func (a *App) RootServices() *RootService

type Application

type Application interface {
	Name() string
	ID() string
	Client() *Client
}

type CCMApplication

type CCMApplication struct {
	// contains filtered or unexported fields
}

CCMApplication interface

func (*CCMApplication) Client

func (a *CCMApplication) Client() *Client

Client instance used for communication

func (*CCMApplication) ID

func (a *CCMApplication) ID() string

ID of application

func (*CCMApplication) Name

func (a *CCMApplication) Name() string

Name of application

type CCMApproval

type CCMApproval struct {
	CCMBaseObject

	// The state of the approval
	StateIdentifier string `jazz:"stateIdentifier"`

	// The date the state was assigned
	StateDate *time.Time `jazz:"stateDate"`

	// The name of the state
	StateName string `jazz:"stateName"`

	// The contributor who is asked for approval
	Approver *CCMContributor `jazz:"approver"`
}

CCMApproval (see https://jazz.net/wiki/bin/view/Main/ReportsRESTAPI#com_ibm_team_workitem_Approval) This element represents an approval from a single contributor with a particular state.

func (*CCMApproval) LoadAllFields

func (o *CCMApproval) LoadAllFields(ctx context.Context) error

LoadAllFields of CCMApproval object

func (*CCMApproval) Spec

func (o *CCMApproval) Spec() *CCMObjectSpec

Spec returns the specification object for CCMApproval

type CCMApprovalDescriptor

type CCMApprovalDescriptor struct {
	CCMBaseObject

	// An identifier for this approval
	Id int `jazz:"id"`

	// The type of approval, used to distinguish Approvals, Reviews,
	// Verifications, or other types of approvals
	TypeIdentifier string `jazz:"typeIdentifier"`

	// The name of the type of approval
	TypeName string `jazz:"typeName"`

	// The display name for this approval
	Name string `jazz:"name"`

	// The cumulative state of all the approvals for this approval descriptor
	CumulativeStateIdentifier string `jazz:"cumulativeStateIdentifier"`

	// The name of the cumulative state
	CumulativeStateName string `jazz:"cumulativeStateName"`

	// The date this approval is due
	DueDate *time.Time `jazz:"dueDate"`

	// A collection of zero of more approvals aggregated by the approval
	// descriptor
	Approvals []*CCMApproval `jazz:"approvals"`
}

CCMApprovalDescriptor (see https://jazz.net/wiki/bin/view/Main/ReportsRESTAPI#com_ibm_team_workitem_ApprovalDe) This element represents an approval descriptor aggregates approvals from contributors.

func (*CCMApprovalDescriptor) LoadAllFields

func (o *CCMApprovalDescriptor) LoadAllFields(ctx context.Context) error

LoadAllFields of CCMApprovalDescriptor object

func (*CCMApprovalDescriptor) Spec

Spec returns the specification object for CCMApprovalDescriptor

type CCMAttribute

type CCMAttribute struct {
	CCMBaseObject

	// An identifier for the custom attribute, unique within a project area
	Identifier string `jazz:"identifier"`

	// The data type of the attribute value
	AttributeType string `jazz:"attributeType"`

	// Whether or not the attribute is built-in
	BuiltIn bool `jazz:"builtIn"`

	// The project in which the attribute is defined
	ProjectArea *CCMProjectArea `jazz:"projectArea"`
}

CCMAttribute (see https://jazz.net/wiki/bin/view/Main/ReportsRESTAPI#com_ibm_team_workitem_Attribute) This element represents information about a custom attribute declaration. Custom attribute declarations are process-specific.

func (*CCMAttribute) LoadAllFields

func (o *CCMAttribute) LoadAllFields(ctx context.Context) error

LoadAllFields of CCMAttribute object

func (*CCMAttribute) Spec

func (o *CCMAttribute) Spec() *CCMObjectSpec

Spec returns the specification object for CCMAttribute

type CCMAuditableLink struct {
	CCMBaseObject

	// The id of this link type (e.g. "com.ibm.team.workitem.parentChild"). This
	// describes the relationship represented by this link.
	Name string `jazz:"name"`

	// The source of the link
	SourceRef *CCMReference `jazz:"sourceRef"`

	// The target of the link
	TargetRef *CCMReference `jazz:"targetRef"`
}

CCMAuditableLink (see https://jazz.net/wiki/bin/view/Main/ReportsRESTAPI#auditableLink) This element represents a link from one artifact to another. These links may be either within the same repository, or between one artifact in this repository and one external artifact. References (source and target) may be made either by uri (for any artifact) or by referencedItem (in the case of local artifacts).

func (*CCMAuditableLink) Load

func (o *CCMAuditableLink) Load(ctx context.Context) (err error)

Load CCMAuditableLink object

func (*CCMAuditableLink) LoadAllFields

func (o *CCMAuditableLink) LoadAllFields(ctx context.Context) error

LoadAllFields of CCMAuditableLink object

func (*CCMAuditableLink) Spec

func (o *CCMAuditableLink) Spec() *CCMObjectSpec

Spec returns the specification object for CCMAuditableLink

type CCMBaseObject

type CCMBaseObject struct {

	// The UUID representing the item in storage. This is technically an internal
	// detail, and resources should mostly be referred to by their unique URLs.
	// In some cases the itemId may be the only unique identifier, however.
	ItemId string `jazz:"itemId"`

	// An MD5 hash of the URI for this element
	UniqueId string `jazz:"uniqueId"`

	// The UUID of the state for this item in storage. This is an internal detail.
	StateId string `jazz:"stateId"`

	// The UUID of a context object used for read access. This is an internal detail.
	ContextId string `jazz:"contextId"`

	// The timestamp of the last modification date of this resource.
	Modified *time.Time `jazz:"modified"`

	// A boolean indicating whether the resource is "archived". Archived
	// resources are typically hidden from the UI and filtered out of queries.
	Archived bool `jazz:"archived"`

	ReportableUrl string `jazz:"reportableUrl"`

	ModifiedBy *CCMContributor `jazz:"modifiedBy"`
	// contains filtered or unexported fields
}

func (*CCMBaseObject) String

func (o *CCMBaseObject) String() string

String returns the ItemId of this object (used for filter)

type CCMBigDecimalExtensionEntry

type CCMBigDecimalExtensionEntry struct {
	CCMBaseObject

	// Key of the custom attribute
	Key string `jazz:"key"`

	// Value of the custom attribute
	Value float64 `jazz:"value"`
}

func (*CCMBigDecimalExtensionEntry) LoadAllFields

func (o *CCMBigDecimalExtensionEntry) LoadAllFields(ctx context.Context) error

LoadAllFields of CCMBigDecimalExtensionEntry object

func (*CCMBigDecimalExtensionEntry) Spec

Spec returns the specification object for CCMBigDecimalExtensionEntry

type CCMBooleanExtensionEntry

type CCMBooleanExtensionEntry struct {
	CCMBaseObject

	// Key of the custom attribute
	Key string `jazz:"key"`

	// Value of the custom attribute
	Value bool `jazz:"value"`
}

func (*CCMBooleanExtensionEntry) LoadAllFields

func (o *CCMBooleanExtensionEntry) LoadAllFields(ctx context.Context) error

LoadAllFields of CCMBooleanExtensionEntry object

func (*CCMBooleanExtensionEntry) Spec

Spec returns the specification object for CCMBooleanExtensionEntry

type CCMBuildDefinition

type CCMBuildDefinition struct {
	CCMBaseObject

	// The id of the build definition
	Id string `jazz:"id"`

	// The description of the build definition
	Description string `jazz:"description"`

	// The project area containing the build definition
	ProjectArea *CCMProjectArea `jazz:"projectArea"`

	// The team area containing the build definition
	TeamArea *CCMTeamArea `jazz:"teamArea"`
}

CCMBuildDefinition (see https://jazz.net/wiki/bin/view/Main/ReportsRESTAPI#buildDefinition_type_com_ibm_tea) This element represents a Build Definition.

func (*CCMBuildDefinition) Load

func (o *CCMBuildDefinition) Load(ctx context.Context) (err error)

Load CCMBuildDefinition object

func (*CCMBuildDefinition) LoadAllFields

func (o *CCMBuildDefinition) LoadAllFields(ctx context.Context) error

LoadAllFields of CCMBuildDefinition object

func (*CCMBuildDefinition) Spec

func (o *CCMBuildDefinition) Spec() *CCMObjectSpec

Spec returns the specification object for CCMBuildDefinition

type CCMBuildEngine

type CCMBuildEngine struct {
	CCMBaseObject

	// The id of this build engine
	Id string `jazz:"id"`
}

CCMBuildEngine (see https://jazz.net/wiki/bin/view/Main/ReportsRESTAPI#buildEngine_type_com_ibm_team_bu) This element represents a build engine.

func (*CCMBuildEngine) Load

func (o *CCMBuildEngine) Load(ctx context.Context) (err error)

Load CCMBuildEngine object

func (*CCMBuildEngine) LoadAllFields

func (o *CCMBuildEngine) LoadAllFields(ctx context.Context) error

LoadAllFields of CCMBuildEngine object

func (*CCMBuildEngine) Spec

func (o *CCMBuildEngine) Spec() *CCMObjectSpec

Spec returns the specification object for CCMBuildEngine

type CCMBuildResult

type CCMBuildResult struct {
	CCMBaseObject

	// James: To Do
	BuildStatus string `jazz:"buildStatus"`

	// James: To Do
	BuildState string `jazz:"buildState"`

	// The label for the build
	Label string `jazz:"label"`

	// How long the build took, in milliseconds
	TimeTaken int64 `jazz:"timeTaken"`

	// Whether this was a personal build or not
	PersonalBuild bool `jazz:"personalBuild"`

	// The start time of the build
	StartTime *time.Time `jazz:"startTime"`

	// How long the build waited in the queue, in milliseconds
	TimeWaiting int64 `jazz:"timeWaiting"`

	// Which build definition this build was for
	BuildDefinition *CCMBuildDefinition `jazz:"buildDefinition"`

	// The contributor who requested the build
	Creator *CCMContributor `jazz:"creator"`

	// The engine the build ran on
	BuildEngine *CCMBuildEngine `jazz:"buildEngine"`

	// Unit test results
	UnitTestResults []*CCMUnitTestResult `jazz:"unitTestResults"`

	// Unit test changes from the previous build
	UnitTestEvents []*CCMUnitTestEvent `jazz:"unitTestEvents"`
}

CCMBuildResult (see https://jazz.net/wiki/bin/view/Main/ReportsRESTAPI#buildResult_type_com_ibm_team_bu) This element represents a Build Result.

func (*CCMBuildResult) Load

func (o *CCMBuildResult) Load(ctx context.Context) (err error)

Load CCMBuildResult object

func (*CCMBuildResult) LoadAllFields

func (o *CCMBuildResult) LoadAllFields(ctx context.Context) error

LoadAllFields of CCMBuildResult object

func (*CCMBuildResult) Spec

func (o *CCMBuildResult) Spec() *CCMObjectSpec

Spec returns the specification object for CCMBuildResult

type CCMCategory

type CCMCategory struct {
	CCMBaseObject

	// The id of the category, unique in a repository.
	Id string `jazz:"id"`

	// The name of the category (e.g. "Reports"). Not necessarily unique.
	Name string `jazz:"name"`

	// A textual description of the category.
	Description string `jazz:"description"`

	// The slash-separated qualified name of the category, indicating its
	// containment hierarchy (e.g. "/RTC Development/Reports").
	QualifiedName string `jazz:"qualifiedName"`
}

CCMCategory (see https://jazz.net/wiki/bin/view/Main/ReportsRESTAPI#category_type_com_ibm_team_worki) This element represents a work item Category. Work item categories are process-dependent.

func (*CCMCategory) Load

func (o *CCMCategory) Load(ctx context.Context) (err error)

Load CCMCategory object

func (*CCMCategory) LoadAllFields

func (o *CCMCategory) LoadAllFields(ctx context.Context) error

LoadAllFields of CCMCategory object

func (*CCMCategory) Spec

func (o *CCMCategory) Spec() *CCMObjectSpec

Spec returns the specification object for CCMCategory

type CCMChangeSet

type CCMChangeSet struct {
	CCMBaseObject

	// The comment on the change set
	Comment string `jazz:"comment"`

	// The owner of the change set
	Owner *CCMContributor `jazz:"owner"`
}

CCMChangeSet (see https://jazz.net/wiki/bin/view/Main/ReportsRESTAPI#changeSet_type_com_ibm_team_scm) This element represents an SCM Change Set

func (*CCMChangeSet) Load

func (o *CCMChangeSet) Load(ctx context.Context) (err error)

Load CCMChangeSet object

func (*CCMChangeSet) LoadAllFields

func (o *CCMChangeSet) LoadAllFields(ctx context.Context) error

LoadAllFields of CCMChangeSet object

func (*CCMChangeSet) Spec

func (o *CCMChangeSet) Spec() *CCMObjectSpec

Spec returns the specification object for CCMChangeSet

type CCMComment

type CCMComment struct {
	CCMBaseObject

	// The date/time that the comment was saved in the work item
	CreationDate *time.Time `jazz:"creationDate"`

	// The string content of the comment
	Content string `jazz:"content"`

	// Whether or not the comment has been edited
	Edited bool `jazz:"edited"`

	// The contributor who created the comment
	Creator *CCMContributor `jazz:"creator"`
}

CCMComment (see https://jazz.net/wiki/bin/view/Main/ReportsRESTAPI#com_ibm_team_workitem_Comment) This element represents a single work item comment.

func (*CCMComment) LoadAllFields

func (o *CCMComment) LoadAllFields(ctx context.Context) error

LoadAllFields of CCMComment object

func (*CCMComment) Spec

func (o *CCMComment) Spec() *CCMObjectSpec

Spec returns the specification object for CCMComment

type CCMCompilationResult

type CCMCompilationResult struct {
	CCMBaseObject

	// The component for which the errors and warnings are being reported
	Component string `jazz:"component"`

	// The number of compilation errors for the component in the containing build
	// result
	Errors int64 `jazz:"errors"`

	// The umber of compilation warnings for the component in the containing build
	// result
	Warnings int64 `jazz:"warnings"`
}

CCMCompilationResult (see https://jazz.net/wiki/bin/view/Main/ReportsRESTAPI#com_ibm_team_build_CompilationRe) This element only occurs in a buildResult. The number of errors and warnings for a particular component in the containing build result

func (*CCMCompilationResult) LoadAllFields

func (o *CCMCompilationResult) LoadAllFields(ctx context.Context) error

LoadAllFields of CCMCompilationResult object

func (*CCMCompilationResult) Spec

Spec returns the specification object for CCMCompilationResult

type CCMComponent

type CCMComponent struct {
	CCMBaseObject

	// The name of the component
	Name string `jazz:"name"`
}

CCMComponent (see https://jazz.net/wiki/bin/view/Main/ReportsRESTAPI#component_type_com_ibm_team_scm) This element represents an SCM Component

func (*CCMComponent) Load

func (o *CCMComponent) Load(ctx context.Context) (err error)

Load CCMComponent object

func (*CCMComponent) LoadAllFields

func (o *CCMComponent) LoadAllFields(ctx context.Context) error

LoadAllFields of CCMComponent object

func (*CCMComponent) Spec

func (o *CCMComponent) Spec() *CCMObjectSpec

Spec returns the specification object for CCMComponent

type CCMContributor

type CCMContributor struct {
	CCMBaseObject

	// The human-readable name of the contributor (e.g. "James Moody")
	Name string `jazz:"name"`

	// The email address of the contributor
	EmailAddress string `jazz:"emailAddress"`

	// The userId of the contributor, unique in this application (e.g. "jmoody")
	UserId string `jazz:"userId"`
}

CCMContributor (see https://jazz.net/wiki/bin/view/Main/ReportsRESTAPI#contributor) This element represents a Contributor (user).

func (*CCMContributor) Load

func (o *CCMContributor) Load(ctx context.Context) (err error)

Load CCMContributor object

func (*CCMContributor) LoadAllFields

func (o *CCMContributor) LoadAllFields(ctx context.Context) error

LoadAllFields of CCMContributor object

func (*CCMContributor) Spec

func (o *CCMContributor) Spec() *CCMObjectSpec

Spec returns the specification object for CCMContributor

type CCMDeliverable

type CCMDeliverable struct {
	CCMBaseObject

	// The name of the deliverable (e.g. "RTC 3.0")
	Name string `jazz:"name"`

	// A textual description of the deliverable
	Description string `jazz:"description"`

	// The creation date of the deliverable
	CreationDate *time.Time `jazz:"creationDate"`

	// The project area associated with the deliverable
	ProjectArea *CCMProjectArea `jazz:"projectArea"`

	// An optional link to a repository item associated with the deliverable. This
	// field should be treated as internal.
	Artifact *CCMItem `jazz:"artifact"`
}

CCMDeliverable (see https://jazz.net/wiki/bin/view/Main/ReportsRESTAPI#deliverable_type_com_ibm_team_wo) This element represents a deliverable, often used in Work Items to identify in which deliverable a work item was found ("Found In"). Deliverables are process-dependent.

func (*CCMDeliverable) Load

func (o *CCMDeliverable) Load(ctx context.Context) (err error)

Load CCMDeliverable object

func (*CCMDeliverable) LoadAllFields

func (o *CCMDeliverable) LoadAllFields(ctx context.Context) error

LoadAllFields of CCMDeliverable object

func (*CCMDeliverable) Spec

func (o *CCMDeliverable) Spec() *CCMObjectSpec

Spec returns the specification object for CCMDeliverable

type CCMDevelopmentLine

type CCMDevelopmentLine struct {
	CCMBaseObject

	// The human-readable name of this development line (e.g. "Maintenance
	// Development")
	Name string `jazz:"name"`

	// The start date of this development line
	StartDate *time.Time `jazz:"startDate"`

	// The end date of this development line
	EndDate *time.Time `jazz:"endDate"`

	// The child iterations of this development line
	Iterations []*CCMIteration `jazz:"iterations"`

	// The project area containing this development line
	ProjectArea *CCMProjectArea `jazz:"projectArea"`

	// The iteration marked as current in this development line
	CurrentIteration *CCMIteration `jazz:"currentIteration"`
}

CCMDevelopmentLine (see https://jazz.net/wiki/bin/view/Main/ReportsRESTAPI#developmentLine_type_com_ibm_tea) This element represents a development line.

func (*CCMDevelopmentLine) Load

func (o *CCMDevelopmentLine) Load(ctx context.Context) (err error)

Load CCMDevelopmentLine object

func (*CCMDevelopmentLine) LoadAllFields

func (o *CCMDevelopmentLine) LoadAllFields(ctx context.Context) error

LoadAllFields of CCMDevelopmentLine object

func (*CCMDevelopmentLine) Spec

func (o *CCMDevelopmentLine) Spec() *CCMObjectSpec

Spec returns the specification object for CCMDevelopmentLine

type CCMExtensionEntry

type CCMExtensionEntry struct {
	CCMBaseObject

	// The name of the custom attribute
	Key string `jazz:"key"`

	// The type of the custom attribute (e.g. timestampValue, itemValue)
	Type string `jazz:"type"`

	// Boolean value if the type of the custom attribute is booleanValue, else
	// null
	BooleanValue bool `jazz:"booleanValue"`

	// Integer value if the type of the custom attribute is integerValue, else
	// null
	IntegerValue int `jazz:"integerValue"`

	// Long value if the type of the custom attribute is longValue, else null
	LongValue int64 `jazz:"longValue"`

	// Double value if the type of the custom attribute is doubleValue, else 0.0
	DoubleValue float64 `jazz:"doubleValue"`

	// String value if the type of the custom attribute is smallStringValue, else
	// null
	SmallStringValue string `jazz:"smallStringValue"`

	// String value if the type of the custom attribute is mediumStringValue, else
	// null
	MediumStringValue string `jazz:"mediumStringValue"`

	// String value if the type of the custom attribute is largeStringValue, else
	// null
	LargeStringValue string `jazz:"largeStringValue"`

	// Timestamp value if the type of the custom attribute is timestampValue, else
	// null
	TimestampValue *time.Time `jazz:"timestampValue"`

	// Decimal value if the type of the custom attribute is decimalValue, else
	// null
	DecimalValue float64 `jazz:"decimalValue"`

	// The information of the Item assigned as the value of the custom attribute
	// if the type is itemValue, else null
	ItemValue *CCMItem `jazz:"itemValue"`

	// A collection of zero of more items assigned as the value of the custom
	// attribute if the type is itemList, else null
	ItemList []*CCMItem `jazz:"itemList"`
}

CCMExtensionEntry (see https://jazz.net/wiki/bin/view/Main/ReportsRESTAPI#allExtensions_type_com_ibm_team) This element represents the value of a custom attribute.

func (*CCMExtensionEntry) LoadAllFields

func (o *CCMExtensionEntry) LoadAllFields(ctx context.Context) error

LoadAllFields of CCMExtensionEntry object

func (*CCMExtensionEntry) Spec

func (o *CCMExtensionEntry) Spec() *CCMObjectSpec

Spec returns the specification object for CCMExtensionEntry

type CCMFilter

type CCMFilter map[string][]interface{}

CCMFilter is used to filter results in CCM list queries

func CCMRawFilter

func CCMRawFilter(query string) CCMFilter

CCMRawFilter creates a filter from a raw query

type CCMIntExtensionEntry

type CCMIntExtensionEntry struct {
	CCMBaseObject

	// Key of the custom attribute
	Key string `jazz:"key"`

	// Value of the custom attribute
	Value int `jazz:"value"`
}

func (*CCMIntExtensionEntry) LoadAllFields

func (o *CCMIntExtensionEntry) LoadAllFields(ctx context.Context) error

LoadAllFields of CCMIntExtensionEntry object

func (*CCMIntExtensionEntry) Spec

Spec returns the specification object for CCMIntExtensionEntry

type CCMItem

type CCMItem struct {
	CCMBaseObject

	// Type of item
	ItemType string `jazz:"itemType"`

	// The UUID representing the item in storage
	ItemId string `jazz:"itemId"`
}

CCMItem (see https://jazz.net/wiki/bin/view/Main/ReportsRESTAPI#com_ibm_team_repository_Item) Item The only time you're likely to see a raw Item is when using the referencedItem field of a Reference. Most of the time you'll want to fetch whichever concrete item type is represented by this artifact (e.g. a Work Item). The only standard field here likely to be useful is itemId, which can be used to look up the concrete element. This element is always contained in a com.ibm.team.links.Reference, and represents whether the reference is by uri or by itemId.

func (*CCMItem) LoadAllFields

func (o *CCMItem) LoadAllFields(ctx context.Context) error

LoadAllFields of CCMItem object

func (*CCMItem) Spec

func (o *CCMItem) Spec() *CCMObjectSpec

Spec returns the specification object for CCMItem

type CCMItemExtensionEntry

type CCMItemExtensionEntry struct {
	CCMBaseObject

	// Key of the custom attribute
	Key string `jazz:"key"`

	// Value of the custom attribute
	Value *CCMItem `jazz:"value"`
}

func (*CCMItemExtensionEntry) LoadAllFields

func (o *CCMItemExtensionEntry) LoadAllFields(ctx context.Context) error

LoadAllFields of CCMItemExtensionEntry object

func (*CCMItemExtensionEntry) Spec

Spec returns the specification object for CCMItemExtensionEntry

type CCMIteration

type CCMIteration struct {
	CCMBaseObject

	// The human-readable name of this iteration (e.g. "M1")
	Name string `jazz:"name"`

	// The identifier of this iteration (e.g. "3.0M1")
	Id string `jazz:"id"`

	// The start date of this iteration
	StartDate *time.Time `jazz:"startDate"`

	// The end date of this iteration
	EndDate *time.Time `jazz:"endDate"`

	// The parent iteration of this iteration, if any
	Parent *CCMIteration `jazz:"parent"`

	// The immediate child iterations of this iteration, if any
	Children []*CCMIteration `jazz:"children"`

	// The development line in which this iteration appears
	DevelopmentLine *CCMDevelopmentLine `jazz:"developmentLine"`

	// Whether or not this iteration is marked as having deliverables associated
	// with it
	HasDeliverable bool `jazz:"hasDeliverable"`
}

CCMIteration (see https://jazz.net/wiki/bin/view/Main/ReportsRESTAPI#iteration_type_com_ibm_team_proc) This element represents a single iteration (milestone, sprint).

func (*CCMIteration) Load

func (o *CCMIteration) Load(ctx context.Context) (err error)

Load CCMIteration object

func (*CCMIteration) LoadAllFields

func (o *CCMIteration) LoadAllFields(ctx context.Context) error

LoadAllFields of CCMIteration object

func (*CCMIteration) Spec

func (o *CCMIteration) Spec() *CCMObjectSpec

Spec returns the specification object for CCMIteration

type CCMLargeStringExtensionEntry

type CCMLargeStringExtensionEntry struct {
	CCMBaseObject

	// Key of the custom attribute
	Key string `jazz:"key"`

	// Value of the custom attribute
	Value string `jazz:"value"`
}

func (*CCMLargeStringExtensionEntry) LoadAllFields

func (o *CCMLargeStringExtensionEntry) LoadAllFields(ctx context.Context) error

LoadAllFields of CCMLargeStringExtensionEntry object

func (*CCMLargeStringExtensionEntry) Spec

Spec returns the specification object for CCMLargeStringExtensionEntry

type CCMLiteral

type CCMLiteral struct {
	CCMBaseObject

	// The id of the literal (e.g. "com.ibm.team.workitem.blocking"), unique in a
	// repository.
	Id string `jazz:"id"`

	// The name of the literal (e.g. "Blocking"). Not necessarily unique.
	Name string `jazz:"name"`
}

CCMLiteral (see https://jazz.net/wiki/bin/view/Main/ReportsRESTAPI#com_ibm_team_workitem_Literal) This element represents a user-defined literal value, used for priority and severity in a work item. Work item severities and priorities are process-dependent.

func (*CCMLiteral) LoadAllFields

func (o *CCMLiteral) LoadAllFields(ctx context.Context) error

LoadAllFields of CCMLiteral object

func (*CCMLiteral) Spec

func (o *CCMLiteral) Spec() *CCMObjectSpec

Spec returns the specification object for CCMLiteral

type CCMLoadableObject

type CCMLoadableObject interface {
	CCMObject
	Load(ctx context.Context) error
}

CCMLoadableObject is only implemented by objects that are loadable

type CCMLongExtensionEntry

type CCMLongExtensionEntry struct {
	CCMBaseObject

	// Key of the custom attribute
	Key string `jazz:"key"`

	// Value of the custom attribute
	Value int64 `jazz:"value"`
}

func (*CCMLongExtensionEntry) LoadAllFields

func (o *CCMLongExtensionEntry) LoadAllFields(ctx context.Context) error

LoadAllFields of CCMLongExtensionEntry object

func (*CCMLongExtensionEntry) Spec

Spec returns the specification object for CCMLongExtensionEntry

type CCMMediumStringExtensionEntry

type CCMMediumStringExtensionEntry struct {
	CCMBaseObject

	// Key of the custom attribute
	Key string `jazz:"key"`

	// Value of the custom attribute
	Value string `jazz:"value"`
}

func (*CCMMediumStringExtensionEntry) LoadAllFields

func (o *CCMMediumStringExtensionEntry) LoadAllFields(ctx context.Context) error

LoadAllFields of CCMMediumStringExtensionEntry object

func (*CCMMediumStringExtensionEntry) Spec

Spec returns the specification object for CCMMediumStringExtensionEntry

type CCMMultiItemExtensionEntry

type CCMMultiItemExtensionEntry struct {
	CCMBaseObject

	// Key of the custom attribute
	Key string `jazz:"key"`

	// Value of the custom attribute
	Value []*CCMItem `jazz:"value"`
}

func (*CCMMultiItemExtensionEntry) LoadAllFields

func (o *CCMMultiItemExtensionEntry) LoadAllFields(ctx context.Context) error

LoadAllFields of CCMMultiItemExtensionEntry object

func (*CCMMultiItemExtensionEntry) Spec

Spec returns the specification object for CCMMultiItemExtensionEntry

type CCMObject

type CCMObject interface {
	Spec() *CCMObjectSpec
}

CCMObject describes a CCM object implementation

type CCMObjectSpec

type CCMObjectSpec struct {
	// Resource identifier of object.
	// # https://jazz.net/wiki/bin/view/Main/ReportsRESTAPI#Resources_provided_by_RTC
	//
	// * foundation: Common artifacts such as project areas, team areas, contributors, iterations and links
	// * scm: Source Control artifacts such as streams and components, as well as stream sizing deltas
	// * build: Build artifacts such as build results, build result contributions, build definitions, and build engines
	// * apt: Agile Planning artifacts such as team capacity and resource schedules and absences
	// * workitem: Work Item artifacts such as work items, categories, severities, and priorities
	ResourceID string

	// Identifier of element inside resource.
	// # https://jazz.net/wiki/bin/view/Main/ReportsRESTAPI#Resources_provided_by_RTC
	ElementID string

	// Identifier of Type
	// # https://jazz.net/wiki/bin/view/Main/ReportsRESTAPI#Resources_provided_by_RTC
	TypeID string

	Type reflect.Type
}

func CCMLoadObjectSpec

func CCMLoadObjectSpec(t reflect.Type) (*CCMObjectSpec, error)

CCMLoadObjectSpec from given type

func (*CCMObjectSpec) GetURL

func (o *CCMObjectSpec) GetURL(id string) string

GetURL returns the URL to get an object https://jazz.net/wiki/bin/view/Main/ReportsRESTAPI#Examples

func (*CCMObjectSpec) ListURL

func (o *CCMObjectSpec) ListURL(filter CCMFilter) (string, error)

ListURL returns the URL to get a list of objects https://jazz.net/wiki/bin/view/Main/ReportsRESTAPI#Examples

func (*CCMObjectSpec) Load

func (o *CCMObjectSpec) Load(ccm *CCMApplication, value reflect.Value, element *etree.Element) error

Load object from XML element

type CCMProjectArea

type CCMProjectArea struct {
	CCMBaseObject

	// The human-readable name of the project area (e.g. "My Project")
	Name string `jazz:"name"`

	// A list of members of this project
	TeamMembers []*CCMContributor `jazz:"teamMembers"`

	// A list of records reflecting the team area hierarchy for this project area
	TeamAreaHierarchy []*CCMTeamAreaHierarchyRecord `jazz:"teamAreaHierarchy"`

	// A list of development lines for this project area
	DevelopmentLines []*CCMDevelopmentLine `jazz:"developmentLines"`

	// The main development line for this project area
	ProjectDevelopmentLine *CCMDevelopmentLine `jazz:"projectDevelopmentLine"`

	// The roles defined in the project area
	Roles []*CCMRole `jazz:"roles"`

	// The role assignments defined in the project area
	RoleAssignments []*CCMRoleAssignment `jazz:"roleAssignments"`

	// All the team areas contained in the project area
	AllTeamAreas []*CCMTeamArea `jazz:"allTeamAreas"`
}

CCMProjectArea (see https://jazz.net/wiki/bin/view/Main/ReportsRESTAPI#projectArea_type_com_ibm_team_pr) This element represents a Project Area.

func (*CCMProjectArea) Load

func (o *CCMProjectArea) Load(ctx context.Context) (err error)

Load CCMProjectArea object

func (*CCMProjectArea) LoadAllFields

func (o *CCMProjectArea) LoadAllFields(ctx context.Context) error

LoadAllFields of CCMProjectArea object

func (*CCMProjectArea) Spec

func (o *CCMProjectArea) Spec() *CCMObjectSpec

Spec returns the specification object for CCMProjectArea

type CCMProperty

type CCMProperty struct {
	CCMBaseObject

	// The property key
	Key string `jazz:"key"`
}

CCMProperty (see https://jazz.net/wiki/bin/view/Main/ReportsRESTAPI#com_ibm_team_scm_Property) This element only occurs in a workspace, and represents a property of a Workspace or Stream

func (*CCMProperty) LoadAllFields

func (o *CCMProperty) LoadAllFields(ctx context.Context) error

LoadAllFields of CCMProperty object

func (*CCMProperty) Spec

func (o *CCMProperty) Spec() *CCMObjectSpec

Spec returns the specification object for CCMProperty

type CCMReadAccess

type CCMReadAccess struct {
	CCMBaseObject

	// The itemId of the Contributor
	ContributorItemId string `jazz:"contributorItemId"`

	// The itemID of the context object associated with the contributor (i.e. the
	// project area)
	ContributorContextId string `jazz:"contributorContextId"`
}

CCMReadAccess (see https://jazz.net/wiki/bin/view/Main/ReportsRESTAPI#readAccess) The readAccess element represents a mapping of contributors to project areas that each contributor has permissions to read.

func (*CCMReadAccess) Load

func (o *CCMReadAccess) Load(ctx context.Context) (err error)

Load CCMReadAccess object

func (*CCMReadAccess) LoadAllFields

func (o *CCMReadAccess) LoadAllFields(ctx context.Context) error

LoadAllFields of CCMReadAccess object

func (*CCMReadAccess) Spec

func (o *CCMReadAccess) Spec() *CCMObjectSpec

Spec returns the specification object for CCMReadAccess

type CCMReference

type CCMReference struct {
	CCMBaseObject

	// A human-readable comment about the reference. In some cases the comment may
	// suffice rather than fetching the content on the other end of the link. For
	// example, a reference pointing to a work item may contain the id and summary
	// of the work item ("12345: Summary of my work item").
	Comment string `jazz:"comment"`

	// This element indicates whether the reference is by uri or by itemId.
	ReferenceType *CCMReferenceType `jazz:"referenceType"`

	// The URI of the element referenced. This is only valid if this Reference is
	// a URI reference.
	Uri string `jazz:"uri"`

	// The referenced item. This is only valid if this Reference is an Item
	// reference.
	ReferencedItem *CCMItem `jazz:"referencedItem"`

	// Get the extra information associated with the reference. May be null.
	ExtraInfo string `jazz:"extraInfo"`

	// Internal.
	ContentType string `jazz:"contentType"`
}

CCMReference (see https://jazz.net/wiki/bin/view/Main/ReportsRESTAPI#com_ibm_team_links_Reference) This element is always contained in an auditableLink, and represents either the source or target reference of a link. The reference may be either by uri (for any artifact) or by referencedItem (in the case of local artifacts). Which one can be determined by the referenceType field.

func (*CCMReference) LoadAllFields

func (o *CCMReference) LoadAllFields(ctx context.Context) error

LoadAllFields of CCMReference object

func (*CCMReference) Spec

func (o *CCMReference) Spec() *CCMObjectSpec

Spec returns the specification object for CCMReference

type CCMReferenceType

type CCMReferenceType struct {
	CCMBaseObject

	// Either "ITEM_REFERENCE" or "URI_REFERENCE"
	Literal string `jazz:"literal"`

	// Either 0 (for ITEM_REFERENCE) or 2 (for URI_REFERENCE). Use literal
	// instead.
	Value int `jazz:"value"`
}

CCMReferenceType (see https://jazz.net/wiki/bin/view/Main/ReportsRESTAPI#com_ibm_team_links_ReferenceType) This element represents a reference type, indicating whether a reference is by URI or itemID.

func (*CCMReferenceType) LoadAllFields

func (o *CCMReferenceType) LoadAllFields(ctx context.Context) error

LoadAllFields of CCMReferenceType object

func (*CCMReferenceType) Spec

func (o *CCMReferenceType) Spec() *CCMObjectSpec

Spec returns the specification object for CCMReferenceType

type CCMResolution

type CCMResolution struct {
	CCMBaseObject

	// The id of the resolution (e.g. "com.ibm.team.workitem.defect.fixed"),
	// unique in a repository.
	Id string `jazz:"id"`

	// The name of the resolution (e.g. "Fixed"). Not necessarily unique.
	Name string `jazz:"name"`
}

CCMResolution (see https://jazz.net/wiki/bin/view/Main/ReportsRESTAPI#com_ibm_team_workitem_Resolution) This element represents the resolution of a work item. This indicates how or why a work item was resolved; for example, "Fixed", "Invalid", "Won't Fix". Resolutions are process-dependent.

func (*CCMResolution) LoadAllFields

func (o *CCMResolution) LoadAllFields(ctx context.Context) error

LoadAllFields of CCMResolution object

func (*CCMResolution) Spec

func (o *CCMResolution) Spec() *CCMObjectSpec

Spec returns the specification object for CCMResolution

type CCMRole

type CCMRole struct {
	CCMBaseObject

	// The role Id
	Id string `jazz:"id"`

	// The role name
	Name string `jazz:"name"`

	// The role description
	Description string `jazz:"description"`
}

CCMRole (see https://jazz.net/wiki/bin/view/Main/ReportsRESTAPI#com_ibm_team_process_Role)

func (*CCMRole) LoadAllFields

func (o *CCMRole) LoadAllFields(ctx context.Context) error

LoadAllFields of CCMRole object

func (*CCMRole) Spec

func (o *CCMRole) Spec() *CCMObjectSpec

Spec returns the specification object for CCMRole

type CCMRoleAssignment

type CCMRoleAssignment struct {
	CCMBaseObject

	// The contributor with assigned roles
	Contributor *CCMContributor `jazz:"contributor"`

	// The roles assigned to the contributor
	ContributorRoles []*CCMRole `jazz:"contributorRoles"`
}

CCMRoleAssignment (see https://jazz.net/wiki/bin/view/Main/ReportsRESTAPI#com_ibm_team_process_RoleAssignm)

func (*CCMRoleAssignment) LoadAllFields

func (o *CCMRoleAssignment) LoadAllFields(ctx context.Context) error

LoadAllFields of CCMRoleAssignment object

func (*CCMRoleAssignment) Spec

func (o *CCMRoleAssignment) Spec() *CCMObjectSpec

Spec returns the specification object for CCMRoleAssignment

type CCMState

type CCMState struct {
	CCMBaseObject

	// The id of the state (e.g. "com.ibm.team.workitem.defect.inProgress"),
	// unique in a repository.
	Id string `jazz:"id"`

	// The name of the state (e.g. "In Progress"). Not necessarily unique.
	Name string `jazz:"name"`

	// The "State Group" of this state. A state group is a process-independent
	// grouping of states, which is useful for creating reports which are not
	// dependent on a particular process but still need to know, for example,
	// whether work items are open or closed. Every state belongs to one of the
	// following state groups: "OPEN_STATES", "CLOSED_STATES",
	// "IN_PROGRESS_STATES".
	Group string `jazz:"group"`
}

CCMState (see https://jazz.net/wiki/bin/view/Main/ReportsRESTAPI#com_ibm_team_workitem_State) This element represents the state of a work item. States are defined by the user in the process specification for a project area.

func (*CCMState) LoadAllFields

func (o *CCMState) LoadAllFields(ctx context.Context) error

LoadAllFields of CCMState object

func (*CCMState) Spec

func (o *CCMState) Spec() *CCMObjectSpec

Spec returns the specification object for CCMState

type CCMStringExtensionEntry

type CCMStringExtensionEntry struct {
	CCMBaseObject

	// Key of the custom attribute
	Key string `jazz:"key"`

	// Value of the custom attribute
	Value string `jazz:"value"`
}

func (*CCMStringExtensionEntry) LoadAllFields

func (o *CCMStringExtensionEntry) LoadAllFields(ctx context.Context) error

LoadAllFields of CCMStringExtensionEntry object

func (*CCMStringExtensionEntry) Spec

Spec returns the specification object for CCMStringExtensionEntry

type CCMTeamArea

type CCMTeamArea struct {
	CCMBaseObject

	// The human-readable name of the project area (e.g. "My Team")
	Name string `jazz:"name"`

	// A fully-qualified team area name, slash-separated, including all parent
	// team areas (e.g. "/My Parent Team/My Team").
	QualifiedName string `jazz:"qualifiedName"`

	// A list of members of this team area
	TeamMembers []*CCMContributor `jazz:"teamMembers"`

	// The project area containing this team area
	ProjectArea *CCMProjectArea `jazz:"projectArea"`

	// The roles defined in the team area
	Roles []*CCMRole `jazz:"roles"`

	// The role assignments defined in the team area
	RoleAssignments []*CCMRoleAssignment `jazz:"roleAssignments"`

	// The parent team area
	ParentTeamArea *CCMTeamArea `jazz:"parentTeamArea"`
}

CCMTeamArea (see https://jazz.net/wiki/bin/view/Main/ReportsRESTAPI#teamArea_type_com_ibm_team_proce) This element represents a Team Area.

func (*CCMTeamArea) Load

func (o *CCMTeamArea) Load(ctx context.Context) (err error)

Load CCMTeamArea object

func (*CCMTeamArea) LoadAllFields

func (o *CCMTeamArea) LoadAllFields(ctx context.Context) error

LoadAllFields of CCMTeamArea object

func (*CCMTeamArea) Spec

func (o *CCMTeamArea) Spec() *CCMObjectSpec

Spec returns the specification object for CCMTeamArea

type CCMTeamAreaHierarchyRecord

type CCMTeamAreaHierarchyRecord struct {
	CCMBaseObject

	// The parent team area
	Parent *CCMTeamArea `jazz:"parent"`

	// The children team areas of the parent team area
	Children []*CCMTeamArea `jazz:"children"`
}

CCMTeamAreaHierarchyRecord (see https://jazz.net/wiki/bin/view/Main/ReportsRESTAPI#com_ibm_team_process_TeamAreaHie) This element appears only inside a Project Area, and represents a piece of a team area hierarchy.

func (*CCMTeamAreaHierarchyRecord) LoadAllFields

func (o *CCMTeamAreaHierarchyRecord) LoadAllFields(ctx context.Context) error

LoadAllFields of CCMTeamAreaHierarchyRecord object

func (*CCMTeamAreaHierarchyRecord) Spec

Spec returns the specification object for CCMTeamAreaHierarchyRecord

type CCMTimeSheetEntry

type CCMTimeSheetEntry struct {
	CCMBaseObject

	// The date for which the time sheet entry was entered
	StartDate *time.Time `jazz:"startDate"`

	// The time (in milliseconds) entered on the time sheet entry
	TimeSpent int64 `jazz:"timeSpent"`

	// The work item type (e.g. Defect)
	WorkType string `jazz:"workType"`

	// The description of the time code (e.g. Coding)
	TimeCode string `jazz:"timeCode"`

	// The identifier of the time code (e.g. timecode.literal.l2)
	TimeCodeId string `jazz:"timeCodeId"`

	// Work item to which the time sheet entry is related to.
	WorkItem *CCMWorkItem `jazz:"workItem"`
}

CCMTimeSheetEntry (see https://jazz.net/wiki/bin/view/Main/ReportsRESTAPI#time_SheetEntry_type_com_ibm_tea) This element represents a time sheet entry, each of the cells seen in the Time Tracking tab of a work item.

func (*CCMTimeSheetEntry) Load

func (o *CCMTimeSheetEntry) Load(ctx context.Context) (err error)

Load CCMTimeSheetEntry object

func (*CCMTimeSheetEntry) LoadAllFields

func (o *CCMTimeSheetEntry) LoadAllFields(ctx context.Context) error

LoadAllFields of CCMTimeSheetEntry object

func (*CCMTimeSheetEntry) Spec

func (o *CCMTimeSheetEntry) Spec() *CCMObjectSpec

Spec returns the specification object for CCMTimeSheetEntry

type CCMTimestampExtensionEntry

type CCMTimestampExtensionEntry struct {
	CCMBaseObject

	// Key of the custom attribute
	Key string `jazz:"key"`

	// Value of the custom attribute
	Value *time.Time `jazz:"value"`
}

func (*CCMTimestampExtensionEntry) LoadAllFields

func (o *CCMTimestampExtensionEntry) LoadAllFields(ctx context.Context) error

LoadAllFields of CCMTimestampExtensionEntry object

func (*CCMTimestampExtensionEntry) Spec

Spec returns the specification object for CCMTimestampExtensionEntry

type CCMUnitTestEvent

type CCMUnitTestEvent struct {
	CCMBaseObject

	// The component for which the test and event is being reported
	Component string `jazz:"component"`

	// The name of the unit test run
	Test string `jazz:"test"`

	// Indication of test passing, failing or regressing. James: To do, provide
	// the literals here.
	Event string `jazz:"event"`
}

CCMUnitTestEvent (see https://jazz.net/wiki/bin/view/Main/ReportsRESTAPI#com_ibm_team_build_UnitTestEvent) This element only occurs in a buildResult. It represents a single unit test execution, along with a pass, fail or regression label

func (*CCMUnitTestEvent) LoadAllFields

func (o *CCMUnitTestEvent) LoadAllFields(ctx context.Context) error

LoadAllFields of CCMUnitTestEvent object

func (*CCMUnitTestEvent) Spec

func (o *CCMUnitTestEvent) Spec() *CCMObjectSpec

Spec returns the specification object for CCMUnitTestEvent

type CCMUnitTestResult

type CCMUnitTestResult struct {
	CCMBaseObject

	// The component for which the tests, errors and failures are being reported
	Component string `jazz:"component"`

	// The number of unit tests run for the component in the containing build
	// result
	Tests int64 `jazz:"tests"`

	// The number of unit test failures for the component in the containing build
	// result
	Failures int64 `jazz:"failures"`

	// The number of unit test errors for the component in the containing build
	// result
	Errors int64 `jazz:"errors"`
}

CCMUnitTestResult (see https://jazz.net/wiki/bin/view/Main/ReportsRESTAPI#com_ibm_team_build_UnitTestResul) This element only occurs in a buildResult. The number of unit tests run, along with number of failures and errors, for a particular component in the containing build result

func (*CCMUnitTestResult) LoadAllFields

func (o *CCMUnitTestResult) LoadAllFields(ctx context.Context) error

LoadAllFields of CCMUnitTestResult object

func (*CCMUnitTestResult) Spec

func (o *CCMUnitTestResult) Spec() *CCMObjectSpec

Spec returns the specification object for CCMUnitTestResult

type CCMWorkItem

type CCMWorkItem struct {
	CCMBaseObject

	// The system-generated id number for the work item (e.g. "123")
	Id int `jazz:"id"`

	// The date and time when the work item was resolved, or null if the work item
	// has not been resolved
	ResolutionDate *time.Time `jazz:"resolutionDate"`

	// The one-line summary (or title) of the work item
	Summary string `jazz:"summary"`

	// The date and time when the work item was created
	CreationDate *time.Time `jazz:"creationDate"`

	// The date and time when the work item is scheduled for completion, or null
	// if no due date has been specified
	DueDate *time.Time `jazz:"dueDate"`

	// The multi-line description of the work item
	Description string `jazz:"description"`

	// James: To Do
	WorkflowSurrogate string `jazz:"workflowSurrogate"`

	// The tags attached to the work item. In the case of multiple tags, this
	// single string contains a comma-separated list of tags
	Tags string `jazz:"tags"`

	// The estimate specified for the work item, indicated the estimated time to
	// complete the work item. In the UI, this is called "Estimate" rather than
	// duration.
	Duration int64 `jazz:"duration"`

	// How much time has actually been spent so far on the work item
	TimeSpent int64 `jazz:"timeSpent"`

	// The corrected estimate for the work item, in the case that the user has
	// corrected the estimate
	CorrectedEstimate int64 `jazz:"correctedEstimate"`

	// The day on which the work item was last modified
	DayModified *time.Time `jazz:"dayModified"`

	// The contributor who created the work item
	Creator *CCMContributor `jazz:"creator"`

	// The contributor who owns the work item
	Owner *CCMContributor `jazz:"owner"`

	// The category to which the work item is assigned. In the UI, this is called
	// "Filed Against".
	Category *CCMCategory `jazz:"category"`

	// A collection of zero or more comments appended to the work item
	Comments []*CCMComment `jazz:"comments"`

	// A collection of zero or more "custom attributes" attached to the work item.
	// These are user-defined attributes (as opposed to the built-in attributes
	// elsewhere in this list).
	CustomAttributes []*CCMAttribute `jazz:"customAttributes"`

	// A collection of zero or more Contributors who are subscribed to the work
	// item
	Subscriptions []*CCMContributor `jazz:"subscriptions"`

	// The project area to which the work item belongs
	ProjectArea *CCMProjectArea `jazz:"projectArea"`

	// The Contributor who resolved the work item, or null if the work item has
	// not been resolved
	Resolver *CCMContributor `jazz:"resolver"`

	// A collection of zero or more Approvals attached to the work item
	Approvals []*CCMApproval `jazz:"approvals"`

	// A collection of zero or more Approval Descriptors attached to the work item
	ApprovalDescriptors []*CCMApprovalDescriptor `jazz:"approvalDescriptors"`

	// The iteration that the work item is "Planned For"
	Target *CCMIteration `jazz:"target"`

	// The deliverable that the work item is "Found In"
	FoundIn *CCMDeliverable `jazz:"foundIn"`

	// A collection of zero or more WorkItem elements, representing the entire
	// history of the work item. Each state the work item has ever been in is
	// reflected in this history list.
	ItemHistory []*CCMWorkItem `jazz:"itemHistory"`

	// The team area to which the work item belongs
	TeamArea *CCMTeamArea `jazz:"teamArea"`

	// The state of the work item (e.g. "Resolved", "In Progress", "New"). The
	// states are user-defined as part of the project area process.
	State *CCMState `jazz:"state"`

	// The resolution of the work item (e.g. "Duplicate", "Invalid", "Fixed"). The
	// resolutions are user-defined as part of the project area process.
	Resolution *CCMResolution `jazz:"resolution"`

	// The type of the work item (e.g. "Defect", "Task", "Story"). The work item
	// types are user-defined as part of the project area process.
	Type *CCMWorkItemType `jazz:"type"`

	// The severity of the work item (e.g. "Critical", "Normal", "Blocker"). The
	// work item severities are user-defined as part of the project area process.
	Severity *CCMLiteral `jazz:"severity"`

	// The priority of the work item (e.g. "High", "Medium", "Low"). The work item
	// priorities are user-defined as part of the project area process.
	Priority *CCMLiteral `jazz:"priority"`

	// The parent work item of this work item, if one exists
	Parent *CCMWorkItem `jazz:"parent"`

	// A collection of zero or more child work items
	Children []*CCMWorkItem `jazz:"children"`

	// A collection of zero or more work items which this work item blocks
	Blocks []*CCMWorkItem `jazz:"blocks"`

	// A collection of zero or more work items which block this work item
	DependsOn []*CCMWorkItem `jazz:"dependsOn"`

	// A collection of zero or more work items which are closed as duplicates of
	// this work item
	DuplicatedBy []*CCMWorkItem `jazz:"duplicatedBy"`

	// A collection of zero or more work items which this work item is a duplicate
	// of
	DuplicateOf []*CCMWorkItem `jazz:"duplicateOf"`

	// A collection of zero of more work items which this work item is related to
	Related []*CCMWorkItem `jazz:"related"`

	// A collection of zero or more items linked to the work item as custom
	// attributes
	ItemExtensions []*CCMItemExtensionEntry `jazz:"itemExtensions"`

	// A collection of zero or more lists of items linked to the work item as
	// custom attributes
	MultiItemExtensions []*CCMMultiItemExtensionEntry `jazz:"multiItemExtensions"`

	// A collection of zero or more custom attributes of type medium string
	MediumStringExtensions []*CCMMediumStringExtensionEntry `jazz:"mediumStringExtensions"`

	// A collection of zero or more custom attributes of type boolean
	BooleanExtensions []*CCMBooleanExtensionEntry `jazz:"booleanExtensions"`

	// A collection of zero or more custom attributes of type timestamp
	TimestampExtensions []*CCMTimestampExtensionEntry `jazz:"timestampExtensions"`

	// A collection of zero or more custom attributes of type long
	LongExtensions []*CCMLongExtensionEntry `jazz:"longExtensions"`

	// A collection of zero or more custom attributes of type integer
	IntExtensions []*CCMIntExtensionEntry `jazz:"intExtensions"`

	// A collection of zero or more custom attributes of type big decimal
	BigDecimalExtensions []*CCMBigDecimalExtensionEntry `jazz:"bigDecimalExtensions"`

	// A collection of zero or more custom attributes of type large string
	LargeStringExtensions []*CCMLargeStringExtensionEntry `jazz:"largeStringExtensions"`

	// A collection of zero or more custom attributes of type string
	StringExtensions []*CCMStringExtensionEntry `jazz:"stringExtensions"`

	// A collection of zero or more custom attributes of all types
	AllExtensions []*CCMExtensionEntry `jazz:"allExtensions"`

	// A collection of zero or more timesheet entries linked to the work item
	TimeSheetEntries []*CCMTimeSheetEntry `jazz:"timeSheetEntries"`

	// The work item's planned start date as specified in the plan.
	PlannedStartDate *time.Time `jazz:"plannedStartDate"`

	// The work item's planned end date as specified in the plan.
	PlannedEndDate *time.Time `jazz:"plannedEndDate"`
}

CCMWorkItem (see https://jazz.net/wiki/bin/view/Main/ReportsRESTAPI#workItem_type_com_ibm_team_worki) This element represents a Work Item.

func (*CCMWorkItem) Load

func (o *CCMWorkItem) Load(ctx context.Context) (err error)

Load CCMWorkItem object

func (*CCMWorkItem) LoadAllFields

func (o *CCMWorkItem) LoadAllFields(ctx context.Context) error

LoadAllFields of CCMWorkItem object

func (*CCMWorkItem) Spec

func (o *CCMWorkItem) Spec() *CCMObjectSpec

Spec returns the specification object for CCMWorkItem

type CCMWorkItemType

type CCMWorkItemType struct {
	CCMBaseObject

	// The id of the type (e.g. "com.ibm.team.workitem.defect"), unique in a
	// repository.
	Id string `jazz:"id"`

	// The name of the type (e.g. "Defect"). Not necessarily unique.
	Name string `jazz:"name"`
}

CCMWorkItemType (see https://jazz.net/wiki/bin/view/Main/ReportsRESTAPI#com_ibm_team_workitem_WorkItemTy) This element represents the type of a work item. Work item types are process-dependent.

func (*CCMWorkItemType) LoadAllFields

func (o *CCMWorkItemType) LoadAllFields(ctx context.Context) error

LoadAllFields of CCMWorkItemType object

func (*CCMWorkItemType) Spec

func (o *CCMWorkItemType) Spec() *CCMObjectSpec

Spec returns the specification object for CCMWorkItemType

type CCMWorkspace

type CCMWorkspace struct {
	CCMBaseObject

	// The name of the workspace or stream
	Name string `jazz:"name"`

	// True if this is a stream, false if this is a workspace
	Stream bool `jazz:"stream"`

	// A description of the workspace or stream
	Description string `jazz:"description"`

	// Whether or not ETL data collection is configured for this stream
	CollectData bool `jazz:"collectData"`

	// A collection of key/value properties associated with the workspace or
	// stream
	Properties []*CCMProperty `jazz:"properties"`

	// The owner of the workspace or stream
	Contributor *CCMContributor `jazz:"contributor"`
}

CCMWorkspace (see https://jazz.net/wiki/bin/view/Main/ReportsRESTAPI#workspace_type_com_ibm_team_scm) This element represents an SCM Workspace or Stream

func (*CCMWorkspace) Load

func (o *CCMWorkspace) Load(ctx context.Context) (err error)

Load CCMWorkspace object

func (*CCMWorkspace) LoadAllFields

func (o *CCMWorkspace) LoadAllFields(ctx context.Context) error

LoadAllFields of CCMWorkspace object

func (*CCMWorkspace) Spec

func (o *CCMWorkspace) Spec() *CCMObjectSpec

Spec returns the specification object for CCMWorkspace

type Client

type Client struct {
	// HttpClient used for requests to the jazz server
	HttpClient *http.Client

	// maximum amount of actions that should run in parallel
	Worker int

	// GC provides all functionalities to access the "Global Configuration Management" application
	GC *GCApplication
	// CCM provides all functionalities to access the "Change and Configuration Management"  application
	CCM *CCMApplication
	// QM provides all functionalities to access the "Quality Management"  application
	QM *QMApplication

	// Logger instance used for debug logging
	Logger *zap.Logger
	// contains filtered or unexported fields
}

Client to communicate with various application of a jazz server

func NewClient

func NewClient(baseUrl, user, password string) (*Client, error)

NewClient creates a new client for the given server

func (*Client) WithConfig

func (c *Client) WithConfig(config *GlobalConfiguration) *Client

WithConfig creates a new client (copy of existing) with the given global configuration

type Error

type Error struct {
	Msg      string
	Details  string
	PostData []byte
}

Error for responses of jazz server

func (Error) Error

func (e Error) Error() string

type FeedEntry

type FeedEntry struct {
	Id    string
	Title string
	Alias string
}

type GCApplication

type GCApplication struct {
	// contains filtered or unexported fields
}

func (*GCApplication) Client

func (a *GCApplication) Client() *Client

func (*GCApplication) GetGlobalConfig

func (a *GCApplication) GetGlobalConfig(ctx context.Context, title string) (*GlobalConfiguration, error)

GetGlobalConfig by title

func (*GCApplication) GlobalConfigs

func (a *GCApplication) GlobalConfigs(ctx context.Context) ([]*GlobalConfiguration, error)

GlobalConfigs available on server

func (*GCApplication) ID

func (a *GCApplication) ID() string

func (*GCApplication) Name

func (a *GCApplication) Name() string

type GlobalConfiguration

type GlobalConfiguration struct {
	Title string
	URL   string
}

GlobalConfiguration of Jazz application

type QMApplication

type QMApplication struct {
	// contains filtered or unexported fields
}

QMApplication interface

func (*QMApplication) Client

func (a *QMApplication) Client() *Client

Client instance used for communication

func (*QMApplication) GetProject

func (a *QMApplication) GetProject(ctx context.Context, title string) (*QMProject, error)

GetProject with the given title

func (*QMApplication) ID

func (a *QMApplication) ID() string

ID of application

func (*QMApplication) Name

func (a *QMApplication) Name() string

Name of application

func (*QMApplication) Projects

func (a *QMApplication) Projects(ctx context.Context) ([]*QMProject, error)

Projects of available (and accessible)

type QMAttachment

type QMAttachment struct {
	QMBaseObject

	// Title of object
	Title string `xml:"title"`

	// Numeric identifier shown in webinterface
	WebId int `xml:"webId"`

	// FileSize of attachment
	FileSize float64 `xml:"fileSize"`
}

QMAttachment implements the RQM "attachment" resource

func (*QMAttachment) Download

func (o *QMAttachment) Download(ctx context.Context, w io.Writer) error

Download content of attachment

func (*QMAttachment) Spec

func (o *QMAttachment) Spec() *QMObjectSpec

Spec returns the specification object for QMAttachment

type QMAutomaticTestScript

type QMAutomaticTestScript struct {
	QMBaseObject

	// Title of object
	Title string `xml:"title"`

	// Numeric identifier shown in webinterface
	WebId int `xml:"webId"`

	// Description of object
	Description string `xml:"description"`

	// Owner of test case
	Owner string `xml:"owner"`

	// Creator of test case
	Creator string `xml:"creator"`

	// Updated contains last update time
	Updated time.Time `xml:"updated"`

	// Command for automatic test script
	Command string `xml:"command"`

	// Arguments for automatic test script
	Arguments string `xml:"arguments"`
}

QMAutomaticTestScript implements the RQM "remotescript" resource

func (*QMAutomaticTestScript) Spec

Spec returns the specification object for QMManualTestScript

type QMBaseObject

type QMBaseObject struct {
	// ResourceUrl of object (used as "identifier")
	ResourceUrl string `json:"identifier" xml:"identifier"`
	// contains filtered or unexported fields
}

QMBaseObject for RQM resources

func (QMBaseObject) Ref

func (o QMBaseObject) Ref() QMRef

Ref returns QMRef of object

func (*QMBaseObject) SetProj

func (o *QMBaseObject) SetProj(proj *QMProject)

SetProj of object

func (*QMBaseObject) SetRef

func (o *QMBaseObject) SetRef(url string)

SetRef URL of object

type QMCache

type QMCache[T QMObject] struct {
	// contains filtered or unexported fields
}

QMCache will request every object only once

func NewQMCache

func NewQMCache[T QMObject](project *QMProject) *QMCache[T]

NewQMCache creates a new cache object for the given project

func (*QMCache[T]) Get

func (c *QMCache[T]) Get(ctx context.Context, ref QMRef) (T, error)

Get element from cache or query from server

type QMCategory

type QMCategory struct {
	Name  string `xml:"term,attr"`
	Value string `xml:"value,attr"`
}

QMCategory entry of test case

type QMDuration

type QMDuration time.Duration

QMDuration used in QM objects (stored as milliseconds)

func (*QMDuration) UnmarshalXML

func (d *QMDuration) UnmarshalXML(decoder *xml.Decoder, start xml.StartElement) error

type QMFilter

type QMFilter map[string]string

QMFilter is used to filter results in QM list queries

type QMManualTestScript

type QMManualTestScript struct {
	QMBaseObject

	// Title of object
	Title string `xml:"title"`

	// Numeric identifier shown in webinterface
	WebId int `xml:"webId"`

	// Description of object
	Description string `xml:"description"`

	// Owner of test script
	Owner string `xml:"owner"`

	// Creator of test script
	Creator string `xml:"creator"`

	// Updated contains last update time
	Updated time.Time `xml:"updated"`
}

QMManualTestScript implements the RQM "testscript" resource

func (*QMManualTestScript) Spec

func (o *QMManualTestScript) Spec() *QMObjectSpec

Spec returns the specification object for QMManualTestScript

type QMObject

type QMObject interface {
	Spec() *QMObjectSpec
	SetProj(proj *QMProject)
	Ref() QMRef
	SetRef(url string)
}

QMObject describes a QM object implementation

type QMObjectSpec

type QMObjectSpec struct {
	// Resource identifier of object.
	// https://jazz.net/wiki/bin/view/Main/RqmApi#Resources_and_their_Supported_Op
	ResourceID string
}

func (*QMObjectSpec) DumpXml

func (o *QMObjectSpec) DumpXml(obj QMObject) []byte

DumpXml for update or creation of objects

func (*QMObjectSpec) GetURL

func (o *QMObjectSpec) GetURL(proj *QMProject, id string) string

GetURL returns the URL to get an object

https://jazz.net/wiki/bin/view/Main/RqmApi#integrationUrl
https://jazz.net/wiki/bin/view/Main/RqmApi#single_ProjectFeedUrl
https://jazz.net/wiki/bin/view/Main/RqmApi#Resource_Objects_and_their_Relat

func (*QMObjectSpec) ListURL

func (o *QMObjectSpec) ListURL(proj *QMProject, filter QMFilter) (string, error)

type QMProject

type QMProject struct {
	Title string
	Alias string
	// contains filtered or unexported fields
}

func (*QMProject) NewUUID

func (p *QMProject) NewUUID(ctx context.Context) (string, error)

NewUUID returns a new UUID generated on the server

func (*QMProject) UploadAttachment

func (p *QMProject) UploadAttachment(ctx context.Context, fileName string, fileReader io.Reader) (*QMAttachment, error)

UploadAttachment with the given file name and content

type QMRef

type QMRef struct {
	Href string `json:"href" xml:"href,attr"`
}

QMRef reference to object

func (QMRef) String

func (s QMRef) String() string

type QMRefList

type QMRefList []QMRef

QMRefList list of object references

func (QMRefList) IDList

func (s QMRefList) IDList() []string

type QMTestCase

type QMTestCase struct {
	QMBaseObject

	// Title of object
	Title string `xml:"title"`

	// Numeric identifier shown in webinterface
	WebId int `xml:"webId"`

	// Description of object
	Description string `xml:"description"`

	// Owner of test case
	Owner string `xml:"owner"`

	// Creator of test case
	Creator string `xml:"creator"`

	// Updated contains last update time
	Updated time.Time `xml:"updated"`

	// estimated execution time
	Estimate QMDuration `xml:"estimate"`

	// Categories of test case
	Categories []QMCategory `xml:"category"`

	// AutomaticTestScriptRefs contains list of resource URLs for QMAutomaticTestScript
	AutomaticTestScriptRefs QMRefList `xml:"remotescript"`

	// ManualTestScriptRefs contains list of resource URLs for QMManualTestScript
	ManualTestScriptRefs QMRefList `xml:"testscript"`
}

QMTestCase implements the RQM "testcase" resource

func (*QMTestCase) AutomaticTestScripts

func (o *QMTestCase) AutomaticTestScripts(ctx context.Context) ([]*QMAutomaticTestScript, error)

AutomaticTestScripts that are part of this QMTestCase

func (*QMTestCase) ManualTestScripts

func (o *QMTestCase) ManualTestScripts(ctx context.Context) ([]*QMManualTestScript, error)

ManualTestScripts that are part of this QMTestCase

func (*QMTestCase) Spec

func (o *QMTestCase) Spec() *QMObjectSpec

Spec returns the specification object for QMTestEnvironment

type QMTestEnvironment

type QMTestEnvironment struct {
	QMBaseObject

	// Title of object
	Title string `xml:"title"`

	// Summary of configuration
	Summary string `xml:"summary"`
}

QMTestEnvironment implements the RQM "configuration" resource (WebUI Name: "Test Environment")

func (*QMTestEnvironment) Spec

func (o *QMTestEnvironment) Spec() *QMObjectSpec

Spec returns the specification object for QMTestEnvironment

type QMTestExecutionRecord

type QMTestExecutionRecord struct {
	QMBaseObject

	// Title of object
	Title string `xml:"title"`

	// Numeric identifier shown in webinterface
	WebId int `xml:"webId"`

	// Description of object
	Description string `xml:"description"`

	// estimated execution time
	Estimate QMDuration `xml:"estimate"`

	// Owner of test case
	Owner string `xml:"owner"`

	// Creator of test case
	Creator string `xml:"creator"`

	// Updated contains last update time
	Updated time.Time `xml:"updated"`

	// TestCaseRef contains reference to last execution QMTestCase
	TestCaseRef QMRef `xml:"testcase"`

	// TestEnvironmentRef contains reference to last execution QMTestEnvironment
	TestEnvironmentRef QMRef `xml:"configuration"`

	// LastExecutionResultRef contains reference to last execution QMTestExecutionResult
	LastExecutionResultRef QMRef `xml:"currentexecutionresult"`

	// TestExecutionResults contains list of resource URLs for QMTestExecutionResult
	TestExecutionResults QMRefList `xml:"executionresult"`
}

QMTestExecutionRecord implements the RQM "executionworkitem" resource

func (*QMTestExecutionRecord) Spec

Spec returns the specification object for QMManualTestScript

func (*QMTestExecutionRecord) TestCase

func (o *QMTestExecutionRecord) TestCase(ctx context.Context) (*QMTestCase, error)

TestCase of this QMTestExecutionRecord

func (*QMTestExecutionRecord) TestEnvironment

func (o *QMTestExecutionRecord) TestEnvironment(ctx context.Context) (*QMTestEnvironment, error)

TestEnvironment of this QMTestExecutionRecord

type QMTestExecutionResult

type QMTestExecutionResult struct {
	QMBaseObject

	// Title of object
	Title string `xml:"title"`

	// Numeric identifier shown in webinterface
	WebId int `xml:"webId" jazz:"qm:webId"`

	// State of test execution
	State string `xml:"state" jazz:"alm:state"`

	// Creator of entry
	Creator string `xml:"creator"`

	// Updated contains last update time
	Updated time.Time `xml:"updated"`

	// Machine of where test was executed
	Machine string `xml:"machine" jazz:"qmresult:machine"`

	// StartTime of test execution
	StartTime time.Time `xml:"starttime" jazz:"qmresult:starttime"`

	// EndTime of test execution
	EndTime time.Time `xml:"endtime" jazz:"qmresult:endtime"`

	// Variables of test execution result
	Variables QMVariableMap `xml:"variables" jazz:"qm:variables"`

	// TestPlanRef contains reference to last execution QMTestPlan
	TestPlanRef QMRef `xml:"testplan" jazz:"qm:testplan"`

	// TestCaseRef contains reference to last execution QMTestCase
	TestCaseRef QMRef `xml:"testcase" jazz:"qm:testcase"`

	// TestEnvironmentRef contains reference to last execution QMTestEnvironment
	TestEnvironmentRef QMRef `xml:"configuration" jazz:"qm:configuration"`

	// TestExecutionRecordRef contains reference to last execution QMTestExecutionRecord
	TestExecutionRecordRef QMRef `xml:"executionworkitem" jazz:"qm:executionworkitem"`

	// AutomaticTestScriptRef contains reference to last execution QMAutomaticTestScript
	AutomaticTestScriptRef QMRef `xml:"remotescript" jazz:"qm:remotescript"`

	// ManualTestScriptRef contains reference to last execution QMManualTestScript
	ManualTestScriptRef QMRef `xml:"testscript" jazz:"qm:testscript"`

	// AttachmentRefs contains reference to last execution QMAttachment
	AttachmentRefs QMRefList `xml:"attachment" jazz:"qm:attachment"`
}

QMTestExecutionResult implements the RQM "executionresult" resource

func (*QMTestExecutionResult) Attachments

func (o *QMTestExecutionResult) Attachments(ctx context.Context) ([]*QMAttachment, error)

Attachments that are part of this QMAttachment

func (*QMTestExecutionResult) AutomaticTestScript

func (o *QMTestExecutionResult) AutomaticTestScript(ctx context.Context) (*QMAutomaticTestScript, error)

AutomaticTestScript of this QMTestExecutionResult

func (*QMTestExecutionResult) ManualTestScript

func (o *QMTestExecutionResult) ManualTestScript(ctx context.Context) (*QMManualTestScript, error)

ManualTestScript of this QMTestExecutionResult

func (*QMTestExecutionResult) Spec

Spec returns the specification object for QMManualTestScript

func (*QMTestExecutionResult) TestCase

func (o *QMTestExecutionResult) TestCase(ctx context.Context) (*QMTestCase, error)

TestCase of this QMTestExecutionResult

func (*QMTestExecutionResult) TestEnvironment

func (o *QMTestExecutionResult) TestEnvironment(ctx context.Context) (*QMTestEnvironment, error)

TestEnvironment of this QMTestExecutionResult

func (*QMTestExecutionResult) TestExecutionRecord

func (o *QMTestExecutionResult) TestExecutionRecord(ctx context.Context) (*QMTestExecutionRecord, error)

TestExecutionRecord of this QMTestExecutionResult

type QMTestPlan

type QMTestPlan struct {
	QMBaseObject

	// Title of object
	Title string `xml:"title"`

	// Alias of object (used in resource URL)
	Alias string `xml:"alias"`

	// Numeric identifier shown in webinterface
	WebId int `xml:"webId"`

	// Description of object
	Description string `xml:"description"`

	// TestEnvironmentRefs contains list of resource URLs for QMTestEnvironment
	TestEnvironmentRefs QMRefList `xml:"configuration"`

	// TestCaseRefs contains list of resource URLs for QMTestCase
	TestCaseRefs QMRefList `xml:"testcase"`
}

QMTestPlan implements the RQM "testplan" resource

func (*QMTestPlan) Spec

func (o *QMTestPlan) Spec() *QMObjectSpec

Spec returns the specification object for QMTestPlan

func (*QMTestPlan) TestEnvironments

func (o *QMTestPlan) TestEnvironments(ctx context.Context) ([]*QMTestEnvironment, error)

TestEnvironments that are part of this QMTestPlan

func (*QMTestPlan) TestExecutionRecords

func (o *QMTestPlan) TestExecutionRecords(ctx context.Context) ([]*QMTestExecutionRecord, error)

TestExecutionRecords that are part of this QMTestPlan

func (*QMTestPlan) TestExecutionResults

func (o *QMTestPlan) TestExecutionResults(ctx context.Context) ([]*QMTestExecutionResult, error)

TestExecutionResults that are part of this QMTestPlan

type QMVariableMap

type QMVariableMap map[string]string

QMVariableMap contains list of variables

func (*QMVariableMap) UnmarshalJSON

func (m *QMVariableMap) UnmarshalJSON(b []byte) error

func (*QMVariableMap) UnmarshalXML

func (m *QMVariableMap) UnmarshalXML(decoder *xml.Decoder, start xml.StartElement) error

type RootService

type RootService struct {
	// contains filtered or unexported fields
}

func (*RootService) ServicesXml

func (r *RootService) ServicesXml(ctx context.Context) (*etree.Element, error)

Directories

Path Synopsis
cmd

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL