Documentation ¶
Index ¶
- Constants
- Variables
- type AndroidStory
- type Bug
- type BugIssueDetail
- type BugIssueDetailResponse
- type BugIssueExceptionListResponse
- type BugIssueRequest
- type BugIssueResponse
- type BugIssues
- type BugResponse
- type BugRet
- type BugSingleResponse
- type BugTag
- type BugTemplate
- type BugVersion
- type BugVersionResponse
- type BugWrapper
- type Category
- type CategoryPreResponse
- type CategoryResponse
- type CategoryWrapper
- type IOSStory
- type IssueException
- type IssueExceptionList
- type IssueLastTime
- type IssueRecord
- type Iteration
- type IterationResponse
- type IterationWrapper
- type NameMapResponse
- type RejectedStoryByIteration
- type Release
- type ReleaseResponse
- type ReleaseWrapper
- type SelectorPropertyList
- type SpecStoryResponse
- type StatusChange
- type Story
- type StoryChangeByIteration
- type StoryChangeItem
- type StoryChangeResponse
- type StoryResponse
- type StoryWallTimeModel
- type StoryWrapper
- type TargetStoryChange
- type TestTimeByIteration
- type TestTimeByStory
- type UpdateBug
- type WaitTimeByIteration
- type WaitTimeByStory
- type WorkitemChange
- type WorkitemChangeWrapper
Constants ¶
const ( IterationURL = "https://api.tapd.cn/iterations?workspace_id=%s&name=%s&limit=%d&fields=id,name,startdate,enddate" AllIterationURL = "https://api.tapd.cn/iterations?workspace_id=%s&limit=%d" StoryURL = "https://api.tapd.cn/stories?workspace_id=%s&iteration_id=%s&limit=%d" StoryURLWithoutItera = "https://api.tapd.cn/stories?workspace_id=%s&limit=%d" SpecStoryURL = "https://api.tapd.cn/stories?workspace_id=%s&id=%s" StoryChangeURL = "https://api.tapd.cn/story_changes?workspace_id=%s&story_id=%s&limit=%d" NameMapURL = "https://api.tapd.cn/workflows/status_map?system=story&workspace_id=%s" CategoryURL = "https://api.tapd.cn/story_categories?workspace_id=%s&fields=id,name&limit=%d" BugURL = "https://api.tapd.cn/bugs?workspace_id=%s&limit=%d" ReleaseURL = "https://api.tapd.cn/releases?workspace_id=%s&id=%s" CategoryPreURL = "https://api.tapd.cn/story_categories?workspace_id=%s&id=%s" BugPreURL = "https://api.tapd.cn/bugs?workspace_id=%s&id=%s" CreateBugURL = "https://api.tapd.cn/bugs" )
tapd urls
const ( IPS = 30 SPS = 30 SCPS = 50 CPS = 50 )
page size
Variables ¶
var ( IOSRelease = map[string]string{"1120055921001001566": "粉 - 5.22", "1120055921001001673": "粉 - 5.23", "1120055921001001766": "粉 - 5.24", "1120055921001001856": "粉 - 5.25", "1120055921001001930": "粉 - 5.26", "1120055921001002000": "粉 - 5.27", "1120055921001002073": "粉 - 5.28", "1120055921001002147": "粉 - 5.29", "1120055921001002213": "粉 - 5.30", "1120055921001002234": "粉 - 5.31"} AndroidRelease = map[string]string{"1120060791001001567": "Android 5.22", "1120060791001001672": "Android 5.23", "1120060791001001731": "Android 5.24", "1120060791001001855": "Android 5.25", "1120060791001001931": "Android 5.26", "1120060791001001999": "Android 5.27", "1120060791001002072": "Android 5.28", "1120060791001002158": "Android 5.29", "1120060791001002212": "Android 5.30", "1120060791001002268": "Android 5.31"} IOSWorkflow = []string{"规划中(研发不受理此状态!)", "需求评审", "需求评审未通过", "确定发布计划", "待开发", "开发中", "产品设计验收", "验收通过待测试", "测试中", "验收通过待测试(接入需求)", "测试通过待合入", "已合入总包", "需求完成", "需求挂起", "需求取消", "免测发布"} AndroidWorkflow = []string{"规划中(研发不受理此状态!)", "需求评审", "需求评审未通过", "确定发布计划", "待开发", "开发中", "产品设计验收", "验收通过待测试", "测试中", "验收通过待测试(接入需求)", "测试通过", "待合入总包", "需求完成", "需求挂起", "需求取消", "免测发布"} BaseFields = map[string]string{"id": "ID", "status": "状态", "priority": "优先级", "size": "规模", "category_id": "需求分类", "parent_id": "父需求", "release_id": "发布计划", "owner": "处理人", "developer": "开发人员", "creator": "创建人", "begin": "预计开始", "due": "预计结束", "created": "创建时间", "completed": "完成时间", "effort": "预估工时"} BaseFieldsList = []string{"ID", "状态", "优先级", "规模", "需求分类", "父需求", "发布计划", "处理人", "开发人员", "创建人", "预计开始", "预计结束", "创建时间", "完成时间", "预估工时"} IOSFields = map[string]string{"custom_field_99": "接口上线日", "custom_field_97": "双端都提得需求", "custom_field_93": "端范围(默认仅粉iPhone)", "custom_field_92": "是否可以单端上线"} IOSFieldsList = []string{"接口上线日", "双端都提得需求", "端范围(默认仅粉iPhone)", "是否可以单端上线"} AndroidFields = map[string]string{"custom_field_99": "接口上线日", "custom_field_97": "双端都提得需求", "custom_field_93": "是否可以单端上线"} AndroidFieldsList = []string{"接口上线日", "双端都提得需求", "是否可以单端上线"} LiveWorkflow = []string{"需求规划中(未受理需求)", "需求文档评审", "待排期", "已排期", "开发中", "开发完成待体验", "验收通过待测试", "测试中", "测试通过", "产品设计验收通过", "需求挂起", "需求取消", "免测发布", "已实现"} BPlusWorkflow = []string{"需求中", "已评审", "开发中", "产品/设计体验", "转测试", "测试中", "测试完成", "已实现", "已拒绝"} AndroidStoryWallFields = []string{"auditing", "status_2", "status_11", "developing", "product_experience", "status_5", "testing", "status_6", "status_7", "status_1"} AndroidStoryWallColNames = map[string]string{"auditing": "需求评审", "status_2": "确定发布计划", "status_11": "待开发", "developing": "开发中", "product_experience": "产品设计验收", "status_5": "验收通过待测试", "testing": "测试中", "status_6": "测试通过", "status_7": "待合入总包", "status_1": "需求完成"} IosStoryWallFields = []string{"auditing", "status_2", "status_11", "developing", "product_experience", "status_5", "testing", "status_7", "status_8", "status_1"} IosStoryWallColNames = map[string]string{"auditing": "需求评审", "status_2": "确定发布计划", "status_11": "待开发", "developing": "开发中", "product_experience": "产品设计验收", "status_5": "验收通过待测试", "testing": "测试中", "status_7": "测试通过待合入", "status_8": "已合入总包", "status_1": "需求完成"} )
ios and and android info
var ( Test = "test" Experience = "experience" )
test and reject type
var ( IOS = "ios" Android = "android" Live = "live" BPlus = "bplus" )
workspace type
Functions ¶
This section is empty.
Types ¶
type AndroidStory ¶
type AndroidStory struct { CustomField99 string `json:"custom_field_99"` //接口上线日 CustomField97 string `json:"custom_field_97"` //双端都提得需求 CustomField93 string `json:"custom_field_93"` //是否可以单端上线 }
AndroidStory additional fields for android story
type Bug ¶
type Bug struct { ID string `json:"id"` Title string `json:"title"` Description string `json:"description"` Priority string `json:"priority"` Severity string `json:"severity"` Module string `json:"module"` Status string `json:"status"` Reporter string `json:"reporter"` Deadline string `json:"deadline"` Created string `json:"created"` BugType string `json:"bugtype"` Resolved string `json:"resolved"` Closed string `json:"closed"` Modified string `json:"modified"` LastModify string `json:"lastmodify"` Auditer string `json:"auditer"` DE string `json:"de"` VersionTest string `json:"version_test"` VersionReport string `json:"version_report"` VersionClose string `json:"version_close"` VersionFix string `json:"version_fix"` BaselineFind string `json:"baseline_find"` BaselineJoin string `json:"baseline_join"` BaselineClose string `json:"baseline_close"` BaselineTest string `json:"baseline_test"` SourcePhase string `json:"sourcephase"` TE string `json:"te"` CurrentOwner string `json:"current_owner"` IterationID string `json:"iteration_id"` Resolution string `json:"resolution"` Source string `json:"source"` OriginPhase string `json:"originphase"` Confirmer string `json:"confirmer"` Milestone string `json:"milestone"` Participator string `json:"participator"` Closer string `json:"closer"` Platform string `json:"platform"` OS string `json:"os"` TestType string `json:"testtype"` TestPhase string `json:"testphase"` Frequency string `json:"frequency"` CC string `json:"cc"` RegressionNumber string `json:"regression_number"` Flows string `json:"flows"` Feature string `json:"feature"` TestMode string `json:"testmode"` Estimate string `json:"estimate"` IssueID string `json:"issue_id"` CreatedFrom string `json:"created_from"` InProgressTime string `json:"in_progress_time"` VerifyTime string `json:"verify_time"` RejectTime string `json:"reject_time"` ReopenTime string `json:"reopen_time"` AuditTime string `json:"audit_time"` SuspendTime string `json:"suspend_time"` Due string `json:"due"` Begin string `json:"begin"` ReleaseID string `json:"release_id"` WorkspaceID string `json:"workspace_id"` CustomFieldOne string `json:"custom_field_one"` CustomFieldTwo string `json:"custom_field_two"` CustomFieldThree string `json:"custom_field_three"` CustomFieldFour string `json:"custom_field_four"` CustomFieldFive string `json:"custom_field_five"` CustomField6 string `json:"custom_field_6"` CustomField7 string `json:"custom_field_7"` CustomField8 string `json:"custom_field_8"` CustomField9 string `json:"custom_field_9"` CustomField10 string `json:"custom_field_10"` CustomField11 string `json:"custom_field_11"` CustomField12 string `json:"custom_field_12"` CustomField13 string `json:"custom_field_13"` CustomField14 string `json:"custom_field_14"` CustomField15 string `json:"custom_field_15"` CustomField16 string `json:"custom_field_16"` CustomField17 string `json:"custom_field_17"` CustomField18 string `json:"custom_field_18"` CustomField19 string `json:"custom_field_19"` CustomField20 string `json:"custom_field_20"` CustomField21 string `json:"custom_field_21"` CustomField22 string `json:"custom_field_22"` CustomField23 string `json:"custom_field_23"` CustomField24 string `json:"custom_field_24"` CustomField25 string `json:"custom_field_25"` CustomField26 string `json:"custom_field_26"` CustomField27 string `json:"custom_field_27"` CustomField28 string `json:"custom_field_28"` CustomField29 string `json:"custom_field_29"` CustomField30 string `json:"custom_field_30"` CustomField31 string `json:"custom_field_31"` CustomField32 string `json:"custom_field_32"` CustomField33 string `json:"custom_field_33"` CustomField34 string `json:"custom_field_34"` CustomField35 string `json:"custom_field_35"` CustomField36 string `json:"custom_field_36"` CustomField37 string `json:"custom_field_37"` CustomField38 string `json:"custom_field_38"` CustomField39 string `json:"custom_field_39"` CustomField40 string `json:"custom_field_40"` CustomField41 string `json:"custom_field_41"` CustomField42 string `json:"custom_field_42"` CustomField43 string `json:"custom_field_43"` CustomField44 string `json:"custom_field_44"` CustomField45 string `json:"custom_field_45"` CustomField46 string `json:"custom_field_46"` CustomField47 string `json:"custom_field_47"` CustomField48 string `json:"custom_field_48"` CustomField49 string `json:"custom_field_49"` CustomField50 string `json:"custom_field_50"` }
Bug Bug
type BugIssueDetail ¶
type BugIssueDetail struct {
CallStack string `json:"callStack"`
}
BugIssueDetail Bug Issue Detail.
type BugIssueDetailResponse ¶
type BugIssueDetailResponse struct { Code int `json:"code"` Data *BugIssueDetail `json:"data"` }
BugIssueDetailResponse Bug Issue Detail Response.
type BugIssueExceptionListResponse ¶
type BugIssueExceptionListResponse struct { Status int `json:"status"` Ret *IssueExceptionList `json:"ret"` }
BugIssueExceptionListResponse Bug Issue Exception List Response.
type BugIssueRequest ¶
type BugIssueRequest struct { StartNum int Version string Rows int PlatformID string ProjectID string ExceptionType string }
BugIssueRequest Bug Issue Request.
type BugIssueResponse ¶
BugIssueResponse Bug Issue Response.
type BugIssues ¶
type BugIssues struct { IssueID string `json:"issueId"` Title string `json:"exceptionName"` ExceptionMsg string `json:"exceptionMessage"` KeyStack string `json:"keyStack"` LastTime string `json:"lastestUploadTime"` Count int64 `json:"count"` Tags []*BugTag `json:"tagInfoList"` UserCount int64 `json:"imeiCount"` Version string `json:"version"` }
BugIssues Bug Issues.
type BugResponse ¶
type BugResponse struct { Status int `json:"status"` Data []*BugWrapper `json:"data"` Info string `json:"info"` }
BugResponse Bug Response
type BugSingleResponse ¶
type BugSingleResponse struct { Status int `json:"status"` Data *BugWrapper `json:"data"` Info string `json:"info"` }
BugSingleResponse Bug Response
type BugTemplate ¶
type BugTemplate struct { ID int64 `json:"id" gorm:"column:id"` WorkspaceID string `json:"workspace_id" gorm:"column:workspace_id"` ProjectID string `json:"project_id" gorm:"column:project_id"` PlatformID string `json:"platform_id" gorm:"column:platform_id"` Title string `json:"title" gorm:"column:title"` Description string `json:"description" gorm:"column:description"` CurrentOwner string `json:"current_owner" gorm:"column:current_owner"` Platform string `json:"platform" gorm:"column:platform"` Module string `json:"module" gorm:"column:module"` ReleaseID string `json:"release_id" gorm:"column:release_id"` Priority string `json:"priority" gorm:"column:priority"` Severity string `json:"severity" gorm:"column:severity"` Source string `json:"source" gorm:"column:source"` CustomFieldFour string `json:"custom_field_four" gorm:"column:custom_field_four"` BugType string `json:"bugtype" gorm:"column:bugtype"` OriginPhase string `json:"originphase" gorm:"column:originphase"` CustomFieldThree string `json:"custom_field_three" gorm:"column:custom_field_three"` Reporter string `json:"reporter" gorm:"column:reporter"` Status string `json:"status" gorm:"column:status"` IssueFilterSQL string `json:"issue_filter_sql" gorm:"column:issue_filter_sql"` SeverityKey string `json:"severity_key" gorm:"column:severity_key"` }
BugTemplate BugTemplate.
type BugVersion ¶
type BugVersion struct { Name string `json:"name"` Enable int `json:"enable"` SDKVersion string `json:"sdkVersion"` }
BugVersion BugVersion.
type BugVersionResponse ¶
type BugVersionResponse struct { Status int `json:"status"` Ret *SelectorPropertyList `json:"ret"` }
BugVersionResponse Bug Version Response.
type CategoryPreResponse ¶
type CategoryPreResponse struct { Status int `json:"status"` Data *CategoryWrapper `json:"data"` Info string `json:"info"` }
CategoryPreResponse response for tapd category query
type CategoryResponse ¶
type CategoryResponse struct { Status int `json:"status"` Data []*CategoryWrapper `json:"data"` Info string `json:"info"` }
CategoryResponse response for tapd category query
type CategoryWrapper ¶
type CategoryWrapper struct {
Category *Category
}
CategoryWrapper sub struct in CategoryResponse
type IOSStory ¶
type IOSStory struct { CustomField99 string `json:"custom_field_99"` //接口上线日 CustomField97 string `json:"custom_field_97"` //双端都提得需求 CustomField93 string `json:"custom_field_93"` //端范围(默认仅粉iPhone) CustomField92 string `json:"custom_field_92"` //是否可以单端上线 }
IOSStory additional fields for ios story
type IssueException ¶
IssueException IssueException.
type IssueExceptionList ¶
type IssueExceptionList struct {
IssueException []*IssueException `json:"issueList"`
}
IssueExceptionList IssueExceptionList.
type IssueLastTime ¶
type IssueLastTime struct { ID int64 `json:"id" gorm:"column:id"` LastTime time.Time `json:"last_time" gorm:"column:last_time"` Version string `json:"version" gorm:"column:version"` //1-正在执行中,0未执行或已执行完 TaskStatus int `json:"task_status" gorm:"column:task_status"` LastIssue string `json:"last_issue" gorm:"column:last_issue"` }
IssueLastTime Issue Last Time.
type IssueRecord ¶
type IssueRecord struct { ID int64 `json:"id" gorm:"column:id"` IssueNo string `json:"issue_no" gorm:"column:issue_no"` Title string `json:"title" gorm:"column:title"` ExceptionMsg string `json:"exception_msg" gorm:"column:exception_msg"` KeyStack string `json:"key_stack" gorm:"column:key_stack"` Detail string `json:"detail" gorm:"column:detail"` Tags string `json:"tags" gorm:"column:tags"` LastTime time.Time `json:"last_time" gorm:"column:last_time"` HappenTimes int64 `json:"happen_times" gorm:"column:happen_times"` UserTimes int64 `json:"user_times" gorm:"column:user_times"` Version string `json:"version" gorm:"column:version"` ProjectID string `json:"project_id" gorm:"column:project_id"` IssueLink string `json:"issue_link" gorm:"column:issue_link"` TapdBugID string `json:"tapd_bug_id" gorm:"column:tapd_bug_id"` }
IssueRecord Issue Record.
type Iteration ¶
type Iteration struct { ID string `json:"id"` Name string `json:"name"` WorkspaceID string `json:"workspace_id"` Startdate string `json:"startdate"` Enddate string `json:"enddate"` Status string `json:"status"` ReleaseID string `json:"release_id"` Description string `json:"description"` Creator string `json:"creator"` Created string `json:"created"` Modified string `json:"modified"` Completed string `json:"completed"` CustomField1 string `json:"custom_field_1"` CustomField2 string `json:"custom_field_2"` CustomField3 string `json:"custom_field_3"` CustomField4 string `json:"custom_field_4"` CustomField5 string `json:"custom_field_5"` CustomField6 string `json:"custom_field_6"` CustomField7 string `json:"custom_field_7"` CustomField8 string `json:"custom_field_8"` CustomField9 string `json:"custom_field_9"` CustomField10 string `json:"custom_field_10"` CustomField11 string `json:"custom_field_11"` CustomField12 string `json:"custom_field_12"` CustomField13 string `json:"custom_field_13"` CustomField14 string `json:"custom_field_14"` CustomField15 string `json:"custom_field_15"` CustomField16 string `json:"custom_field_16"` CustomField17 string `json:"custom_field_17"` CustomField18 string `json:"custom_field_18"` CustomField19 string `json:"custom_field_19"` CustomField20 string `json:"custom_field_20"` CustomField21 string `json:"custom_field_21"` CustomField22 string `json:"custom_field_22"` CustomField23 string `json:"custom_field_23"` CustomField24 string `json:"custom_field_24"` CustomField25 string `json:"custom_field_25"` CustomField26 string `json:"custom_field_26"` CustomField27 string `json:"custom_field_27"` CustomField28 string `json:"custom_field_28"` CustomField29 string `json:"custom_field_29"` CustomField30 string `json:"custom_field_30"` CustomField31 string `json:"custom_field_31"` CustomField32 string `json:"custom_field_32"` CustomField33 string `json:"custom_field_33"` CustomField34 string `json:"custom_field_34"` CustomField35 string `json:"custom_field_35"` CustomField36 string `json:"custom_field_36"` CustomField37 string `json:"custom_field_37"` CustomField38 string `json:"custom_field_38"` CustomField39 string `json:"custom_field_39"` CustomField40 string `json:"custom_field_40"` CustomField41 string `json:"custom_field_41"` CustomField42 string `json:"custom_field_42"` CustomField43 string `json:"custom_field_43"` CustomField44 string `json:"custom_field_44"` CustomField45 string `json:"custom_field_45"` CustomField46 string `json:"custom_field_46"` CustomField47 string `json:"custom_field_47"` CustomField48 string `json:"custom_field_48"` CustomField49 string `json:"custom_field_49"` CustomField50 string `json:"custom_field_50"` }
Iteration tapd iteration
type IterationResponse ¶
type IterationResponse struct { Status int `json:"status"` Data []*IterationWrapper `json:"data"` Info string `json:"info"` }
IterationResponse response for tapd iteration query
type IterationWrapper ¶
type IterationWrapper struct {
Iteration *Iteration `json:"iteration"`
}
IterationWrapper sub struct in IterationResponse
type NameMapResponse ¶
type NameMapResponse struct { Status int `json:"status"` Data map[string]string `json:"data"` Info string }
NameMapResponse story status name mapping
type RejectedStoryByIteration ¶
type RejectedStoryByIteration struct { IterationName string RejectedStoryCount int RejectedStoryList []string }
RejectedStoryByIteration rejected stories organized by iteration
type Release ¶
type Release struct { ID string `json:"id"` WorkSpaceID string `json:"workspace_id"` Name string `json:"name"` Description string `json:"description"` StartDate string `json:"startdate"` EndDate string `json:"enddate"` Creator string `json:"creator"` Created string `json:"created"` Modified string `json:"modified"` Status string `json:"status"` }
Release Release
type ReleaseResponse ¶
type ReleaseResponse struct { Status int `json:"status"` Data *ReleaseWrapper `json:"data"` Info string `json:"info"` }
ReleaseResponse Release Response
type ReleaseWrapper ¶
type ReleaseWrapper struct {
Release *Release `json:"Release"`
}
ReleaseWrapper Release Wrapper
type SelectorPropertyList ¶
type SelectorPropertyList struct {
BugVersionList []*BugVersion `json:"versionList"`
}
SelectorPropertyList SelectorPropertyList.
type SpecStoryResponse ¶
type SpecStoryResponse struct { Status int `json:"status"` Data *StoryWrapper `json:"data"` Info string `json:"info"` }
SpecStoryResponse response for tapd specific story query
type StatusChange ¶
StatusChange story change
type Story ¶
type Story struct { ID string `json:"id"` Name string `json:"name"` WorkspaceID string `json:"workspace_id"` Creator string `json:"creator"` Created string `json:"created"` Modified string `json:"modified"` Status string `json:"status"` Owner string `json:"owner"` Cc string `json:"cc"` Begin string `json:"begin"` Due string `json:"due"` Size string `json:"size"` Priority string `json:"priority"` Developer string `json:"developer"` IterationID string `json:"iteration_id"` TestFocus string `json:"test_focus"` Type string `json:"type"` Source string `json:"source"` Module string `json:"module"` Version string `json:"version"` Completed string `json:"completed"` CategoryID string `json:"category_id"` ParentID string `json:"parent_id"` ChildrenID string `json:"children_id"` AncestorID string `json:"ancestor_id"` BusinessValue string `json:"business_value"` Effort string `json:"effort"` EffortCompleted string `json:"effort_completed"` Exceed string `json:"exceed"` Remain string `json:"remain"` ReleaseID string `json:"release_id"` CustomFieldOne string `json:"custom_field_one"` CustomFieldTwo string `json:"custom_field_two"` CustomFieldThree string `json:"custom_field_three"` CustomFieldFour string `json:"custom_field_four"` CustomFieldFive string `json:"custom_field_five"` CustomFieldSix string `json:"custom_field_six"` CustomFieldSeven string `json:"custom_field_seven"` CustomFieldEight string `json:"custom_field_eight"` CustomField9 string `json:"custom_field_9"` CustomField10 string `json:"custom_field_10"` CustomField11 string `json:"custom_field_11"` CustomField12 string `json:"custom_field_12"` CustomField13 string `json:"custom_field_13"` CustomField14 string `json:"custom_field_14"` CustomField15 string `json:"custom_field_15"` CustomField16 string `json:"custom_field_16"` CustomField17 string `json:"custom_field_17"` CustomField18 string `json:"custom_field_18"` CustomField19 string `json:"custom_field_19"` CustomField20 string `json:"custom_field_20"` CustomField21 string `json:"custom_field_21"` CustomField22 string `json:"custom_field_22"` CustomField23 string `json:"custom_field_23"` CustomField24 string `json:"custom_field_24"` CustomField25 string `json:"custom_field_25"` CustomField26 string `json:"custom_field_26"` CustomField27 string `json:"custom_field_27"` CustomField28 string `json:"custom_field_28"` CustomField29 string `json:"custom_field_29"` CustomField30 string `json:"custom_field_30"` CustomField31 string `json:"custom_field_31"` CustomField32 string `json:"custom_field_32"` CustomField33 string `json:"custom_field_33"` CustomField34 string `json:"custom_field_34"` CustomField35 string `json:"custom_field_35"` CustomField36 string `json:"custom_field_36"` CustomField37 string `json:"custom_field_37"` CustomField38 string `json:"custom_field_38"` CustomField39 string `json:"custom_field_39"` CustomField40 string `json:"custom_field_40"` CustomField41 string `json:"custom_field_41"` CustomField42 string `json:"custom_field_42"` CustomField43 string `json:"custom_field_43"` CustomField44 string `json:"custom_field_44"` CustomField45 string `json:"custom_field_45"` CustomField46 string `json:"custom_field_46"` CustomField47 string `json:"custom_field_47"` CustomField48 string `json:"custom_field_48"` CustomField49 string `json:"custom_field_49"` CustomField50 string `json:"custom_field_50"` CustomField51 string `json:"custom_field_51"` CustomField52 string `json:"custom_field_52"` CustomField53 string `json:"custom_field_53"` CustomField54 string `json:"custom_field_54"` CustomField55 string `json:"custom_field_55"` CustomField56 string `json:"custom_field_56"` CustomField57 string `json:"custom_field_57"` CustomField58 string `json:"custom_field_58"` CustomField59 string `json:"custom_field_59"` CustomField60 string `json:"custom_field_60"` CustomField61 string `json:"custom_field_61"` CustomField62 string `json:"custom_field_62"` CustomField63 string `json:"custom_field_63"` CustomField64 string `json:"custom_field_64"` CustomField65 string `json:"custom_field_65"` CustomField66 string `json:"custom_field_66"` CustomField67 string `json:"custom_field_67"` CustomField68 string `json:"custom_field_68"` CustomField69 string `json:"custom_field_69"` CustomField70 string `json:"custom_field_70"` CustomField71 string `json:"custom_field_71"` CustomField72 string `json:"custom_field_72"` CustomField73 string `json:"custom_field_73"` CustomField74 string `json:"custom_field_74"` CustomField75 string `json:"custom_field_75"` CustomField76 string `json:"custom_field_76"` CustomField77 string `json:"custom_field_77"` CustomField78 string `json:"custom_field_78"` CustomField79 string `json:"custom_field_79"` CustomField80 string `json:"custom_field_80"` CustomField81 string `json:"custom_field_81"` CustomField82 string `json:"custom_field_82"` CustomField83 string `json:"custom_field_83"` CustomField84 string `json:"custom_field_84"` CustomField85 string `json:"custom_field_85"` CustomField86 string `json:"custom_field_86"` CustomField87 string `json:"custom_field_87"` CustomField88 string `json:"custom_field_88"` CustomField89 string `json:"custom_field_89"` CustomField90 string `json:"custom_field_90"` CustomField91 string `json:"custom_field_91"` CustomField92 string `json:"custom_field_92"` CustomField93 string `json:"custom_field_93"` CustomField94 string `json:"custom_field_94"` CustomField95 string `json:"custom_field_95"` CustomField96 string `json:"custom_field_96"` CustomField97 string `json:"custom_field_97"` CustomField98 string `json:"custom_field_98"` CustomField99 string `json:"custom_field_99"` CustomField100 string `json:"custom_field_100"` }
Story tapd story
type StoryChangeByIteration ¶
type StoryChangeByIteration struct { IterationName string StoryCount int StoryChangeList []*TargetStoryChange }
StoryChangeByIteration story changes organized by iteration
type StoryChangeItem ¶
type StoryChangeItem struct { ID string WorkspaceID string StoryID string Number string Field string Creator string Created string ValueBefore string ValueAfter string ChangeSummay string Comment string EntityType string }
StoryChangeItem story change struct wrote to change file
type StoryChangeResponse ¶
type StoryChangeResponse struct { Status int `json:"status"` Data []*WorkitemChangeWrapper `json:"data"` Info string `json:"info"` }
StoryChangeResponse response for tapd story change query
type StoryResponse ¶
type StoryResponse struct { Status int `json:"status"` Data []*StoryWrapper `json:"data"` Info string `json:"info"` }
StoryResponse response for tapd multiple stories query
type StoryWallTimeModel ¶
StoryWallTimeModel Story Wall Time Model.
type StoryWrapper ¶
type StoryWrapper struct {
Story *Story `json:"story"`
}
StoryWrapper sub struct in story response
type TargetStoryChange ¶
type TargetStoryChange struct { Story *Story StatusChanges []*StatusChange }
TargetStoryChange story and story changes
type TestTimeByIteration ¶
type TestTimeByIteration struct { IterationName string StoryCount int TimeByStroy []*TestTimeByStory }
TestTimeByIteration stories' test time info organized by iteration
type TestTimeByStory ¶
type TestTimeByStory struct { StoryName string StorySize string StoryEffort string TestTime float64 }
TestTimeByStory story base info and test time
type WaitTimeByIteration ¶
type WaitTimeByIteration struct { IterationName string StoryCount int TimeByStroy []*WaitTimeByStory }
WaitTimeByIteration stories' wait time organized by iteration
type WaitTimeByStory ¶
type WaitTimeByStory struct { StoryName string StorySize string StoryEffort string WaitTime float64 }
WaitTimeByStory story base info and wait time
type WorkitemChange ¶
type WorkitemChange struct { ID string `json:"id"` WorkspaceID string `json:"workspace_id"` Creator string `json:"creator"` Created string `json:"created"` ChangeSummay string `json:"change_summay"` Comment string `json:"comment"` Changes string `json:"changes"` EntityType string `json:"entity_type"` StoryID string `json:"story_id"` }
WorkitemChange sub struct in WorkitemChangeWrapper
type WorkitemChangeWrapper ¶
type WorkitemChangeWrapper struct {
WorkitemChange *WorkitemChange `json:"WorkitemChange"`
}
WorkitemChangeWrapper sub struct in StoryChangeResponse