Documentation
¶
Index ¶
- Variables
- func IsErrorResponse(err error) bool
- func NewRetryableHTTPClient(opts ...RetryableHTTPClientOption) *http.Client
- func Ptr[T any](v T) *T
- type Attachment
- type AttachmentService
- type Bug
- type BugService
- type BugSeverity
- type Client
- type ClientOption
- type Comment
- type CommentEntryType
- type CommentService
- type CountResponse
- type CreateCommentRequest
- type CreateIterationRequest
- type CreateLabelRequest
- type CreateStoryRequest
- type CreateTimesheetRequest
- type DocumentAttachment
- type EntityType
- type Enum
- type ErrorResponse
- type GetAllLastStepsRequest
- type GetAttachmentDownloadURLRequest
- type GetAttachmentsRequest
- type GetBugsRequest
- type GetCommentsCountRequest
- type GetCommentsRequest
- type GetConvertStoryIDsToQueryTokenRequest
- type GetConvertStoryIDsToQueryTokenResponse
- type GetDocumentDownloadURLRequest
- type GetImageDownloadURLRequest
- type GetIterationsCountRequest
- type GetIterationsRequest
- type GetLabelCountRequest
- type GetLabelsRequest
- type GetMemberActivityLogRequest
- type GetMemberActivityLogResponse
- type GetRemovedStoriesRequest
- type GetReportsRequest
- type GetRolesRequest
- type GetStoriesCountByCategoriesRequest
- type GetStoriesCountRequest
- type GetStoriesRequest
- type GetStoryCategoriesCountRequest
- type GetStoryCategoriesRequest
- type GetStoryChangesRequest
- type GetStoryCustomFieldsSettingsRequest
- type GetStoryRelatedBugsRequest
- type GetStoryTemplateFieldsRequest
- type GetStoryTemplatesRequest
- type GetTaskChangesCountRequest
- type GetTaskChangesRequest
- type GetTaskFieldsInfoRequest
- type GetTasksCountRequest
- type GetTasksRequest
- type GetTemplateListRequest
- type GetTimesheetsCountRequest
- type GetTimesheetsRequest
- type GetUsersRequest
- type GetWorkitemTypesRequest
- type GetWorkspaceSettingRequest
- type GetWorkspaceSettingResponse
- type ImageAttachment
- type Iteration
- type IterationService
- type Label
- type LabelColor
- type LabelPool
- type LabelService
- type LifeTime
- type LifeTimesRequest
- type MeasureService
- type MemberActivityLog
- type Multi
- type OperateObject
- type OperateType
- type Order
- type OrderOption
- type OrderType
- type PriorityLabel
- type RawBody
- type RemovedStory
- type Report
- type ReportService
- type ReportStatus
- type ReportType
- type RequestOption
- func WithRequestAccessToken(accessToken string) RequestOption
- func WithRequestBasicAuth(clientID, clientSecret string) RequestOption
- func WithRequestHeader(name, value string) RequestOption
- func WithRequestHeaderFunc(fn func(http.Header)) RequestOption
- func WithRequestHeaders(headers map[string]string) RequestOption
- func WithRequestUserAgent(userAgent string) RequestOption
- type Response
- type RetryableHTTPClientOption
- func WithRetryableHTTPClientBackoff(backoff retryablehttp.Backoff) RetryableHTTPClientOption
- func WithRetryableHTTPClientCheckRetry(checkRetry retryablehttp.CheckRetry) RetryableHTTPClientOption
- func WithRetryableHTTPClientLogger(logger retryablehttp.Logger) RetryableHTTPClientOption
- func WithRetryableHTTPClientRetryMax(retryMax int) RetryableHTTPClientOption
- func WithRetryableHTTPClientRetryWaitMax(waitMax time.Duration) RetryableHTTPClientOption
- func WithRetryableHTTPClientRetryWaitMin(waitMin time.Duration) RetryableHTTPClientOption
- type SettingService
- type StoreChangeType
- type StoriesCountByCategory
- type Story
- type StoryCategory
- type StoryChange
- type StoryCustomFieldsSetting
- type StoryRelatedBug
- type StoryService
- type StoryStatus
- type StoryTemplate
- type StoryTemplateField
- type Task
- type TaskChange
- type TaskChangeFieldChange
- type TaskFieldsInfo
- type TaskFieldsInfoColorOption
- type TaskFieldsInfoHTMLType
- type TaskFieldsInfoOption
- type TaskFieldsInfoPureOption
- type TaskService
- type TaskStatus
- type Timesheet
- type TimesheetService
- type UpdateBugRequest
- type UpdateCommentRequest
- type UpdateIterationRequest
- type UpdateLabelRequest
- type UpdateStoryRequest
- type UpdateTimesheetRequest
- type User
- type UserRole
- type UserService
- type WorkflowAllLastStep
- type WorkflowAllLastStepStatus
- type WorkflowService
- type WorkitemTemplate
- type WorkitemType
- type WorkspaceService
Constants ¶
This section is empty.
Variables ¶
var ( OrderByAsc = WithOrderType(OrderTypeAsc) OrderByDesc = WithOrderType(OrderTypeDesc) )
Functions ¶
func IsErrorResponse ¶
func NewRetryableHTTPClient ¶
func NewRetryableHTTPClient(opts ...RetryableHTTPClientOption) *http.Client
Types ¶
type Attachment ¶
type Attachment struct { ID string `json:"id,omitempty"` // 附件ID Type string `json:"type,omitempty"` // 类型 EntryID string `json:"entry_id,omitempty"` // 依赖对象ID Filename string `json:"filename,omitempty"` // 附件名称 Description string `json:"description,omitempty"` // 描述 ContentType string `json:"content_type,omitempty"` // 内容类型 Created string `json:"created,omitempty"` // 创建时间 WorkspaceID string `json:"workspace_id,omitempty"` // 项目ID Owner string `json:"owner,omitempty"` // 上传人 DownloadURL string `json:"download_url,omitempty"` // 下载链接(仅在获取单个附件时返回) }
Attachment 附件
type AttachmentService ¶
type AttachmentService interface { // GetAttachments 获取附件 // // https://open.tapd.cn/document/api-doc/API%E6%96%87%E6%A1%A3/api_reference/attachment/get_attachments.html GetAttachments(ctx context.Context, request *GetAttachmentsRequest, opts ...RequestOption) ([]*Attachment, *Response, error) // GetAttachmentDownloadURL 获取单个附件下载链接 // // https://open.tapd.cn/document/api-doc/API%E6%96%87%E6%A1%A3/api_reference/attachment/get_one_attachment.html GetAttachmentDownloadURL(ctx context.Context, request *GetAttachmentDownloadURLRequest, opts ...RequestOption) (*Attachment, *Response, error) // GetImageDownloadURL 获取单个图片下载链接 // // https://open.tapd.cn/document/api-doc/API%E6%96%87%E6%A1%A3/api_reference/attachment/get_image.html GetImageDownloadURL(ctx context.Context, request *GetImageDownloadURLRequest, opts ...RequestOption) (*ImageAttachment, *Response, error) // GetDocumentDownloadURL 获取单个文档下载链接 // // https://open.tapd.cn/document/api-doc/API%E6%96%87%E6%A1%A3/api_reference/attachment/documents_down.html GetDocumentDownloadURL(ctx context.Context, request *GetDocumentDownloadURLRequest, opts ...RequestOption) (*DocumentAttachment, *Response, error) }
AttachmentService is the service to communicate with Attachment API.
https://open.tapd.cn/document/api-doc/API%E6%96%87%E6%A1%A3/api_reference/attachment/
func NewAttachmentService ¶ added in v0.12.0
func NewAttachmentService(client *Client) AttachmentService
type Bug ¶
type Bug struct { ID string `json:"id,omitempty"` Title string `json:"title,omitempty"` Description string `json:"description,omitempty"` Priority string `json:"priority,omitempty"` Severity BugSeverity `json:"severity,omitempty"` Module string `json:"module,omitempty"` Status string `json:"status,omitempty"` Reporter string `json:"reporter,omitempty"` Created string `json:"created,omitempty"` BugType string `json:"bugtype,omitempty"` Resolved string `json:"resolved,omitempty"` Closed string `json:"closed,omitempty"` Modified string `json:"modified,omitempty"` LastModify string `json:"lastmodify,omitempty"` Auditer string `json:"auditer,omitempty"` De string `json:"de,omitempty"` Fixer string `json:"fixer,omitempty"` VersionTest string `json:"version_test,omitempty"` VersionReport string `json:"version_report,omitempty"` VersionClose string `json:"version_close,omitempty"` VersionFix string `json:"version_fix,omitempty"` BaselineFind string `json:"baseline_find,omitempty"` BaselineJoin string `json:"baseline_join,omitempty"` BaselineClose string `json:"baseline_close,omitempty"` BaselineTest string `json:"baseline_test,omitempty"` SourcePhase string `json:"sourcephase,omitempty"` Te string `json:"te,omitempty"` CurrentOwner string `json:"current_owner,omitempty"` IterationID string `json:"iteration_id,omitempty"` Resolution string `json:"resolution,omitempty"` Source string `json:"source,omitempty"` OriginPhase string `json:"originphase,omitempty"` Confirmer string `json:"confirmer,omitempty"` Milestone string `json:"milestone,omitempty"` Participator string `json:"participator,omitempty"` Closer string `json:"closer,omitempty"` Platform string `json:"platform,omitempty"` Os string `json:"os,omitempty"` TestType string `json:"testtype,omitempty"` TestPhase string `json:"testphase,omitempty"` Frequency string `json:"frequency,omitempty"` CC string `json:"cc,omitempty"` RegressionNumber string `json:"regression_number,omitempty"` Flows string `json:"flows,omitempty"` Feature string `json:"feature,omitempty"` TestMode string `json:"testmode,omitempty"` Estimate string `json:"estimate,omitempty"` IssueID string `json:"issue_id,omitempty"` CreatedFrom string `json:"created_from,omitempty"` ReleaseID string `json:"release_id,omitempty"` VerifyTime string `json:"verify_time,omitempty"` RejectTime string `json:"reject_time,omitempty"` ReopenTime string `json:"reopen_time,omitempty"` AuditTime string `json:"audit_time,omitempty"` SuspendTime string `json:"suspend_time,omitempty"` Due string `json:"due,omitempty"` Begin string `json:"begin,omitempty"` Deadline string `json:"deadline,omitempty"` InProgressTime string `json:"in_progress_time,omitempty"` AssignedTime string `json:"assigned_time,omitempty"` TemplateID string `json:"template_id,omitempty"` StoryID string `json:"story_id,omitempty"` Label string `json:"label,omitempty"` Size string `json:"size,omitempty"` Effort string `json:"effort,omitempty"` EffortCompleted string `json:"effort_completed,omitempty"` Exceed string `json:"exceed,omitempty"` Remain string `json:"remain,omitempty"` CustomFieldOne string `json:"custom_field_one,omitempty"` CustomFieldTwo string `json:"custom_field_two,omitempty"` CustomFieldThree string `json:"custom_field_three,omitempty"` CustomFieldFour string `json:"custom_field_four,omitempty"` CustomFieldFive string `json:"custom_field_five,omitempty"` CustomField6 string `json:"custom_field_6,omitempty"` CustomField7 string `json:"custom_field_7,omitempty"` CustomField8 string `json:"custom_field_8,omitempty"` CustomField9 string `json:"custom_field_9,omitempty"` CustomField10 string `json:"custom_field_10,omitempty"` CustomField11 string `json:"custom_field_11,omitempty"` CustomField12 string `json:"custom_field_12,omitempty"` CustomField13 string `json:"custom_field_13,omitempty"` CustomField14 string `json:"custom_field_14,omitempty"` CustomField15 string `json:"custom_field_15,omitempty"` CustomField16 string `json:"custom_field_16,omitempty"` CustomField17 string `json:"custom_field_17,omitempty"` CustomField18 string `json:"custom_field_18,omitempty"` CustomField19 string `json:"custom_field_19,omitempty"` CustomField20 string `json:"custom_field_20,omitempty"` CustomField21 string `json:"custom_field_21,omitempty"` CustomField22 string `json:"custom_field_22,omitempty"` CustomField23 string `json:"custom_field_23,omitempty"` CustomField24 string `json:"custom_field_24,omitempty"` CustomField25 string `json:"custom_field_25,omitempty"` CustomField26 string `json:"custom_field_26,omitempty"` CustomField27 string `json:"custom_field_27,omitempty"` CustomField28 string `json:"custom_field_28,omitempty"` CustomField29 string `json:"custom_field_29,omitempty"` CustomField30 string `json:"custom_field_30,omitempty"` CustomField31 string `json:"custom_field_31,omitempty"` CustomField32 string `json:"custom_field_32,omitempty"` CustomField33 string `json:"custom_field_33,omitempty"` CustomField34 string `json:"custom_field_34,omitempty"` CustomField35 string `json:"custom_field_35,omitempty"` CustomField36 string `json:"custom_field_36,omitempty"` CustomField37 string `json:"custom_field_37,omitempty"` CustomField38 string `json:"custom_field_38,omitempty"` CustomField39 string `json:"custom_field_39,omitempty"` CustomField40 string `json:"custom_field_40,omitempty"` CustomField41 string `json:"custom_field_41,omitempty"` CustomField42 string `json:"custom_field_42,omitempty"` CustomField43 string `json:"custom_field_43,omitempty"` CustomField44 string `json:"custom_field_44,omitempty"` CustomField45 string `json:"custom_field_45,omitempty"` CustomField46 string `json:"custom_field_46,omitempty"` CustomField47 string `json:"custom_field_47,omitempty"` CustomField48 string `json:"custom_field_48,omitempty"` CustomField49 string `json:"custom_field_49,omitempty"` CustomField50 string `json:"custom_field_50,omitempty"` CustomField51 string `json:"custom_field_51,omitempty"` CustomField52 string `json:"custom_field_52,omitempty"` CustomField53 string `json:"custom_field_53,omitempty"` CustomField54 string `json:"custom_field_54,omitempty"` CustomField55 string `json:"custom_field_55,omitempty"` CustomField56 string `json:"custom_field_56,omitempty"` CustomField57 string `json:"custom_field_57,omitempty"` CustomField58 string `json:"custom_field_58,omitempty"` CustomField59 string `json:"custom_field_59,omitempty"` CustomField60 string `json:"custom_field_60,omitempty"` CustomField61 string `json:"custom_field_61,omitempty"` CustomField62 string `json:"custom_field_62,omitempty"` CustomField63 string `json:"custom_field_63,omitempty"` CustomField64 string `json:"custom_field_64,omitempty"` CustomField65 string `json:"custom_field_65,omitempty"` CustomField66 string `json:"custom_field_66,omitempty"` CustomField67 string `json:"custom_field_67,omitempty"` CustomField68 string `json:"custom_field_68,omitempty"` CustomField69 string `json:"custom_field_69,omitempty"` CustomField70 string `json:"custom_field_70,omitempty"` CustomField71 string `json:"custom_field_71,omitempty"` CustomField72 string `json:"custom_field_72,omitempty"` CustomField73 string `json:"custom_field_73,omitempty"` CustomField74 string `json:"custom_field_74,omitempty"` CustomField75 string `json:"custom_field_75,omitempty"` CustomField76 string `json:"custom_field_76,omitempty"` CustomField77 string `json:"custom_field_77,omitempty"` CustomField78 string `json:"custom_field_78,omitempty"` CustomField79 string `json:"custom_field_79,omitempty"` CustomField80 string `json:"custom_field_80,omitempty"` CustomField81 string `json:"custom_field_81,omitempty"` CustomField82 string `json:"custom_field_82,omitempty"` CustomField83 string `json:"custom_field_83,omitempty"` CustomField84 string `json:"custom_field_84,omitempty"` CustomField85 string `json:"custom_field_85,omitempty"` CustomField86 string `json:"custom_field_86,omitempty"` CustomField87 string `json:"custom_field_87,omitempty"` CustomField88 string `json:"custom_field_88,omitempty"` CustomField89 string `json:"custom_field_89,omitempty"` CustomField90 string `json:"custom_field_90,omitempty"` CustomField91 string `json:"custom_field_91,omitempty"` CustomField92 string `json:"custom_field_92,omitempty"` CustomField93 string `json:"custom_field_93,omitempty"` CustomField94 string `json:"custom_field_94,omitempty"` CustomField95 string `json:"custom_field_95,omitempty"` CustomField96 string `json:"custom_field_96,omitempty"` CustomField97 string `json:"custom_field_97,omitempty"` CustomField98 string `json:"custom_field_98,omitempty"` CustomField99 string `json:"custom_field_99,omitempty"` CustomField100 string `json:"custom_field_100,omitempty"` CustomField101 string `json:"custom_field_101,omitempty"` CustomField102 string `json:"custom_field_102,omitempty"` CustomField103 string `json:"custom_field_103,omitempty"` CustomField104 string `json:"custom_field_104,omitempty"` CustomField105 string `json:"custom_field_105,omitempty"` CustomField106 string `json:"custom_field_106,omitempty"` CustomField107 string `json:"custom_field_107,omitempty"` CustomField108 string `json:"custom_field_108,omitempty"` CustomField109 string `json:"custom_field_109,omitempty"` CustomField110 string `json:"custom_field_110,omitempty"` CustomField111 string `json:"custom_field_111,omitempty"` CustomField112 string `json:"custom_field_112,omitempty"` CustomField113 string `json:"custom_field_113,omitempty"` CustomField114 string `json:"custom_field_114,omitempty"` CustomField115 string `json:"custom_field_115,omitempty"` CustomField116 string `json:"custom_field_116,omitempty"` CustomField117 string `json:"custom_field_117,omitempty"` CustomField118 string `json:"custom_field_118,omitempty"` CustomField119 string `json:"custom_field_119,omitempty"` CustomField120 string `json:"custom_field_120,omitempty"` CustomField121 string `json:"custom_field_121,omitempty"` CustomField122 string `json:"custom_field_122,omitempty"` CustomField123 string `json:"custom_field_123,omitempty"` CustomField124 string `json:"custom_field_124,omitempty"` CustomField125 string `json:"custom_field_125,omitempty"` CustomField126 string `json:"custom_field_126,omitempty"` CustomField127 string `json:"custom_field_127,omitempty"` CustomField128 string `json:"custom_field_128,omitempty"` CustomField129 string `json:"custom_field_129,omitempty"` CustomField130 string `json:"custom_field_130,omitempty"` CustomField131 string `json:"custom_field_131,omitempty"` CustomField132 string `json:"custom_field_132,omitempty"` CustomField133 string `json:"custom_field_133,omitempty"` CustomField134 string `json:"custom_field_134,omitempty"` CustomField135 string `json:"custom_field_135,omitempty"` CustomField136 string `json:"custom_field_136,omitempty"` CustomField137 string `json:"custom_field_137,omitempty"` CustomField138 string `json:"custom_field_138,omitempty"` CustomField139 string `json:"custom_field_139,omitempty"` CustomField140 string `json:"custom_field_140,omitempty"` CustomField141 string `json:"custom_field_141,omitempty"` CustomField142 string `json:"custom_field_142,omitempty"` CustomField143 string `json:"custom_field_143,omitempty"` CustomField144 string `json:"custom_field_144,omitempty"` CustomField145 string `json:"custom_field_145,omitempty"` CustomField146 string `json:"custom_field_146,omitempty"` CustomField147 string `json:"custom_field_147,omitempty"` CustomField148 string `json:"custom_field_148,omitempty"` CustomField149 string `json:"custom_field_149,omitempty"` CustomField150 string `json:"custom_field_150,omitempty"` CustomPlanField1 string `json:"custom_plan_field_1,omitempty"` CustomPlanField2 string `json:"custom_plan_field_2,omitempty"` CustomPlanField3 string `json:"custom_plan_field_3,omitempty"` CustomPlanField4 string `json:"custom_plan_field_4,omitempty"` CustomPlanField5 string `json:"custom_plan_field_5,omitempty"` CustomPlanField6 string `json:"custom_plan_field_6,omitempty"` CustomPlanField7 string `json:"custom_plan_field_7,omitempty"` CustomPlanField8 string `json:"custom_plan_field_8,omitempty"` CustomPlanField9 string `json:"custom_plan_field_9,omitempty"` CustomPlanField10 string `json:"custom_plan_field_10,omitempty"` PriorityLabel PriorityLabel `json:"priority_label,omitempty"` WorkspaceID string `json:"workspace_id,omitempty"` }
type BugService ¶
type BugService interface { // GetBugs 获取缺陷 // // https://open.tapd.cn/document/api-doc/API%E6%96%87%E6%A1%A3/api_reference/bug/get_bugs.html GetBugs(ctx context.Context, request *GetBugsRequest, opts ...RequestOption) ([]*Bug, *Response, error) // UpdateBug 更新缺陷 // // https://open.tapd.cn/document/api-doc/API%E6%96%87%E6%A1%A3/api_reference/bug/update_bug.html UpdateBug(ctx context.Context, request *UpdateBugRequest, opts ...RequestOption) (*Bug, *Response, error) }
func NewBugService ¶ added in v0.12.0
func NewBugService(client *Client) BugService
type BugSeverity ¶ added in v0.8.0
type BugSeverity string
BugSeverity 缺陷严重程度(severity)
const ( BugSeverityFatal BugSeverity = "fatal" BugSeveritySerious BugSeverity = "serious" BugSeverityNormal BugSeverity = "normal" BugSeverityPrompt BugSeverity = "prompt" BugSeverityAdvice BugSeverity = "advice" )
func (BugSeverity) Human ¶ added in v0.8.0
func (s BugSeverity) Human() string
func (BugSeverity) String ¶ added in v0.8.0
func (s BugSeverity) String() string
type Client ¶
type Client struct { // services used for talking to different parts of the Tapd API. StoryService StoryService BugService BugService IterationService IterationService TaskService TaskService CommentService CommentService ReportService ReportService AttachmentService AttachmentService TimesheetService TimesheetService WorkspaceService WorkspaceService LabelService LabelService MeasureService MeasureService UserService UserService WorkflowService WorkflowService SettingService SettingService // contains filtered or unexported fields }
func NewBasicAuthClient ¶
func NewBasicAuthClient(clientID, clientSecret string, opts ...ClientOption) (*Client, error)
NewBasicAuthClient returns a new Tapd API client with basic authentication.
func NewClient ¶
func NewClient(clientID, clientSecret string, opts ...ClientOption) (*Client, error)
NewClient returns a new Tapd API client. Alias for NewBasicAuthClient.
func NewPATClient ¶ added in v0.13.0
func NewPATClient(accessToken string, opts ...ClientOption) (*Client, error)
NewPATClient returns a new Tapd API client with Personal Access Token (PAT) authentication.
type ClientOption ¶
func WithAccessToken ¶ added in v0.13.0
func WithAccessToken(accessToken string) ClientOption
WithAccessToken sets the accessToken for the client
func WithBaseURL ¶
func WithBaseURL(urlStr string) ClientOption
WithBaseURL sets the baseURL for the client
func WithBasicAuth ¶
func WithBasicAuth(clientID, clientSecret string) ClientOption
WithBasicAuth sets the clientID and clientSecret for the client
func WithHTTPClient ¶
func WithHTTPClient(httpClient *http.Client) ClientOption
WithHTTPClient sets the httpClient for the client
func WithUserAgent ¶
func WithUserAgent(userAgent string) ClientOption
WithUserAgent sets the userAgent for the client
type Comment ¶
type Comment struct { ID string `json:"id,omitempty"` // 评论ID Title string `json:"title,omitempty"` // 标题 Description string `json:"description,omitempty"` // 内容 Author string `json:"author,omitempty"` // 评论人 EntryType CommentEntryType `json:"entry_type,omitempty"` // 评论类型 EntryID string `json:"entry_id,omitempty"` // 评论所依附的业务对象实体id ReplyID string `json:"reply_id,omitempty"` // 评论回复的ID RootID string `json:"root_id,omitempty"` // 根评论ID Created string `json:"created,omitempty"` // 创建时间 Modified string `json:"modified,omitempty"` // 最后更改时间 WorkspaceID string `json:"workspace_id,omitempty"` // 项目ID }
Comment 评论
type CommentEntryType ¶
type CommentEntryType string
CommentEntryType 评论类型
const ( CommentEntryTypeBug CommentEntryType = "bug" // bug CommentEntryTypeBugRemark CommentEntryType = "bug_remark" // bug_remark (流转缺陷时候的评论) CommentEntryTypeStories CommentEntryType = "stories" // stories CommentEntryTypeTasks CommentEntryType = "tasks" // tasks CommentEntryTypeWiki CommentEntryType = "wiki" // wiki CommentEntryTypeMiniItems CommentEntryType = "mini_items" // mini_items )
CommentEntryType 评论类型
func (CommentEntryType) String ¶
func (t CommentEntryType) String() string
String CommentEntryType to string
type CommentService ¶
type CommentService interface { // CreateComment 添加评论接口 // // https://open.tapd.cn/document/api-doc/API%E6%96%87%E6%A1%A3/api_reference/comment/add_comment.html CreateComment(ctx context.Context, request *CreateCommentRequest, opts ...RequestOption) (*Comment, *Response, error) // GetComments 获取评论 // // https://open.tapd.cn/document/api-doc/API%E6%96%87%E6%A1%A3/api_reference/comment/get_comments.html GetComments(ctx context.Context, request *GetCommentsRequest, opts ...RequestOption) ([]*Comment, *Response, error) // GetCommentsCount 获取评论数量 // // https://open.tapd.cn/document/api-doc/API%E6%96%87%E6%A1%A3/api_reference/comment/get_comments_count.html GetCommentsCount(ctx context.Context, request *GetCommentsCountRequest, opts ...RequestOption) (int, *Response, error) // UpdateComment 更新评论接口 // // https://open.tapd.cn/document/api-doc/API%E6%96%87%E6%A1%A3/api_reference/comment/update_comment.html UpdateComment(ctx context.Context, request *UpdateCommentRequest, opts ...RequestOption) (*Comment, *Response, error) }
CommentService 评论服务
func NewCommentService ¶ added in v0.12.0
func NewCommentService(client *Client) CommentService
type CountResponse ¶
type CountResponse struct {
Count int `json:"count"`
}
CountResponse represents the response of count.
type CreateCommentRequest ¶
type CreateCommentRequest struct { Title *string `json:"title,omitempty"` // 标题 Description *string `json:"description,omitempty"` // 内容 Author *string `json:"author,omitempty"` // 评论人 EntryType *CommentEntryType `json:"entry_type,omitempty"` // 评论类型 EntryID *int64 `json:"entry_id,omitempty"` // 评论所依附的业务对象实体id ReplyID *int64 `json:"reply_id,omitempty"` // 评论回复的ID RootID *int64 `json:"root_id,omitempty"` // 根评论ID WorkspaceID *int `json:"workspace_id,omitempty"` // 项目ID }
type CreateIterationRequest ¶ added in v0.6.0
type CreateIterationRequest struct { Name *string `json:"name,omitempty"` // [必须] 标题 支持模糊匹配 WorkspaceID *int `json:"workspace_id,omitempty"` // [必须] 项目 ID Description *string `json:"description,omitempty"` // [必须] 详细描述 StartDate *string `json:"startdate,omitempty"` // [必须] 开始时间 支持时间查询 EndDate *string `json:"enddate,omitempty"` // [必须] 结束时间 支持时间查询 Creator *string `json:"creator,omitempty"` // [必须] 创建人 WorkitemTypeID *int `json:"workitem_type_id,omitempty"` // 迭代类别 PlanAppID *int `json:"plan_app_id,omitempty"` // 计划应用 ID Status *string `json:"status,omitempty"` // 状态(系统状态 open/done,自定义状态可传中文) Label *Enum[string] `json:"label,omitempty"` // 标签, 可传多个 CustomField1 *string `json:"custom_field_1,omitempty"` // 自定义字段参数 CustomField2 *string `json:"custom_field_2,omitempty"` // 自定义字段参数 CustomField3 *string `json:"custom_field_3,omitempty"` // 自定义字段参数 CustomField4 *string `json:"custom_field_4,omitempty"` // 自定义字段参数 CustomField5 *string `json:"custom_field_5,omitempty"` // 自定义字段参数 CustomField6 *string `json:"custom_field_6,omitempty"` // 自定义字段参数 CustomField7 *string `json:"custom_field_7,omitempty"` // 自定义字段参数 CustomField8 *string `json:"custom_field_8,omitempty"` // 自定义字段参数 CustomField9 *string `json:"custom_field_9,omitempty"` // 自定义字段参数 CustomField10 *string `json:"custom_field_10,omitempty"` // 自定义字段参数 CustomField11 *string `json:"custom_field_11,omitempty"` // 自定义字段参数 CustomField12 *string `json:"custom_field_12,omitempty"` // 自定义字段参数 CustomField13 *string `json:"custom_field_13,omitempty"` // 自定义字段参数 CustomField14 *string `json:"custom_field_14,omitempty"` // 自定义字段参数 CustomField15 *string `json:"custom_field_15,omitempty"` // 自定义字段参数 CustomField16 *string `json:"custom_field_16,omitempty"` // 自定义字段参数 CustomField17 *string `json:"custom_field_17,omitempty"` // 自定义字段参数 CustomField18 *string `json:"custom_field_18,omitempty"` // 自定义字段参数 CustomField19 *string `json:"custom_field_19,omitempty"` // 自定义字段参数 CustomField20 *string `json:"custom_field_20,omitempty"` // 自定义字段参数 CustomField21 *string `json:"custom_field_21,omitempty"` // 自定义字段参数 CustomField22 *string `json:"custom_field_22,omitempty"` // 自定义字段参数 CustomField23 *string `json:"custom_field_23,omitempty"` // 自定义字段参数 CustomField24 *string `json:"custom_field_24,omitempty"` // 自定义字段参数 CustomField25 *string `json:"custom_field_25,omitempty"` // 自定义字段参数 CustomField26 *string `json:"custom_field_26,omitempty"` // 自定义字段参数 CustomField27 *string `json:"custom_field_27,omitempty"` // 自定义字段参数 CustomField28 *string `json:"custom_field_28,omitempty"` // 自定义字段参数 CustomField29 *string `json:"custom_field_29,omitempty"` // 自定义字段参数 CustomField30 *string `json:"custom_field_30,omitempty"` // 自定义字段参数 CustomField31 *string `json:"custom_field_31,omitempty"` // 自定义字段参数 CustomField32 *string `json:"custom_field_32,omitempty"` // 自定义字段参数 CustomField33 *string `json:"custom_field_33,omitempty"` // 自定义字段参数 CustomField34 *string `json:"custom_field_34,omitempty"` // 自定义字段参数 CustomField35 *string `json:"custom_field_35,omitempty"` // 自定义字段参数 CustomField36 *string `json:"custom_field_36,omitempty"` // 自定义字段参数 CustomField37 *string `json:"custom_field_37,omitempty"` // 自定义字段参数 CustomField38 *string `json:"custom_field_38,omitempty"` // 自定义字段参数 CustomField39 *string `json:"custom_field_39,omitempty"` // 自定义字段参数 CustomField40 *string `json:"custom_field_40,omitempty"` // 自定义字段参数 CustomField41 *string `json:"custom_field_41,omitempty"` // 自定义字段参数 CustomField42 *string `json:"custom_field_42,omitempty"` // 自定义字段参数 CustomField43 *string `json:"custom_field_43,omitempty"` // 自定义字段参数 CustomField44 *string `json:"custom_field_44,omitempty"` // 自定义字段参数 CustomField45 *string `json:"custom_field_45,omitempty"` // 自定义字段参数 CustomField46 *string `json:"custom_field_46,omitempty"` // 自定义字段参数 CustomField47 *string `json:"custom_field_47,omitempty"` // 自定义字段参数 CustomField48 *string `json:"custom_field_48,omitempty"` // 自定义字段参数 CustomField49 *string `json:"custom_field_49,omitempty"` // 自定义字段参数 CustomField50 *string `json:"custom_field_50,omitempty"` // 自定义字段参数 }
type CreateLabelRequest ¶
type CreateLabelRequest struct { WorkspaceID *int `json:"workspace_id"` // [必选]项目ID Name *string `json:"name"` // [必选]标签名称 Color *LabelColor `json:"color"` // 标签颜色 Creator *string `json:"creator"` // 创建人 }
type CreateStoryRequest ¶
type CreateStoryRequest struct { WorkspaceID *int `json:"workspace_id,omitempty"` // [必须]项目ID Name *string `json:"name,omitempty"` // [必须]标题 Priority *string `json:"priority,omitempty"` // 优先级 PriorityLabel *PriorityLabel `json:"priority_label,omitempty"` // 优先级。推荐使用这个字段 BusinessValue *int `json:"business_value,omitempty"` // 业务价值 Version *string `json:"version,omitempty"` // 版本 Module *string `json:"module,omitempty"` // 模块 TestFocus *string `json:"test_focus,omitempty"` // 测试重点 Size *int `json:"size,omitempty"` // 规模 Owner *string `json:"owner,omitempty"` // 处理人 CC *string `json:"cc,omitempty"` // 抄送人 Creator *string `json:"creator,omitempty"` // 创建人 Developer *string `json:"developer,omitempty"` // 开发人员 Begin *string `json:"begin,omitempty"` // 预计开始 Due *string `json:"due,omitempty"` // 预计结束 IterationID *string `json:"iteration_id,omitempty"` // 迭代ID TemplatedID *int `json:"templated_id,omitempty"` // 模板ID ParentID *int `json:"parent_id,omitempty"` // 父需求ID Effort *string `json:"effort,omitempty"` // 预估工时 EffortCompleted *string `json:"effort_completed,omitempty"` // 完成工时 Remain *float64 `json:"remain,omitempty"` // 剩余工时 Exceed *float64 `json:"exceed,omitempty"` // 超出工时 CategoryID *int `json:"category_id,omitempty"` // 需求分类 WorkitemTypeID *int `json:"workitem_type_id,omitempty"` // 需求类别 ReleaseID *int `json:"release_id,omitempty"` // 发布计划 Source *string `json:"source,omitempty"` // 来源 Type *string `json:"type,omitempty"` // 类型 Description *string `json:"description,omitempty"` // 详细描述 Label *string `json:"label,omitempty"` // 标签,标签不存在时将自动创建,多个以英文坚线分格 }
type CreateTimesheetRequest ¶
type CreateTimesheetRequest struct { EntityType *EntityType `json:"entity_type,omitempty"` // [必须]对象类型,如story、task、bug等 EntityID *int64 `json:"entity_id,omitempty"` // [必须]对象ID Timespent *string `json:"timespent,omitempty"` // [必须]花费工时 Timeremain *string `json:"timeremain,omitempty"` // 剩余工时 Spentdate *string `json:"spentdate,omitempty"` // 花费日期 Owner *string `json:"owner,omitempty"` // [必须]花费创建人 WorkspaceID *int `json:"workspace_id,omitempty"` // [必须]项目ID Memo *string `json:"memo,omitempty"` // 花费描述 }
type DocumentAttachment ¶
type DocumentAttachment struct { ID string `json:"id,omitempty"` // 文档ID WorkspaceID string `json:"workspace_id,omitempty"` // 项目ID Name string `json:"name,omitempty"` // 标题 Type string `json:"type,omitempty"` // 文档类型 FolderID string `json:"folder_id,omitempty"` // 文件夹ID Creator string `json:"creator,omitempty"` // 创建人 Modifier string `json:"modifier,omitempty"` // 最后修改人 Status string `json:"status,omitempty"` // 状态 Created string `json:"created,omitempty"` // 创建时间 Modified string `json:"modified,omitempty"` // 最后修改时间 DownloadURL string `json:"download_url,omitempty"` // 下载链接 }
type EntityType ¶
type EntityType string
const ( EntityTypeTask EntityType = "task" EntityTypeStory EntityType = "story" EntityTypeBug EntityType = "bug" )
type Enum ¶
type Enum[T any] []T
func NewEnum ¶
NewEnum creates a new enum value.
Example:
NewEnum("a", "b", "c") => "a|b|c" NewEnum(1, 2, 3) => "1|2|3"
func (Enum[T]) MarshalJSON ¶ added in v0.6.0
type ErrorResponse ¶
type ErrorResponse struct {
// contains filtered or unexported fields
}
ErrorResponse represents a tapd error response.
func (*ErrorResponse) Error ¶
func (e *ErrorResponse) Error() string
func (*ErrorResponse) Unwrap ¶
func (e *ErrorResponse) Unwrap() error
type GetAllLastStepsRequest ¶ added in v0.7.0
type GetAttachmentsRequest ¶
type GetAttachmentsRequest struct { WorkspaceID *int `url:"workspace_id,omitempty"` // [必须]项目ID ID *int `url:"id,omitempty"` // [可选]ID Type *string `url:"type,omitempty"` // [可选]类型 EntryID *int `url:"entry_id,omitempty"` // [可选]依赖对象ID Filename *string `url:"filename,omitempty"` // [可选]附件名称 Owner *string `url:"owner,omitempty"` // [可选]上传人 DownloadURL string `json:"download_url,omitempty"` // 下载链接(仅在获取单个附件时返回) }
type GetBugsRequest ¶
type GetBugsRequest struct { ID *Multi[int64] `url:"id,omitempty"` // ID 支持多ID查询 Title *string `url:"title,omitempty"` // 标题 支持模糊匹配 Priority *string `url:"priority,omitempty"` // 优先级。为了兼容自定义优先级,请使用 priority_label 字段,详情参考:如何兼容自定义优先级 PriorityLabel *PriorityLabel `url:"priority_label,omitempty"` // 优先级。推荐使用这个字段 Severity *Enum[BugSeverity] `url:"severity,omitempty"` // 严重程度 支持枚举查询 Status *Enum[string] `url:"status,omitempty"` // 状态 支持不等于查询、枚举查询 VStatus *string `url:"v_status,omitempty"` // 状态(支持传入中文状态名称) Label *Enum[string] `url:"label,omitempty"` // 标签查询 支持枚举查询 IterationID *Enum[string] `url:"iteration_id,omitempty"` // 迭代 支持枚举查询 Module *Enum[string] `url:"module,omitempty"` // 模块 支持枚举查询 ReleaseID *int `url:"release_id,omitempty"` // 发布计划 VersionReport *Enum[string] `url:"version_report,omitempty"` // 发现版本 枚举查询 VersionTest *string `url:"version_test,omitempty"` // 验证版本 VersionFix *string `url:"version_fix,omitempty"` // 合入版本 VersionClose *string `url:"version_close,omitempty"` // 关闭版本 BaselineFind *string `url:"baseline_find,omitempty"` // 发现基线 BaselineJoin *string `url:"baseline_join,omitempty"` // 合入基线 BaselineTest *string `url:"baseline_test,omitempty"` // 验证基线 BaselineClose *string `url:"baseline_close,omitempty"` // 关闭基线 Feature *string `url:"feature,omitempty"` // 特性 CurrentOwner *string `url:"current_owner,omitempty"` // 处理人 支持模糊匹配 CC *string `url:"cc,omitempty"` // 抄送人 Reporter *Multi[string] `url:"reporter,omitempty"` // 创建人 支持多人员查询 Participator *Multi[string] `url:"participator,omitempty"` // 参与人 支持多人员查询 TE *string `url:"te,omitempty"` // 测试人员 支持模糊匹配 DE *string `url:"de,omitempty"` // 开发人员 支持模糊匹配 Auditer *string `url:"auditer,omitempty"` // 审核人 Confirmer *string `url:"confirmer,omitempty"` // 验证人 Fixer *string `url:"fixer,omitempty"` // 修复人 Closer *string `url:"closer,omitempty"` // 关闭人 LastModify *string `url:"lastmodify,omitempty"` // 最后修改人 Created *string `url:"created,omitempty"` // 创建时间 支持时间查询 InProgressTime *string `url:"in_progress_time,omitempty"` // 接受处理时间 支持时间查询 Resolved *string `url:"resolved,omitempty"` // 解决时间 支持时间查询 VerifyTime *string `url:"verify_time,omitempty"` // 验证时间 支持时间查询 Closed *string `url:"closed,omitempty"` // 关闭时间 支持时间查询 RejectTime *string `url:"reject_time,omitempty"` // 拒绝时间 支持时间查询 Modified *string `url:"modified,omitempty"` // 最后修改时间 支持时间查询 Begin *string `url:"begin,omitempty"` // 预计开始 Due *string `url:"due,omitempty"` // 预计结束 Deadline *string `url:"deadline,omitempty"` // 解决期限 OS *string `url:"os,omitempty"` // 操作系统 Platform *string `url:"platform,omitempty"` // 软件平台 TestMode *string `url:"testmode,omitempty"` // 测试方式 TestPhase *string `url:"testphase,omitempty"` // 测试阶段 TestType *string `url:"testtype,omitempty"` // 测试类型 Source *Enum[string] `url:"source,omitempty"` // 缺陷根源 支持枚举查询 BugType *string `url:"bugtype,omitempty"` // 缺陷类型 Frequency *Enum[string] `url:"frequency,omitempty"` // 重现规律 支持枚举查询 OriginPhase *string `url:"originphase,omitempty"` // 发现阶段 SourcePhase *string `url:"sourcephase,omitempty"` // 引入阶段 Resolution *Enum[string] `url:"resolution,omitempty"` // 解决方法 支持枚举查询 Estimate *int `url:"estimate,omitempty"` // 预计解决时间 Description *string `url:"description,omitempty"` // 详细描述 支持模糊匹配 WorkspaceID *int `url:"workspace_id,omitempty"` // 项目ID CustomFieldOne *string `url:"custom_field_one,omitempty"` // 自定义字段参数,具体字段名通过接口 获取缺陷自定义字段配置 获取 支持枚举查询 CustomFieldTwo *string `url:"custom_field_two,omitempty"` CustomFieldThree *string `url:"custom_field_three,omitempty"` CustomFieldFour *string `url:"custom_field_four,omitempty"` CustomFieldFive *string `url:"custom_field_five,omitempty"` CustomField6 *string `url:"custom_field_6,omitempty"` CustomField7 *string `url:"custom_field_7,omitempty"` CustomField8 *string `url:"custom_field_8,omitempty"` CustomField9 *string `url:"custom_field_9,omitempty"` CustomField10 *string `url:"custom_field_10,omitempty"` CustomField11 *string `url:"custom_field_11,omitempty"` CustomField12 *string `url:"custom_field_12,omitempty"` CustomField13 *string `url:"custom_field_13,omitempty"` CustomField14 *string `url:"custom_field_14,omitempty"` CustomField15 *string `url:"custom_field_15,omitempty"` CustomField16 *string `url:"custom_field_16,omitempty"` CustomField17 *string `url:"custom_field_17,omitempty"` CustomField18 *string `url:"custom_field_18,omitempty"` CustomField19 *string `url:"custom_field_19,omitempty"` CustomField20 *string `url:"custom_field_20,omitempty"` CustomField21 *string `url:"custom_field_21,omitempty"` CustomField22 *string `url:"custom_field_22,omitempty"` CustomField23 *string `url:"custom_field_23,omitempty"` CustomField24 *string `url:"custom_field_24,omitempty"` CustomField25 *string `url:"custom_field_25,omitempty"` CustomField26 *string `url:"custom_field_26,omitempty"` CustomField27 *string `url:"custom_field_27,omitempty"` CustomField28 *string `url:"custom_field_28,omitempty"` CustomField29 *string `url:"custom_field_29,omitempty"` CustomField30 *string `url:"custom_field_30,omitempty"` CustomField31 *string `url:"custom_field_31,omitempty"` CustomField32 *string `url:"custom_field_32,omitempty"` CustomField33 *string `url:"custom_field_33,omitempty"` CustomField34 *string `url:"custom_field_34,omitempty"` CustomField35 *string `url:"custom_field_35,omitempty"` CustomField36 *string `url:"custom_field_36,omitempty"` CustomField37 *string `url:"custom_field_37,omitempty"` CustomField38 *string `url:"custom_field_38,omitempty"` CustomField39 *string `url:"custom_field_39,omitempty"` CustomField40 *string `url:"custom_field_40,omitempty"` CustomField41 *string `url:"custom_field_41,omitempty"` CustomField42 *string `url:"custom_field_42,omitempty"` CustomField43 *string `url:"custom_field_43,omitempty"` CustomField44 *string `url:"custom_field_44,omitempty"` CustomField45 *string `url:"custom_field_45,omitempty"` CustomField46 *string `url:"custom_field_46,omitempty"` CustomField47 *string `url:"custom_field_47,omitempty"` CustomField48 *string `url:"custom_field_48,omitempty"` CustomField49 *string `url:"custom_field_49,omitempty"` CustomField50 *string `url:"custom_field_50,omitempty"` CustomField51 *string `url:"custom_field_51,omitempty"` CustomField52 *string `url:"custom_field_52,omitempty"` CustomField53 *string `url:"custom_field_53,omitempty"` CustomField54 *string `url:"custom_field_54,omitempty"` CustomField55 *string `url:"custom_field_55,omitempty"` CustomField56 *string `url:"custom_field_56,omitempty"` CustomField57 *string `url:"custom_field_57,omitempty"` CustomField58 *string `url:"custom_field_58,omitempty"` CustomField59 *string `url:"custom_field_59,omitempty"` CustomField60 *string `url:"custom_field_60,omitempty"` CustomField61 *string `url:"custom_field_61,omitempty"` CustomField62 *string `url:"custom_field_62,omitempty"` CustomField63 *string `url:"custom_field_63,omitempty"` CustomField64 *string `url:"custom_field_64,omitempty"` CustomField65 *string `url:"custom_field_65,omitempty"` CustomField66 *string `url:"custom_field_66,omitempty"` CustomField67 *string `url:"custom_field_67,omitempty"` CustomField68 *string `url:"custom_field_68,omitempty"` CustomField69 *string `url:"custom_field_69,omitempty"` CustomField70 *string `url:"custom_field_70,omitempty"` CustomField71 *string `url:"custom_field_71,omitempty"` CustomField72 *string `url:"custom_field_72,omitempty"` CustomField73 *string `url:"custom_field_73,omitempty"` CustomField74 *string `url:"custom_field_74,omitempty"` CustomField75 *string `url:"custom_field_75,omitempty"` CustomField76 *string `url:"custom_field_76,omitempty"` CustomField77 *string `url:"custom_field_77,omitempty"` CustomField78 *string `url:"custom_field_78,omitempty"` CustomField79 *string `url:"custom_field_79,omitempty"` CustomField80 *string `url:"custom_field_80,omitempty"` CustomField81 *string `url:"custom_field_81,omitempty"` CustomField82 *string `url:"custom_field_82,omitempty"` CustomField83 *string `url:"custom_field_83,omitempty"` CustomField84 *string `url:"custom_field_84,omitempty"` CustomField85 *string `url:"custom_field_85,omitempty"` CustomField86 *string `url:"custom_field_86,omitempty"` CustomField87 *string `url:"custom_field_87,omitempty"` CustomField88 *string `url:"custom_field_88,omitempty"` CustomField89 *string `url:"custom_field_89,omitempty"` CustomField90 *string `url:"custom_field_90,omitempty"` CustomField91 *string `url:"custom_field_91,omitempty"` CustomField92 *string `url:"custom_field_92,omitempty"` CustomField93 *string `url:"custom_field_93,omitempty"` CustomField94 *string `url:"custom_field_94,omitempty"` CustomField95 *string `url:"custom_field_95,omitempty"` CustomField96 *string `url:"custom_field_96,omitempty"` CustomField97 *string `url:"custom_field_97,omitempty"` CustomField98 *string `url:"custom_field_98,omitempty"` CustomField99 *string `url:"custom_field_99,omitempty"` CustomField100 *string `url:"custom_field_100,omitempty"` CustomField101 *string `url:"custom_field_101,omitempty"` CustomField102 *string `url:"custom_field_102,omitempty"` CustomField103 *string `url:"custom_field_103,omitempty"` CustomField104 *string `url:"custom_field_104,omitempty"` CustomField105 *string `url:"custom_field_105,omitempty"` CustomField106 *string `url:"custom_field_106,omitempty"` CustomField107 *string `url:"custom_field_107,omitempty"` CustomField108 *string `url:"custom_field_108,omitempty"` CustomField109 *string `url:"custom_field_109,omitempty"` CustomField110 *string `url:"custom_field_110,omitempty"` CustomField111 *string `url:"custom_field_111,omitempty"` CustomField112 *string `url:"custom_field_112,omitempty"` CustomField113 *string `url:"custom_field_113,omitempty"` CustomField114 *string `url:"custom_field_114,omitempty"` CustomField115 *string `url:"custom_field_115,omitempty"` CustomField116 *string `url:"custom_field_116,omitempty"` CustomField117 *string `url:"custom_field_117,omitempty"` CustomField118 *string `url:"custom_field_118,omitempty"` CustomField119 *string `url:"custom_field_119,omitempty"` CustomField120 *string `url:"custom_field_120,omitempty"` CustomField121 *string `url:"custom_field_121,omitempty"` CustomField122 *string `url:"custom_field_122,omitempty"` CustomField123 *string `url:"custom_field_123,omitempty"` CustomField124 *string `url:"custom_field_124,omitempty"` CustomField125 *string `url:"custom_field_125,omitempty"` CustomField126 *string `url:"custom_field_126,omitempty"` CustomField127 *string `url:"custom_field_127,omitempty"` CustomField128 *string `url:"custom_field_128,omitempty"` CustomField129 *string `url:"custom_field_129,omitempty"` CustomField130 *string `url:"custom_field_130,omitempty"` CustomField131 *string `url:"custom_field_131,omitempty"` CustomField132 *string `url:"custom_field_132,omitempty"` CustomField133 *string `url:"custom_field_133,omitempty"` CustomField134 *string `url:"custom_field_134,omitempty"` CustomField135 *string `url:"custom_field_135,omitempty"` CustomField136 *string `url:"custom_field_136,omitempty"` CustomField137 *string `url:"custom_field_137,omitempty"` CustomField138 *string `url:"custom_field_138,omitempty"` CustomField139 *string `url:"custom_field_139,omitempty"` CustomField140 *string `url:"custom_field_140,omitempty"` CustomField141 *string `url:"custom_field_141,omitempty"` CustomField142 *string `url:"custom_field_142,omitempty"` CustomField143 *string `url:"custom_field_143,omitempty"` CustomField144 *string `url:"custom_field_144,omitempty"` CustomField145 *string `url:"custom_field_145,omitempty"` CustomField146 *string `url:"custom_field_146,omitempty"` CustomField147 *string `url:"custom_field_147,omitempty"` CustomField148 *string `url:"custom_field_148,omitempty"` CustomField149 *string `url:"custom_field_149,omitempty"` CustomField150 *string `url:"custom_field_150,omitempty"` CustomPlanField1 *string `url:"custom_plan_field_1,omitempty"` // 自定义计划应用参数,具体字段名通过接口 获取自定义计划应用 获取 CustomPlanField2 *string `url:"custom_plan_field_2,omitempty"` CustomPlanField3 *string `url:"custom_plan_field_3,omitempty"` CustomPlanField4 *string `url:"custom_plan_field_4,omitempty"` CustomPlanField5 *string `url:"custom_plan_field_5,omitempty"` CustomPlanField6 *string `url:"custom_plan_field_6,omitempty"` CustomPlanField7 *string `url:"custom_plan_field_7,omitempty"` CustomPlanField8 *string `url:"custom_plan_field_8,omitempty"` CustomPlanField9 *string `url:"custom_plan_field_9,omitempty"` CustomPlanField10 *string `url:"custom_plan_field_10,omitempty"` Limit *int `url:"limit,omitempty"` // 设置返回数量限制,默认为30 Page *int `url:"page,omitempty"` // 返回当前数量限制下第N页的数据,默认为1(第一页) Order *Order `url:"order,omitempty"` // 排序规则,规则:字段名 ASC或者DESC,然后 urlencode 如按创建时间逆序:order=created%20desc Fields *Multi[string] `url:"fields,omitempty"` // 设置获取的字段,多个字段间以','逗号隔开 }
type GetCommentsCountRequest ¶
type GetCommentsCountRequest struct { ID *Multi[int64] `url:"id,omitempty"` // 评论ID 支持多ID查询 Title *string `url:"title,omitempty"` // 标题 Description *string `url:"description,omitempty"` // 内容 Author *string `url:"author,omitempty"` // 评论人 EntryType *CommentEntryType `url:"entry_type,omitempty"` // 评论类型(取值: bug、 bug_remark (流转缺陷时候的评论)、 stories、 tasks 。多个类型间以竖线隔开) 支持枚举查询 EntryID *int64 `url:"entry_id,omitempty"` // 评论所依附的业务对象实体id Created *string `url:"created,omitempty"` // 创建时间 支持时间查询 Modified *string `url:"modified,omitempty"` // 最后更改时间 支持时间查询 WorkspaceID *int `url:"workspace_id,omitempty"` // 项目ID RootID *int64 `url:"root_id,omitempty"` // 根评论ID ReplyID *int64 `url:"reply_id,omitempty"` // 评论回复的ID }
type GetCommentsRequest ¶
type GetCommentsRequest struct { ID *Multi[int64] `url:"id,omitempty"` // 评论ID 支持多ID查询 Title *string `url:"title,omitempty"` // 标题 Description *string `url:"description,omitempty"` // 内容 Author *string `url:"author,omitempty"` // 评论人 EntryType *CommentEntryType `url:"entry_type,omitempty"` // 评论类型(取值: bug、 bug_remark (流转缺陷时候的评论)、 stories、 tasks 。多个类型间以竖线隔开) 支持枚举查询 EntryID *int64 `url:"entry_id,omitempty"` // 评论所依附的业务对象实体id Created *string `url:"created,omitempty"` // 创建时间 支持时间查询 Modified *string `url:"modified,omitempty"` // 最后更改时间 支持时间查询 WorkspaceID *int `url:"workspace_id,omitempty"` // 项目ID RootID *int64 `url:"root_id,omitempty"` // 根评论ID ReplyID *int64 `url:"reply_id,omitempty"` // 评论回复的ID Limit *int `url:"limit,omitempty"` // 设置返回数量限制,默认为30 Page *int `url:"page,omitempty"` // 返回当前数量限制下第N页的数据,默认为1(第一页) Order *Order `url:"order,omitempty"` // 排序规则,规则:字段名 ASC或者DESC,然后 urlencode 如按创建时间逆序:order=created%20desc Fields *Multi[string] `url:"fields,omitempty"` // 设置获取的字段,多个字段间以','逗号隔开 }
type GetIterationsCountRequest ¶ added in v0.6.0
type GetIterationsCountRequest struct { ID *Multi[int64] `url:"id,omitempty"` // ID 支持多ID查询 WorkspaceID *int `url:"workspace_id,omitempty"` // 项目 ID Name *string `url:"name,omitempty"` // 标题 支持模糊匹配 Description *string `url:"description,omitempty"` // 详细描述 StartDate *string `url:"startdate,omitempty"` // 开始时间 支持时间查询 EndDate *string `url:"enddate,omitempty"` // 结束时间 支持时间查询 WorkitemTypeID *int `url:"workitem_type_id,omitempty"` // 迭代类别 PlanAppID *int `url:"plan_app_id,omitempty"` // 计划应用 ID Status *string `url:"status,omitempty"` // 状态(系统状态 open/done,自定义状态可传中文) Creator *string `url:"creator,omitempty"` // 创建人 Created *string `url:"created,omitempty"` // 创建时间 支持时间查询 Modified *string `url:"modified,omitempty"` // 最后修改时间 支持时间查询 Completed *string `url:"completed,omitempty"` // 完成时间 CustomField1 *string `url:"custom_field_1,omitempty"` // 自定义字段参数 CustomField2 *string `url:"custom_field_2,omitempty"` // 自定义字段参数 CustomField3 *string `url:"custom_field_3,omitempty"` // 自定义字段参数 CustomField4 *string `url:"custom_field_4,omitempty"` // 自定义字段参数 CustomField5 *string `url:"custom_field_5,omitempty"` // 自定义字段参数 CustomField6 *string `url:"custom_field_6,omitempty"` // 自定义字段参数 CustomField7 *string `url:"custom_field_7,omitempty"` // 自定义字段参数 CustomField8 *string `url:"custom_field_8,omitempty"` // 自定义字段参数 CustomField9 *string `url:"custom_field_9,omitempty"` // 自定义字段参数 CustomField10 *string `url:"custom_field_10,omitempty"` // 自定义字段参数 CustomField11 *string `url:"custom_field_11,omitempty"` // 自定义字段参数 CustomField12 *string `url:"custom_field_12,omitempty"` // 自定义字段参数 CustomField13 *string `url:"custom_field_13,omitempty"` // 自定义字段参数 CustomField14 *string `url:"custom_field_14,omitempty"` // 自定义字段参数 CustomField15 *string `url:"custom_field_15,omitempty"` // 自定义字段参数 CustomField16 *string `url:"custom_field_16,omitempty"` // 自定义字段参数 CustomField17 *string `url:"custom_field_17,omitempty"` // 自定义字段参数 CustomField18 *string `url:"custom_field_18,omitempty"` // 自定义字段参数 CustomField19 *string `url:"custom_field_19,omitempty"` // 自定义字段参数 CustomField20 *string `url:"custom_field_20,omitempty"` // 自定义字段参数 CustomField21 *string `url:"custom_field_21,omitempty"` // 自定义字段参数 CustomField22 *string `url:"custom_field_22,omitempty"` // 自定义字段参数 CustomField23 *string `url:"custom_field_23,omitempty"` // 自定义字段参数 CustomField24 *string `url:"custom_field_24,omitempty"` // 自定义字段参数 CustomField25 *string `url:"custom_field_25,omitempty"` // 自定义字段参数 CustomField26 *string `url:"custom_field_26,omitempty"` // 自定义字段参数 CustomField27 *string `url:"custom_field_27,omitempty"` // 自定义字段参数 CustomField28 *string `url:"custom_field_28,omitempty"` // 自定义字段参数 CustomField29 *string `url:"custom_field_29,omitempty"` // 自定义字段参数 CustomField30 *string `url:"custom_field_30,omitempty"` // 自定义字段参数 CustomField31 *string `url:"custom_field_31,omitempty"` // 自定义字段参数 CustomField32 *string `url:"custom_field_32,omitempty"` // 自定义字段参数 CustomField33 *string `url:"custom_field_33,omitempty"` // 自定义字段参数 CustomField34 *string `url:"custom_field_34,omitempty"` // 自定义字段参数 CustomField35 *string `url:"custom_field_35,omitempty"` // 自定义字段参数 CustomField36 *string `url:"custom_field_36,omitempty"` // 自定义字段参数 CustomField37 *string `url:"custom_field_37,omitempty"` // 自定义字段参数 CustomField38 *string `url:"custom_field_38,omitempty"` // 自定义字段参数 CustomField39 *string `url:"custom_field_39,omitempty"` // 自定义字段参数 CustomField40 *string `url:"custom_field_40,omitempty"` // 自定义字段参数 CustomField41 *string `url:"custom_field_41,omitempty"` // 自定义字段参数 CustomField42 *string `url:"custom_field_42,omitempty"` // 自定义字段参数 CustomField43 *string `url:"custom_field_43,omitempty"` // 自定义字段参数 CustomField44 *string `url:"custom_field_44,omitempty"` // 自定义字段参数 CustomField45 *string `url:"custom_field_45,omitempty"` // 自定义字段参数 CustomField46 *string `url:"custom_field_46,omitempty"` // 自定义字段参数 CustomField47 *string `url:"custom_field_47,omitempty"` // 自定义字段参数 CustomField48 *string `url:"custom_field_48,omitempty"` // 自定义字段参数 CustomField49 *string `url:"custom_field_49,omitempty"` // 自定义字段参数 CustomField50 *string `url:"custom_field_50,omitempty"` // 自定义字段参数 }
type GetIterationsRequest ¶ added in v0.6.0
type GetIterationsRequest struct { ID *Multi[int64] `url:"id,omitempty"` // ID 支持多ID查询 Name *string `url:"name,omitempty"` // 标题 支持模糊匹配 WorkspaceID *int `url:"workspace_id,omitempty"` // 项目 ID Description *string `url:"description,omitempty"` // 详细描述 StartDate *string `url:"startdate,omitempty"` // 开始时间 支持时间查询 EndDate *string `url:"enddate,omitempty"` // 结束时间 支持时间查询 WorkitemTypeID *int `url:"workitem_type_id,omitempty"` // 迭代类别 PlanAppID *int `url:"plan_app_id,omitempty"` // 计划应用 ID Status *string `url:"status,omitempty"` // 状态(系统状态 open/done,自定义状态可传中文) Creator *string `url:"creator,omitempty"` // 创建人 Created *string `url:"created,omitempty"` // 创建时间 支持时间查询 Modified *string `url:"modified,omitempty"` // 最后修改时间 支持时间查询 Completed *string `url:"completed,omitempty"` // 完成时间 CustomField1 *string `url:"custom_field_1,omitempty"` // 自定义字段参数 CustomField2 *string `url:"custom_field_2,omitempty"` // 自定义字段参数 CustomField3 *string `url:"custom_field_3,omitempty"` // 自定义字段参数 CustomField4 *string `url:"custom_field_4,omitempty"` // 自定义字段参数 CustomField5 *string `url:"custom_field_5,omitempty"` // 自定义字段参数 CustomField6 *string `url:"custom_field_6,omitempty"` // 自定义字段参数 CustomField7 *string `url:"custom_field_7,omitempty"` // 自定义字段参数 CustomField8 *string `url:"custom_field_8,omitempty"` // 自定义字段参数 CustomField9 *string `url:"custom_field_9,omitempty"` // 自定义字段参数 CustomField10 *string `url:"custom_field_10,omitempty"` // 自定义字段参数 CustomField11 *string `url:"custom_field_11,omitempty"` // 自定义字段参数 CustomField12 *string `url:"custom_field_12,omitempty"` // 自定义字段参数 CustomField13 *string `url:"custom_field_13,omitempty"` // 自定义字段参数 CustomField14 *string `url:"custom_field_14,omitempty"` // 自定义字段参数 CustomField15 *string `url:"custom_field_15,omitempty"` // 自定义字段参数 CustomField16 *string `url:"custom_field_16,omitempty"` // 自定义字段参数 CustomField17 *string `url:"custom_field_17,omitempty"` // 自定义字段参数 CustomField18 *string `url:"custom_field_18,omitempty"` // 自定义字段参数 CustomField19 *string `url:"custom_field_19,omitempty"` // 自定义字段参数 CustomField20 *string `url:"custom_field_20,omitempty"` // 自定义字段参数 CustomField21 *string `url:"custom_field_21,omitempty"` // 自定义字段参数 CustomField22 *string `url:"custom_field_22,omitempty"` // 自定义字段参数 CustomField23 *string `url:"custom_field_23,omitempty"` // 自定义字段参数 CustomField24 *string `url:"custom_field_24,omitempty"` // 自定义字段参数 CustomField25 *string `url:"custom_field_25,omitempty"` // 自定义字段参数 CustomField26 *string `url:"custom_field_26,omitempty"` // 自定义字段参数 CustomField27 *string `url:"custom_field_27,omitempty"` // 自定义字段参数 CustomField28 *string `url:"custom_field_28,omitempty"` // 自定义字段参数 CustomField29 *string `url:"custom_field_29,omitempty"` // 自定义字段参数 CustomField30 *string `url:"custom_field_30,omitempty"` // 自定义字段参数 CustomField31 *string `url:"custom_field_31,omitempty"` // 自定义字段参数 CustomField32 *string `url:"custom_field_32,omitempty"` // 自定义字段参数 CustomField33 *string `url:"custom_field_33,omitempty"` // 自定义字段参数 CustomField34 *string `url:"custom_field_34,omitempty"` // 自定义字段参数 CustomField35 *string `url:"custom_field_35,omitempty"` // 自定义字段参数 CustomField36 *string `url:"custom_field_36,omitempty"` // 自定义字段参数 CustomField37 *string `url:"custom_field_37,omitempty"` // 自定义字段参数 CustomField38 *string `url:"custom_field_38,omitempty"` // 自定义字段参数 CustomField39 *string `url:"custom_field_39,omitempty"` // 自定义字段参数 CustomField40 *string `url:"custom_field_40,omitempty"` // 自定义字段参数 CustomField41 *string `url:"custom_field_41,omitempty"` // 自定义字段参数 CustomField42 *string `url:"custom_field_42,omitempty"` // 自定义字段参数 CustomField43 *string `url:"custom_field_43,omitempty"` // 自定义字段参数 CustomField44 *string `url:"custom_field_44,omitempty"` // 自定义字段参数 CustomField45 *string `url:"custom_field_45,omitempty"` // 自定义字段参数 CustomField46 *string `url:"custom_field_46,omitempty"` // 自定义字段参数 CustomField47 *string `url:"custom_field_47,omitempty"` // 自定义字段参数 CustomField48 *string `url:"custom_field_48,omitempty"` // 自定义字段参数 CustomField49 *string `url:"custom_field_49,omitempty"` // 自定义字段参数 CustomField50 *string `url:"custom_field_50,omitempty"` // 自定义字段参数 Limit *int `url:"limit,omitempty"` // 设置返回数量限制,默认为 30 Page *int `url:"page,omitempty"` // 返回当前数量限制下第 N 页的数据,默认为 1(第一页) Order *Order `url:"order,omitempty"` // 排序规则,规则:字段名 ASC 或者 DESC,然后 urlencode 如按创建时间逆序:order=created%20desc Fields *Multi[string] `url:"fields,omitempty"` // 设置获取的字段,多个字段间以 ',' 逗号隔开 }
type GetLabelCountRequest ¶
type GetLabelCountRequest struct { WorkspaceID *int `url:"workspace_id,omitempty"` // [必选]项目ID ID *Multi[int] `url:"id,omitempty"` // [可选]id 支持多ID查询 Name *string `url:"name,omitempty"` // [可选]标签名称 支持模糊匹配 Creator *string `url:"creator,omitempty"` // [可选]创建人 Created *string `url:"created,omitempty"` // [可选]创建时间 支持时间查询 }
type GetLabelsRequest ¶
type GetLabelsRequest struct { WorkspaceID *int `url:"workspace_id,omitempty"` // [必选]项目ID ID *Multi[int] `url:"id,omitempty"` // [可选]id 支持多ID查询 Name *string `url:"name,omitempty"` // [可选]标签名称 支持模糊匹配 Creator *string `url:"creator,omitempty"` // [可选]创建人 Created *string `url:"created,omitempty"` // [可选]创建时间 支持时间查询 Limit *int `url:"limit,omitempty"` // [可选]设置返回数量限制,默认为30 Page *int `url:"page,omitempty"` // [可选]返回当前数量限制下第N页的数据,默认为1(第一页) Order *Order `url:"order,omitempty"` // [可选]排序规则,规则:字段名 ASC或者DESC,然后 urlencode 如按创建时间逆序 }
type GetMemberActivityLogRequest ¶
type GetMemberActivityLogRequest struct { WorkspaceID *int `url:"workspace_id,omitempty"` // [必须]项目 id 为公司id则查询所有项目 CompanyOnly *int `url:"company_only,omitempty"` // [可选]为1则仅返回公司级活动日志 要求workspace_id=公司id & company_only=1 Limit *int `url:"limit,omitempty"` // [可选]设置返回数量限制,默认为20 Page *int `url:"page,omitempty"` // [可选]返回当前数量限制下第N页的数据,默认为1(第一页) StartTime *string `url:"start_time,omitempty"` // [可选]起始时间,精确到分钟,格式为Y-m-d H:i 只能查最近半年内的数据 EndTime *string `url:"end_time,omitempty"` // [可选]终止时间,精确到分钟,格式为Y-m-d H:i 只能查最近半年内的数据 Operator *string `url:"operator,omitempty"` // [可选]操作人昵称 OperateType *OperateType `url:"operate_type,omitempty"` // [可选]操作类型,默认为所有,可以填写add,delete,download,upload中的一个 OperatorObject *OperateObject `url:"operator_object,omitempty"` // [可选]操作对象,默认为所有,可以填写attachment,board,bug,document,iteration,launch,member_activity_log,release,story,task,tcase,testplan,wiki中的一个 IP *string `url:"ip,omitempty"` // [可选]请求IP条件,严格匹配 }
type GetMemberActivityLogResponse ¶
type GetMemberActivityLogResponse struct { PerPage string `json:"perPage"` TotalItems int `json:"totalItems"` CurrentPage string `json:"currentPage"` Records []*MemberActivityLog `json:"records"` OperateTypes struct { Add string `json:"add"` Delete string `json:"delete"` Upload string `json:"upload"` Download string `json:"download"` } `json:"operate_types"` OperateObjects struct { Board string `json:"board"` Story string `json:"story"` Bug string `json:"bug"` Iteration string `json:"iteration"` Wiki string `json:"wiki"` Document string `json:"document"` Attachment string `json:"attachment"` Task string `json:"task"` Tcase string `json:"tcase"` Testplan string `json:"testplan"` Launch string `json:"launch"` Release string `json:"release"` MemberActivityLog string `json:"member_activity_log"` } `json:"operate_objects"` }
type GetRemovedStoriesRequest ¶
type GetRemovedStoriesRequest struct { WorkspaceID *int `url:"workspace_id,omitempty"` // [必须]项目ID ID *Multi[int] `url:"id,omitempty"` // 需求ID Creator *string `url:"creator,omitempty"` // 创建人 IsArchived *int `url:"is_archived,omitempty"` // 是否为归档。默认取 0,为不返回归档的需求。传 is_archived=1 参数则仅返回归档的需求 Created *string `url:"created,omitempty"` // 创建时间 Deleted *string `url:"deleted,omitempty"` // 删除时间 Limit *int `url:"limit,omitempty"` // 设置返回数量限制,默认为30 Page *int `url:"page,omitempty"` // 返回当前数量限制下第N页的数据,默认为1(第一页) }
type GetReportsRequest ¶
type GetReportsRequest struct { WorkspaceID *int `url:"workspace_id,omitempty"` // [必须]项目 ID ID *int `url:"id,omitempty"` // ID Title *string `url:"title,omitempty"` // 标题 Author *string `url:"author,omitempty"` // 创建人 Created *string `url:"created,omitempty"` // 创建时间 Limit *int `url:"limit,omitempty"` // 设置返回数量限制,默认为30 Page *int `url:"page,omitempty"` // 返回当前数量限制下第N页的数据,默认为1(第一页) Fields *Multi[string] `url:"fields,omitempty"` // 设置获取的字段,多个字段间以','逗号隔开 }
type GetRolesRequest ¶
type GetRolesRequest struct {
WorkspaceID *int `url:"workspace_id,omitempty"` // 项目 ID
}
GetRolesRequest represents a request to get roles
type GetStoriesCountRequest ¶
type GetStoriesCountRequest struct { ID *Multi[int64] `url:"id,omitempty"` // ID 支持多ID查询,多个ID用逗号分隔 Name *string `url:"name,omitempty"` // 标题 支持模糊匹配 Priority *string `url:"priority,omitempty"` // 优先级。 PriorityLabel *PriorityLabel `url:"priority_label,omitempty"` // 优先级。推荐使用这个字段 BusinessValue *int `url:"business_value,omitempty"` // 业务价值 Status *string `url:"status,omitempty"` // 状态 支持枚举查询 VStatus *string `url:"v_status,omitempty"` // 状态(支持传入中文状态名称) WithVStatus *string `url:"with_v_status,omitempty"` // 值=1可以返回中文状态 Label *string `url:"label,omitempty"` // 标签查询 支持枚举查询 WorkitemTypeID *string `url:"workitem_type_id,omitempty"` // 需求类别ID 支持枚举查询 Version *string `url:"version,omitempty"` // 版本 Module *string `url:"module,omitempty"` // 模块 Feature *string `url:"feature,omitempty"` // 特性 TestFocus *string `url:"test_focus,omitempty"` // 测试重点 Size *int `url:"size,omitempty"` // 规模 Owner *string `url:"owner,omitempty"` // 处理人 支持模糊匹配 CC *string `url:"cc,omitempty"` // 抄送人 支持模糊匹配 Creator *string `url:"creator,omitempty"` // 创建人 支持多人员查询 Developer *string `url:"developer,omitempty"` // 开发人员 Begin *string `url:"begin,omitempty"` // 预计开始 支持时间查询 Due *string `url:"due,omitempty"` // 预计结束 支持时间查询 Created *string `url:"created,omitempty"` // 创建时间 支持时间查询 Modified *string `url:"modified,omitempty"` // 最后修改时间 支持时间查询 Completed *string `url:"completed,omitempty"` // 完成时间 支持时间查询 IterationID *string `url:"iteration_id,omitempty"` // 迭代ID 支持不等于查询 Effort *string `url:"effort,omitempty"` // 预估工时 EffortCompleted *string `url:"effort_completed,omitempty"` // 完成工时 Remain *float64 `url:"remain,omitempty"` // 剩余工时 Exceed *float64 `url:"exceed,omitempty"` // 超出工时 CategoryID *string `url:"category_id,omitempty"` // 需求分类 支持枚举查询 ReleaseID *string `url:"release_id,omitempty"` // 发布计划 Source *string `url:"source,omitempty"` // 需求来源 Type *string `url:"type,omitempty"` // 需求类型 ParentID *string `url:"parent_id,omitempty"` // 父需求 ChildrenID *string `url:"children_id,omitempty"` // 子需求 为空查询传:丨 Description *string `url:"description,omitempty"` // 详细描述 支持模糊匹配 WorkspaceID *int `url:"workspace_id,omitempty"` // 项目ID CustomFieldOne *string `url:"custom_field_one,omitempty"` CustomFieldTwo *string `url:"custom_field_two,omitempty"` CustomFieldThree *string `url:"custom_field_three,omitempty"` CustomFieldFour *string `url:"custom_field_four,omitempty"` CustomFieldFive *string `url:"custom_field_five,omitempty"` CustomFieldSix *string `url:"custom_field_six,omitempty"` CustomFieldSeven *string `url:"custom_field_seven,omitempty"` CustomFieldEight *string `url:"custom_field_eight,omitempty"` CustomField9 *string `url:"custom_field_9,omitempty"` CustomField10 *string `url:"custom_field_10,omitempty"` CustomField11 *string `url:"custom_field_11,omitempty"` CustomField12 *string `url:"custom_field_12,omitempty"` CustomField13 *string `url:"custom_field_13,omitempty"` CustomField14 *string `url:"custom_field_14,omitempty"` CustomField15 *string `url:"custom_field_15,omitempty"` CustomField16 *string `url:"custom_field_16,omitempty"` CustomField17 *string `url:"custom_field_17,omitempty"` CustomField18 *string `url:"custom_field_18,omitempty"` CustomField19 *string `url:"custom_field_19,omitempty"` CustomField20 *string `url:"custom_field_20,omitempty"` CustomField21 *string `url:"custom_field_21,omitempty"` CustomField22 *string `url:"custom_field_22,omitempty"` CustomField23 *string `url:"custom_field_23,omitempty"` CustomField24 *string `url:"custom_field_24,omitempty"` CustomField25 *string `url:"custom_field_25,omitempty"` CustomField26 *string `url:"custom_field_26,omitempty"` CustomField27 *string `url:"custom_field_27,omitempty"` CustomField28 *string `url:"custom_field_28,omitempty"` CustomField29 *string `url:"custom_field_29,omitempty"` CustomField30 *string `url:"custom_field_30,omitempty"` CustomField31 *string `url:"custom_field_31,omitempty"` CustomField32 *string `url:"custom_field_32,omitempty"` CustomField33 *string `url:"custom_field_33,omitempty"` CustomField34 *string `url:"custom_field_34,omitempty"` CustomField35 *string `url:"custom_field_35,omitempty"` CustomField36 *string `url:"custom_field_36,omitempty"` CustomField37 *string `url:"custom_field_37,omitempty"` CustomField38 *string `url:"custom_field_38,omitempty"` CustomField39 *string `url:"custom_field_39,omitempty"` CustomField40 *string `url:"custom_field_40,omitempty"` CustomField41 *string `url:"custom_field_41,omitempty"` CustomField42 *string `url:"custom_field_42,omitempty"` CustomField43 *string `url:"custom_field_43,omitempty"` CustomField44 *string `url:"custom_field_44,omitempty"` CustomField45 *string `url:"custom_field_45,omitempty"` CustomField46 *string `url:"custom_field_46,omitempty"` CustomField47 *string `url:"custom_field_47,omitempty"` CustomField48 *string `url:"custom_field_48,omitempty"` CustomField49 *string `url:"custom_field_49,omitempty"` CustomField50 *string `url:"custom_field_50,omitempty"` CustomField51 *string `url:"custom_field_51,omitempty"` CustomField52 *string `url:"custom_field_52,omitempty"` CustomField53 *string `url:"custom_field_53,omitempty"` CustomField54 *string `url:"custom_field_54,omitempty"` CustomField55 *string `url:"custom_field_55,omitempty"` CustomField56 *string `url:"custom_field_56,omitempty"` CustomField57 *string `url:"custom_field_57,omitempty"` CustomField58 *string `url:"custom_field_58,omitempty"` CustomField59 *string `url:"custom_field_59,omitempty"` CustomField60 *string `url:"custom_field_60,omitempty"` CustomField61 *string `url:"custom_field_61,omitempty"` CustomField62 *string `url:"custom_field_62,omitempty"` CustomField63 *string `url:"custom_field_63,omitempty"` CustomField64 *string `url:"custom_field_64,omitempty"` CustomField65 *string `url:"custom_field_65,omitempty"` CustomField66 *string `url:"custom_field_66,omitempty"` CustomField67 *string `url:"custom_field_67,omitempty"` CustomField68 *string `url:"custom_field_68,omitempty"` CustomField69 *string `url:"custom_field_69,omitempty"` CustomField70 *string `url:"custom_field_70,omitempty"` CustomField71 *string `url:"custom_field_71,omitempty"` CustomField72 *string `url:"custom_field_72,omitempty"` CustomField73 *string `url:"custom_field_73,omitempty"` CustomField74 *string `url:"custom_field_74,omitempty"` CustomField75 *string `url:"custom_field_75,omitempty"` CustomField76 *string `url:"custom_field_76,omitempty"` CustomField77 *string `url:"custom_field_77,omitempty"` CustomField78 *string `url:"custom_field_78,omitempty"` CustomField79 *string `url:"custom_field_79,omitempty"` CustomField80 *string `url:"custom_field_80,omitempty"` CustomField81 *string `url:"custom_field_81,omitempty"` CustomField82 *string `url:"custom_field_82,omitempty"` CustomField83 *string `url:"custom_field_83,omitempty"` CustomField84 *string `url:"custom_field_84,omitempty"` CustomField85 *string `url:"custom_field_85,omitempty"` CustomField86 *string `url:"custom_field_86,omitempty"` CustomField87 *string `url:"custom_field_87,omitempty"` CustomField88 *string `url:"custom_field_88,omitempty"` CustomField89 *string `url:"custom_field_89,omitempty"` CustomField90 *string `url:"custom_field_90,omitempty"` CustomField91 *string `url:"custom_field_91,omitempty"` CustomField92 *string `url:"custom_field_92,omitempty"` CustomField93 *string `url:"custom_field_93,omitempty"` CustomField94 *string `url:"custom_field_94,omitempty"` CustomField95 *string `url:"custom_field_95,omitempty"` CustomField96 *string `url:"custom_field_96,omitempty"` CustomField97 *string `url:"custom_field_97,omitempty"` CustomField98 *string `url:"custom_field_98,omitempty"` CustomField99 *string `url:"custom_field_99,omitempty"` CustomField100 *string `url:"custom_field_100,omitempty"` CustomField101 *string `url:"custom_field_101,omitempty"` CustomField102 *string `url:"custom_field_102,omitempty"` CustomField103 *string `url:"custom_field_103,omitempty"` CustomField104 *string `url:"custom_field_104,omitempty"` CustomField105 *string `url:"custom_field_105,omitempty"` CustomField106 *string `url:"custom_field_106,omitempty"` CustomField107 *string `url:"custom_field_107,omitempty"` CustomField108 *string `url:"custom_field_108,omitempty"` CustomField109 *string `url:"custom_field_109,omitempty"` CustomField110 *string `url:"custom_field_110,omitempty"` CustomField111 *string `url:"custom_field_111,omitempty"` CustomField112 *string `url:"custom_field_112,omitempty"` CustomField113 *string `url:"custom_field_113,omitempty"` CustomField114 *string `url:"custom_field_114,omitempty"` CustomField115 *string `url:"custom_field_115,omitempty"` CustomField116 *string `url:"custom_field_116,omitempty"` CustomField117 *string `url:"custom_field_117,omitempty"` CustomField118 *string `url:"custom_field_118,omitempty"` CustomField119 *string `url:"custom_field_119,omitempty"` CustomField120 *string `url:"custom_field_120,omitempty"` CustomField121 *string `url:"custom_field_121,omitempty"` CustomField122 *string `url:"custom_field_122,omitempty"` CustomField123 *string `url:"custom_field_123,omitempty"` CustomField124 *string `url:"custom_field_124,omitempty"` CustomField125 *string `url:"custom_field_125,omitempty"` CustomField126 *string `url:"custom_field_126,omitempty"` CustomField127 *string `url:"custom_field_127,omitempty"` CustomField128 *string `url:"custom_field_128,omitempty"` CustomField129 *string `url:"custom_field_129,omitempty"` CustomField130 *string `url:"custom_field_130,omitempty"` CustomField131 *string `url:"custom_field_131,omitempty"` CustomField132 *string `url:"custom_field_132,omitempty"` CustomField133 *string `url:"custom_field_133,omitempty"` CustomField134 *string `url:"custom_field_134,omitempty"` CustomField135 *string `url:"custom_field_135,omitempty"` CustomField136 *string `url:"custom_field_136,omitempty"` CustomField137 *string `url:"custom_field_137,omitempty"` CustomField138 *string `url:"custom_field_138,omitempty"` CustomField139 *string `url:"custom_field_139,omitempty"` CustomField140 *string `url:"custom_field_140,omitempty"` CustomField141 *string `url:"custom_field_141,omitempty"` CustomField142 *string `url:"custom_field_142,omitempty"` CustomField143 *string `url:"custom_field_143,omitempty"` CustomField144 *string `url:"custom_field_144,omitempty"` CustomField145 *string `url:"custom_field_145,omitempty"` CustomField146 *string `url:"custom_field_146,omitempty"` CustomField147 *string `url:"custom_field_147,omitempty"` CustomField148 *string `url:"custom_field_148,omitempty"` CustomField149 *string `url:"custom_field_149,omitempty"` CustomField150 *string `url:"custom_field_150,omitempty"` CustomField151 *string `url:"custom_field_151,omitempty"` CustomField152 *string `url:"custom_field_152,omitempty"` CustomField153 *string `url:"custom_field_153,omitempty"` CustomField154 *string `url:"custom_field_154,omitempty"` CustomField155 *string `url:"custom_field_155,omitempty"` CustomField156 *string `url:"custom_field_156,omitempty"` CustomField157 *string `url:"custom_field_157,omitempty"` CustomField158 *string `url:"custom_field_158,omitempty"` CustomField159 *string `url:"custom_field_159,omitempty"` CustomField160 *string `url:"custom_field_160,omitempty"` CustomField161 *string `url:"custom_field_161,omitempty"` CustomField162 *string `url:"custom_field_162,omitempty"` CustomField163 *string `url:"custom_field_163,omitempty"` CustomField164 *string `url:"custom_field_164,omitempty"` CustomField165 *string `url:"custom_field_165,omitempty"` CustomField166 *string `url:"custom_field_166,omitempty"` CustomField167 *string `url:"custom_field_167,omitempty"` CustomField168 *string `url:"custom_field_168,omitempty"` CustomField169 *string `url:"custom_field_169,omitempty"` CustomField170 *string `url:"custom_field_170,omitempty"` CustomField171 *string `url:"custom_field_171,omitempty"` CustomField172 *string `url:"custom_field_172,omitempty"` CustomField173 *string `url:"custom_field_173,omitempty"` CustomField174 *string `url:"custom_field_174,omitempty"` CustomField175 *string `url:"custom_field_175,omitempty"` CustomField176 *string `url:"custom_field_176,omitempty"` CustomField177 *string `url:"custom_field_177,omitempty"` CustomField178 *string `url:"custom_field_178,omitempty"` CustomField179 *string `url:"custom_field_179,omitempty"` CustomField180 *string `url:"custom_field_180,omitempty"` CustomField181 *string `url:"custom_field_181,omitempty"` CustomField182 *string `url:"custom_field_182,omitempty"` CustomField183 *string `url:"custom_field_183,omitempty"` CustomField184 *string `url:"custom_field_184,omitempty"` CustomField185 *string `url:"custom_field_185,omitempty"` CustomField186 *string `url:"custom_field_186,omitempty"` CustomField187 *string `url:"custom_field_187,omitempty"` CustomField188 *string `url:"custom_field_188,omitempty"` CustomField189 *string `url:"custom_field_189,omitempty"` CustomField190 *string `url:"custom_field_190,omitempty"` CustomField191 *string `url:"custom_field_191,omitempty"` CustomField192 *string `url:"custom_field_192,omitempty"` CustomField193 *string `url:"custom_field_193,omitempty"` CustomField194 *string `url:"custom_field_194,omitempty"` CustomField195 *string `url:"custom_field_195,omitempty"` CustomField196 *string `url:"custom_field_196,omitempty"` CustomField197 *string `url:"custom_field_197,omitempty"` CustomField198 *string `url:"custom_field_198,omitempty"` CustomField199 *string `url:"custom_field_199,omitempty"` CustomField200 *string `url:"custom_field_200,omitempty"` CustomPlanField1 *string `url:"custom_plan_field_1,omitempty"` CustomPlanField2 *string `url:"custom_plan_field_2,omitempty"` CustomPlanField3 *string `url:"custom_plan_field_3,omitempty"` CustomPlanField4 *string `url:"custom_plan_field_4,omitempty"` CustomPlanField5 *string `url:"custom_plan_field_5,omitempty"` CustomPlanField6 *string `url:"custom_plan_field_6,omitempty"` CustomPlanField7 *string `url:"custom_plan_field_7,omitempty"` CustomPlanField8 *string `url:"custom_plan_field_8,omitempty"` CustomPlanField9 *string `url:"custom_plan_field_9,omitempty"` CustomPlanField10 *string `url:"custom_plan_field_10,omitempty"` }
type GetStoriesRequest ¶
type GetStoriesRequest struct { ID *Multi[int64] `url:"id,omitempty"` // ID 支持多ID查询,多个ID用逗号分隔 Name *string `url:"name,omitempty"` // 标题 支持模糊匹配 Priority *string `url:"priority,omitempty"` // 优先级 PriorityLabel *PriorityLabel `url:"priority_label,omitempty"` // 优先级。推荐使用这个字段 BusinessValue *int `url:"business_value,omitempty"` // 业务价值 Status *Enum[StoryStatus] `url:"status,omitempty"` // 状态 支持枚举查询 VStatus *string `url:"v_status,omitempty"` // 状态(支持传入中文状态名称) WithVStatus *string `url:"with_v_status,omitempty"` // 值=1可以返回中文状态 Label *string `url:"label,omitempty"` // 标签查询 支持枚举查询 WorkitemTypeID *string `url:"workitem_type_id,omitempty"` // 需求类别ID 支持枚举查询 Version *string `url:"version,omitempty"` // 版本 Module *string `url:"module,omitempty"` // 模块 Feature *string `url:"feature,omitempty"` // 特性 TestFocus *string `url:"test_focus,omitempty"` // 测试重点 Size *int `url:"size,omitempty"` // 规模 Owner *string `url:"owner,omitempty"` // 处理人 支持模糊匹配 CC *string `url:"cc,omitempty"` // 抄送人 支持模糊匹配 Creator *string `url:"creator,omitempty"` // 创建人 支持多人员查询 Developer *string `url:"developer,omitempty"` // 开发人员 Begin *string `url:"begin,omitempty"` // 预计开始 支持时间查询 Due *string `url:"due,omitempty"` // 预计结束 支持时间查询 Created *string `url:"created,omitempty"` // 创建时间 支持时间查询 Modified *string `url:"modified,omitempty"` // 最后修改时间 支持时间查询 Completed *string `url:"completed,omitempty"` // 完成时间 支持时间查询 IterationID *string `url:"iteration_id,omitempty"` // 迭代ID 支持不等于查询 Effort *string `url:"effort,omitempty"` // 预估工时 EffortCompleted *string `url:"effort_completed,omitempty"` // 完成工时 Remain *float64 `url:"remain,omitempty"` // 剩余工时 Exceed *float64 `url:"exceed,omitempty"` // 超出工时 CategoryID *string `url:"category_id,omitempty"` // 需求分类 支持枚举查询 ReleaseID *string `url:"release_id,omitempty"` // 发布计划 Source *string `url:"source,omitempty"` // 需求来源 Type *string `url:"type,omitempty"` // 需求类型 ParentID *string `url:"parent_id,omitempty"` // 父需求 ChildrenID *string `url:"children_id,omitempty"` // 子需求 为空查询传:丨 Description *string `url:"description,omitempty"` // 详细描述 支持模糊匹配 WorkspaceID *int `url:"workspace_id,omitempty"` // 项目ID Limit *int `url:"limit,omitempty"` // 设置返回数量限制,默认为30 Page *int `url:"page,omitempty"` // 返回当前数量限制下第N页的数据,默认为1(第一页) Order *Order `url:"order,omitempty"` // 排序规则,规则:字段名 ASC或者DESC Fields *Multi[string] `url:"fields,omitempty"` // 设置获取的字段,多个字段间以','逗号隔开 CustomFieldOne *string `url:"custom_field_one,omitempty"` CustomFieldTwo *string `url:"custom_field_two,omitempty"` CustomFieldThree *string `url:"custom_field_three,omitempty"` CustomFieldFour *string `url:"custom_field_four,omitempty"` CustomFieldFive *string `url:"custom_field_five,omitempty"` CustomFieldSix *string `url:"custom_field_six,omitempty"` CustomFieldSeven *string `url:"custom_field_seven,omitempty"` CustomFieldEight *string `url:"custom_field_eight,omitempty"` CustomField9 *string `url:"custom_field_9,omitempty"` CustomField10 *string `url:"custom_field_10,omitempty"` CustomField11 *string `url:"custom_field_11,omitempty"` CustomField12 *string `url:"custom_field_12,omitempty"` CustomField13 *string `url:"custom_field_13,omitempty"` CustomField14 *string `url:"custom_field_14,omitempty"` CustomField15 *string `url:"custom_field_15,omitempty"` CustomField16 *string `url:"custom_field_16,omitempty"` CustomField17 *string `url:"custom_field_17,omitempty"` CustomField18 *string `url:"custom_field_18,omitempty"` CustomField19 *string `url:"custom_field_19,omitempty"` CustomField20 *string `url:"custom_field_20,omitempty"` CustomField21 *string `url:"custom_field_21,omitempty"` CustomField22 *string `url:"custom_field_22,omitempty"` CustomField23 *string `url:"custom_field_23,omitempty"` CustomField24 *string `url:"custom_field_24,omitempty"` CustomField25 *string `url:"custom_field_25,omitempty"` CustomField26 *string `url:"custom_field_26,omitempty"` CustomField27 *string `url:"custom_field_27,omitempty"` CustomField28 *string `url:"custom_field_28,omitempty"` CustomField29 *string `url:"custom_field_29,omitempty"` CustomField30 *string `url:"custom_field_30,omitempty"` CustomField31 *string `url:"custom_field_31,omitempty"` CustomField32 *string `url:"custom_field_32,omitempty"` CustomField33 *string `url:"custom_field_33,omitempty"` CustomField34 *string `url:"custom_field_34,omitempty"` CustomField35 *string `url:"custom_field_35,omitempty"` CustomField36 *string `url:"custom_field_36,omitempty"` CustomField37 *string `url:"custom_field_37,omitempty"` CustomField38 *string `url:"custom_field_38,omitempty"` CustomField39 *string `url:"custom_field_39,omitempty"` CustomField40 *string `url:"custom_field_40,omitempty"` CustomField41 *string `url:"custom_field_41,omitempty"` CustomField42 *string `url:"custom_field_42,omitempty"` CustomField43 *string `url:"custom_field_43,omitempty"` CustomField44 *string `url:"custom_field_44,omitempty"` CustomField45 *string `url:"custom_field_45,omitempty"` CustomField46 *string `url:"custom_field_46,omitempty"` CustomField47 *string `url:"custom_field_47,omitempty"` CustomField48 *string `url:"custom_field_48,omitempty"` CustomField49 *string `url:"custom_field_49,omitempty"` CustomField50 *string `url:"custom_field_50,omitempty"` CustomField51 *string `url:"custom_field_51,omitempty"` CustomField52 *string `url:"custom_field_52,omitempty"` CustomField53 *string `url:"custom_field_53,omitempty"` CustomField54 *string `url:"custom_field_54,omitempty"` CustomField55 *string `url:"custom_field_55,omitempty"` CustomField56 *string `url:"custom_field_56,omitempty"` CustomField57 *string `url:"custom_field_57,omitempty"` CustomField58 *string `url:"custom_field_58,omitempty"` CustomField59 *string `url:"custom_field_59,omitempty"` CustomField60 *string `url:"custom_field_60,omitempty"` CustomField61 *string `url:"custom_field_61,omitempty"` CustomField62 *string `url:"custom_field_62,omitempty"` CustomField63 *string `url:"custom_field_63,omitempty"` CustomField64 *string `url:"custom_field_64,omitempty"` CustomField65 *string `url:"custom_field_65,omitempty"` CustomField66 *string `url:"custom_field_66,omitempty"` CustomField67 *string `url:"custom_field_67,omitempty"` CustomField68 *string `url:"custom_field_68,omitempty"` CustomField69 *string `url:"custom_field_69,omitempty"` CustomField70 *string `url:"custom_field_70,omitempty"` CustomField71 *string `url:"custom_field_71,omitempty"` CustomField72 *string `url:"custom_field_72,omitempty"` CustomField73 *string `url:"custom_field_73,omitempty"` CustomField74 *string `url:"custom_field_74,omitempty"` CustomField75 *string `url:"custom_field_75,omitempty"` CustomField76 *string `url:"custom_field_76,omitempty"` CustomField77 *string `url:"custom_field_77,omitempty"` CustomField78 *string `url:"custom_field_78,omitempty"` CustomField79 *string `url:"custom_field_79,omitempty"` CustomField80 *string `url:"custom_field_80,omitempty"` CustomField81 *string `url:"custom_field_81,omitempty"` CustomField82 *string `url:"custom_field_82,omitempty"` CustomField83 *string `url:"custom_field_83,omitempty"` CustomField84 *string `url:"custom_field_84,omitempty"` CustomField85 *string `url:"custom_field_85,omitempty"` CustomField86 *string `url:"custom_field_86,omitempty"` CustomField87 *string `url:"custom_field_87,omitempty"` CustomField88 *string `url:"custom_field_88,omitempty"` CustomField89 *string `url:"custom_field_89,omitempty"` CustomField90 *string `url:"custom_field_90,omitempty"` CustomField91 *string `url:"custom_field_91,omitempty"` CustomField92 *string `url:"custom_field_92,omitempty"` CustomField93 *string `url:"custom_field_93,omitempty"` CustomField94 *string `url:"custom_field_94,omitempty"` CustomField95 *string `url:"custom_field_95,omitempty"` CustomField96 *string `url:"custom_field_96,omitempty"` CustomField97 *string `url:"custom_field_97,omitempty"` CustomField98 *string `url:"custom_field_98,omitempty"` CustomField99 *string `url:"custom_field_99,omitempty"` CustomField100 *string `url:"custom_field_100,omitempty"` CustomField101 *string `url:"custom_field_101,omitempty"` CustomField102 *string `url:"custom_field_102,omitempty"` CustomField103 *string `url:"custom_field_103,omitempty"` CustomField104 *string `url:"custom_field_104,omitempty"` CustomField105 *string `url:"custom_field_105,omitempty"` CustomField106 *string `url:"custom_field_106,omitempty"` CustomField107 *string `url:"custom_field_107,omitempty"` CustomField108 *string `url:"custom_field_108,omitempty"` CustomField109 *string `url:"custom_field_109,omitempty"` CustomField110 *string `url:"custom_field_110,omitempty"` CustomField111 *string `url:"custom_field_111,omitempty"` CustomField112 *string `url:"custom_field_112,omitempty"` CustomField113 *string `url:"custom_field_113,omitempty"` CustomField114 *string `url:"custom_field_114,omitempty"` CustomField115 *string `url:"custom_field_115,omitempty"` CustomField116 *string `url:"custom_field_116,omitempty"` CustomField117 *string `url:"custom_field_117,omitempty"` CustomField118 *string `url:"custom_field_118,omitempty"` CustomField119 *string `url:"custom_field_119,omitempty"` CustomField120 *string `url:"custom_field_120,omitempty"` CustomField121 *string `url:"custom_field_121,omitempty"` CustomField122 *string `url:"custom_field_122,omitempty"` CustomField123 *string `url:"custom_field_123,omitempty"` CustomField124 *string `url:"custom_field_124,omitempty"` CustomField125 *string `url:"custom_field_125,omitempty"` CustomField126 *string `url:"custom_field_126,omitempty"` CustomField127 *string `url:"custom_field_127,omitempty"` CustomField128 *string `url:"custom_field_128,omitempty"` CustomField129 *string `url:"custom_field_129,omitempty"` CustomField130 *string `url:"custom_field_130,omitempty"` CustomField131 *string `url:"custom_field_131,omitempty"` CustomField132 *string `url:"custom_field_132,omitempty"` CustomField133 *string `url:"custom_field_133,omitempty"` CustomField134 *string `url:"custom_field_134,omitempty"` CustomField135 *string `url:"custom_field_135,omitempty"` CustomField136 *string `url:"custom_field_136,omitempty"` CustomField137 *string `url:"custom_field_137,omitempty"` CustomField138 *string `url:"custom_field_138,omitempty"` CustomField139 *string `url:"custom_field_139,omitempty"` CustomField140 *string `url:"custom_field_140,omitempty"` CustomField141 *string `url:"custom_field_141,omitempty"` CustomField142 *string `url:"custom_field_142,omitempty"` CustomField143 *string `url:"custom_field_143,omitempty"` CustomField144 *string `url:"custom_field_144,omitempty"` CustomField145 *string `url:"custom_field_145,omitempty"` CustomField146 *string `url:"custom_field_146,omitempty"` CustomField147 *string `url:"custom_field_147,omitempty"` CustomField148 *string `url:"custom_field_148,omitempty"` CustomField149 *string `url:"custom_field_149,omitempty"` CustomField150 *string `url:"custom_field_150,omitempty"` CustomField151 *string `url:"custom_field_151,omitempty"` CustomField152 *string `url:"custom_field_152,omitempty"` CustomField153 *string `url:"custom_field_153,omitempty"` CustomField154 *string `url:"custom_field_154,omitempty"` CustomField155 *string `url:"custom_field_155,omitempty"` CustomField156 *string `url:"custom_field_156,omitempty"` CustomField157 *string `url:"custom_field_157,omitempty"` CustomField158 *string `url:"custom_field_158,omitempty"` CustomField159 *string `url:"custom_field_159,omitempty"` CustomField160 *string `url:"custom_field_160,omitempty"` CustomField161 *string `url:"custom_field_161,omitempty"` CustomField162 *string `url:"custom_field_162,omitempty"` CustomField163 *string `url:"custom_field_163,omitempty"` CustomField164 *string `url:"custom_field_164,omitempty"` CustomField165 *string `url:"custom_field_165,omitempty"` CustomField166 *string `url:"custom_field_166,omitempty"` CustomField167 *string `url:"custom_field_167,omitempty"` CustomField168 *string `url:"custom_field_168,omitempty"` CustomField169 *string `url:"custom_field_169,omitempty"` CustomField170 *string `url:"custom_field_170,omitempty"` CustomField171 *string `url:"custom_field_171,omitempty"` CustomField172 *string `url:"custom_field_172,omitempty"` CustomField173 *string `url:"custom_field_173,omitempty"` CustomField174 *string `url:"custom_field_174,omitempty"` CustomField175 *string `url:"custom_field_175,omitempty"` CustomField176 *string `url:"custom_field_176,omitempty"` CustomField177 *string `url:"custom_field_177,omitempty"` CustomField178 *string `url:"custom_field_178,omitempty"` CustomField179 *string `url:"custom_field_179,omitempty"` CustomField180 *string `url:"custom_field_180,omitempty"` CustomField181 *string `url:"custom_field_181,omitempty"` CustomField182 *string `url:"custom_field_182,omitempty"` CustomField183 *string `url:"custom_field_183,omitempty"` CustomField184 *string `url:"custom_field_184,omitempty"` CustomField185 *string `url:"custom_field_185,omitempty"` CustomField186 *string `url:"custom_field_186,omitempty"` CustomField187 *string `url:"custom_field_187,omitempty"` CustomField188 *string `url:"custom_field_188,omitempty"` CustomField189 *string `url:"custom_field_189,omitempty"` CustomField190 *string `url:"custom_field_190,omitempty"` CustomField191 *string `url:"custom_field_191,omitempty"` CustomField192 *string `url:"custom_field_192,omitempty"` CustomField193 *string `url:"custom_field_193,omitempty"` CustomField194 *string `url:"custom_field_194,omitempty"` CustomField195 *string `url:"custom_field_195,omitempty"` CustomField196 *string `url:"custom_field_196,omitempty"` CustomField197 *string `url:"custom_field_197,omitempty"` CustomField198 *string `url:"custom_field_198,omitempty"` CustomField199 *string `url:"custom_field_199,omitempty"` CustomField200 *string `url:"custom_field_200,omitempty"` CustomPlanField1 *string `url:"custom_plan_field_1,omitempty"` CustomPlanField2 *string `url:"custom_plan_field_2,omitempty"` CustomPlanField3 *string `url:"custom_plan_field_3,omitempty"` CustomPlanField4 *string `url:"custom_plan_field_4,omitempty"` CustomPlanField5 *string `url:"custom_plan_field_5,omitempty"` CustomPlanField6 *string `url:"custom_plan_field_6,omitempty"` CustomPlanField7 *string `url:"custom_plan_field_7,omitempty"` CustomPlanField8 *string `url:"custom_plan_field_8,omitempty"` CustomPlanField9 *string `url:"custom_plan_field_9,omitempty"` CustomPlanField10 *string `url:"custom_plan_field_10,omitempty"` }
type GetStoryCategoriesCountRequest ¶
type GetStoryCategoriesCountRequest struct { WorkspaceID *int `url:"workspace_id,omitempty"` // [必须]项目ID ID *Multi[int64] `url:"id,omitempty"` // ID 支持多ID查询,多个ID用逗号分隔 Name *string `url:"name,omitempty"` // 需求分类名称 支持模糊匹配 Description *string `url:"description,omitempty"` // 需求分类描述 ParentID *int `url:"parent_id,omitempty"` // 父分类ID Created *string `url:"created,omitempty"` // 创建时间 支持时间查询 Modified *string `url:"modified,omitempty"` // 最后修改时间 支持时间查询 }
type GetStoryCategoriesRequest ¶
type GetStoryCategoriesRequest struct { WorkspaceID *int `url:"workspace_id,omitempty"` // [必须]项目ID ID *Multi[int64] `url:"id,omitempty"` // ID 支持多ID查询,多个ID用逗号分隔 Name *string `url:"name,omitempty"` // 需求分类名称 支持模糊匹配 Description *string `url:"description,omitempty"` // 需求分类描述 ParentID *int `url:"parent_id,omitempty"` // 父分类ID Created *string `url:"created,omitempty"` // 创建时间 支持时间查询 Modified *string `url:"modified,omitempty"` // 最后修改时间 支持时间查询 Limit *int `url:"limit,omitempty"` // 设置返回数量限制,默认为30 Page *int `url:"page,omitempty"` // 返回当前数量限制下第N页的数据,默认为1(第一页) Order *Order `url:"order,omitempty"` //nolint:lll // 排序规则,规则:字段名 ASC或者DESC,然后 urlencode 如按创建时间逆序:order=created%20desc Fields *Multi[string] `url:"fields,omitempty"` // 设置获取的字段,多个字段间以','逗号隔开 }
type GetStoryChangesRequest ¶
type GetStoryChangesRequest struct { ID *Multi[int64] `url:"id,omitempty"` StoryID *Multi[int64] `url:"story_id,omitempty"` // 需求id 支持多ID查询 WorkspaceID *int `url:"workspace_id,omitempty"` // [必须]项目ID Creator *string `url:"creator,omitempty"` // 创建人(操作人) Created *string `url:"created,omitempty"` // 创建时间(变更时间) 支持时间查询 ChangeType *StoreChangeType `url:"change_type,omitempty"` // 变更类型 ChangeSummary *string `url:"change_summary,omitempty"` // 需求变更描述 Comment *string `url:"comment,omitempty"` // 评论 EntityType *string `url:"entity_type,omitempty"` // 变更的对象类型 ChangeField *string `url:"change_field,omitempty"` // 设置获取变更字段如(status) NeedParseChanges *int `url:"need_parse_changes,omitempty"` // 设置field_changes字段是否返回(默认取 1。取 0 则不返回) Limit *int `url:"limit,omitempty"` // 设置返回数量限制,默认为30,最大取 100 Page *int `url:"page,omitempty"` // 返回当前数量限制下第N页的数据,默认为1(第一页) Order *Order `url:"order,omitempty"` // 排序规则,规则:字段名 ASC或者DESC Fields *Multi[string] `url:"fields,omitempty"` // 设置获取的字段,多个字段间以','逗号隔开 }
type GetStoryCustomFieldsSettingsRequest ¶
type GetStoryCustomFieldsSettingsRequest struct {
WorkspaceID *int `url:"workspace_id,omitempty"` // 项目ID
}
type GetTaskChangesCountRequest ¶
type GetTaskChangesCountRequest struct { ID *Multi[int64] `url:"id,omitempty"` // 支持多ID查询 WorkspaceID *int `url:"workspace_id,omitempty"` // [必须]项目ID TaskID *int64 `url:"task_id,omitempty"` // 任务ID Creator *string `url:"creator,omitempty"` // 创建人(操作人) Created *string `url:"created,omitempty"` // 创建时间(变更时间) 支持时间查询 ChangeSummary *string `url:"change_summary,omitempty"` // 需求变更描述 Comment *string `url:"comment,omitempty"` // 评论 Changes *string `url:"changes,omitempty"` // 变更详细记录 EntityType *string `url:"entity_type,omitempty"` // 变更的对象类型 }
type GetTaskChangesRequest ¶
type GetTaskChangesRequest struct { ID *Multi[int64] `url:"id,omitempty"` // 支持多ID查询 WorkspaceID *int `url:"workspace_id,omitempty"` // [必须]项目ID TaskID *int64 `url:"task_id,omitempty"` // 任务ID Creator *string `url:"creator,omitempty"` // 创建人(操作人) Created *string `url:"created,omitempty"` // 创建时间(变更时间) 支持时间查询 ChangeSummary *string `url:"change_summary,omitempty"` // 需求变更描述 Comment *string `url:"comment,omitempty"` // 评论 Changes *string `url:"changes,omitempty"` // 变更详细记录 EntityType *string `url:"entity_type,omitempty"` // 变更的对象类型 NeedParseChanges *int `url:"need_parse_changes,omitempty"` // 设置field_changes字段是否返回(默认取 1。取 0 则不返回) Limit *int `url:"limit,omitempty"` // 设置返回数量限制,默认为30 Page *int `url:"page,omitempty"` // 返回当前数量限制下第N页的数据,默认为1(第一页) Order *Order `url:"order,omitempty"` //nolint:lll // 排序规则,规则:字段名 ASC或者DESC,然后 urlencode 如按创建时间逆序:order=created%20desc Fields *Multi[string] `url:"fields,omitempty"` // 设置获取的字段,多个字段间以','逗号隔开 }
type GetTaskFieldsInfoRequest ¶
type GetTaskFieldsInfoRequest struct {
WorkspaceID *int `url:"workspace_id,omitempty"` // [必须]项目ID
}
type GetTasksCountRequest ¶
type GetTasksCountRequest struct { ID *Multi[int64] `url:"id,omitempty"` // 支持多ID查询、模糊匹配 Name *string `url:"name,omitempty"` // 任务标题 支持模糊匹配 Description *string `url:"description,omitempty"` // 任务详细描述 WorkspaceID *int `url:"workspace_id,omitempty"` // [必须]项目ID Creator *string `url:"creator,omitempty"` // 创建人 支持多人员查询 Created *string `url:"created,omitempty"` // 创建时间 支持时间查询 Modified *string `url:"modified,omitempty"` // 最后修改时间 支持时间查询 Status *Enum[TaskStatus] `url:"status,omitempty"` // 状态 支持枚举查询 Label *Enum[string] `url:"label,omitempty"` // 标签查询 支持枚举查询 Owner *string `url:"owner,omitempty"` // 任务当前处理人 支持模糊匹配 CC *string `url:"cc,omitempty"` // 抄送人 Begin *string `url:"begin,omitempty"` // 预计开始 支持时间查询 Due *string `url:"due,omitempty"` // 预计结束 支持时间查询 StoryID *Multi[int64] `url:"story_id,omitempty"` // 关联需求的ID 支持多ID查询 IterationID *Enum[int64] `url:"iteration_id,omitempty"` // 所属迭代的ID 支持枚举查询 Priority *string `url:"priority,omitempty"` //nolint:lll // 优先级。为了兼容自定义优先级,请使用 priority_label 字段,详情参考:如何兼容自定义优先级 PriorityLabel *PriorityLabel `url:"priority_label,omitempty"` // 优先级。推荐使用这个字段 Progress *int `url:"progress,omitempty"` // 进度 Completed *string `url:"completed,omitempty"` // 完成时间 支持时间查询 EffortCompleted *string `url:"effort_completed,omitempty"` // 完成工时 Exceed *float64 `url:"exceed,omitempty"` // 超出工时 Remain *float64 `url:"remain,omitempty"` // 剩余工时 Effort *string `url:"effort,omitempty"` // 预估工时 CustomFieldOne *string `url:"custom_field_one,omitempty"` CustomFieldTwo *string `url:"custom_field_two,omitempty"` CustomFieldThree *string `url:"custom_field_three,omitempty"` CustomFieldFour *string `url:"custom_field_four,omitempty"` CustomFieldFive *string `url:"custom_field_five,omitempty"` CustomFieldSix *string `url:"custom_field_six,omitempty"` CustomFieldSeven *string `url:"custom_field_seven,omitempty"` CustomFieldEight *string `url:"custom_field_eight,omitempty"` CustomField9 *string `url:"custom_field_9,omitempty"` CustomField10 *string `url:"custom_field_10,omitempty"` CustomField11 *string `url:"custom_field_11,omitempty"` CustomField12 *string `url:"custom_field_12,omitempty"` CustomField13 *string `url:"custom_field_13,omitempty"` CustomField14 *string `url:"custom_field_14,omitempty"` CustomField15 *string `url:"custom_field_15,omitempty"` CustomField16 *string `url:"custom_field_16,omitempty"` CustomField17 *string `url:"custom_field_17,omitempty"` CustomField18 *string `url:"custom_field_18,omitempty"` CustomField19 *string `url:"custom_field_19,omitempty"` CustomField20 *string `url:"custom_field_20,omitempty"` CustomField21 *string `url:"custom_field_21,omitempty"` CustomField22 *string `url:"custom_field_22,omitempty"` CustomField23 *string `url:"custom_field_23,omitempty"` CustomField24 *string `url:"custom_field_24,omitempty"` CustomField25 *string `url:"custom_field_25,omitempty"` CustomField26 *string `url:"custom_field_26,omitempty"` CustomField27 *string `url:"custom_field_27,omitempty"` CustomField28 *string `url:"custom_field_28,omitempty"` CustomField29 *string `url:"custom_field_29,omitempty"` CustomField30 *string `url:"custom_field_30,omitempty"` CustomField31 *string `url:"custom_field_31,omitempty"` CustomField32 *string `url:"custom_field_32,omitempty"` CustomField33 *string `url:"custom_field_33,omitempty"` CustomField34 *string `url:"custom_field_34,omitempty"` CustomField35 *string `url:"custom_field_35,omitempty"` CustomField36 *string `url:"custom_field_36,omitempty"` CustomField37 *string `url:"custom_field_37,omitempty"` CustomField38 *string `url:"custom_field_38,omitempty"` CustomField39 *string `url:"custom_field_39,omitempty"` CustomField40 *string `url:"custom_field_40,omitempty"` CustomField41 *string `url:"custom_field_41,omitempty"` CustomField42 *string `url:"custom_field_42,omitempty"` CustomField43 *string `url:"custom_field_43,omitempty"` CustomField44 *string `url:"custom_field_44,omitempty"` CustomField45 *string `url:"custom_field_45,omitempty"` CustomField46 *string `url:"custom_field_46,omitempty"` CustomField47 *string `url:"custom_field_47,omitempty"` CustomField48 *string `url:"custom_field_48,omitempty"` CustomField49 *string `url:"custom_field_49,omitempty"` CustomField50 *string `url:"custom_field_50,omitempty"` }
type GetTasksRequest ¶
type GetTasksRequest struct { ID *Multi[int64] `url:"id,omitempty"` // 支持多ID查询、模糊匹配 Name *string `url:"name,omitempty"` // 任务标题 支持模糊匹配 Description *string `url:"description,omitempty"` // 任务详细描述 WorkspaceID *int `url:"workspace_id,omitempty"` // [必须]项目ID Creator *string `url:"creator,omitempty"` // 创建人 支持多人员查询 Created *string `url:"created,omitempty"` // 创建时间 支持时间查询 Modified *string `url:"modified,omitempty"` // 最后修改时间 支持时间查询 Status *Enum[TaskStatus] `url:"status,omitempty"` // 状态 支持枚举查询 Label *Enum[string] `url:"label,omitempty"` // 标签查询 支持枚举查询 Owner *string `url:"owner,omitempty"` // 任务当前处理人 支持模糊匹配 CC *string `url:"cc,omitempty"` // 抄送人 Begin *string `url:"begin,omitempty"` // 预计开始 支持时间查询 Due *string `url:"due,omitempty"` // 预计结束 支持时间查询 StoryID *Multi[int64] `url:"story_id,omitempty"` // 关联需求的ID 支持多ID查询 IterationID *Enum[int64] `url:"iteration_id,omitempty"` // 所属迭代的ID 支持枚举查询 Priority *string `url:"priority,omitempty"` //nolint:lll // 优先级。为了兼容自定义优先级,请使用 priority_label 字段,详情参考:如何兼容自定义优先级 PriorityLabel *PriorityLabel `url:"priority_label,omitempty"` // 优先级。推荐使用这个字段 Progress *int `url:"progress,omitempty"` // 进度 Completed *string `url:"completed,omitempty"` // 完成时间 支持时间查询 EffortCompleted *string `url:"effort_completed,omitempty"` // 完成工时 Exceed *float64 `url:"exceed,omitempty"` // 超出工时 Remain *float64 `url:"remain,omitempty"` // 剩余工时 Effort *string `url:"effort,omitempty"` // 预估工时 CustomFieldOne *string `url:"custom_field_one,omitempty"` CustomFieldTwo *string `url:"custom_field_two,omitempty"` CustomFieldThree *string `url:"custom_field_three,omitempty"` CustomFieldFour *string `url:"custom_field_four,omitempty"` CustomFieldFive *string `url:"custom_field_five,omitempty"` CustomFieldSix *string `url:"custom_field_six,omitempty"` CustomFieldSeven *string `url:"custom_field_seven,omitempty"` CustomFieldEight *string `url:"custom_field_eight,omitempty"` CustomField9 *string `url:"custom_field_9,omitempty"` CustomField10 *string `url:"custom_field_10,omitempty"` CustomField11 *string `url:"custom_field_11,omitempty"` CustomField12 *string `url:"custom_field_12,omitempty"` CustomField13 *string `url:"custom_field_13,omitempty"` CustomField14 *string `url:"custom_field_14,omitempty"` CustomField15 *string `url:"custom_field_15,omitempty"` CustomField16 *string `url:"custom_field_16,omitempty"` CustomField17 *string `url:"custom_field_17,omitempty"` CustomField18 *string `url:"custom_field_18,omitempty"` CustomField19 *string `url:"custom_field_19,omitempty"` CustomField20 *string `url:"custom_field_20,omitempty"` CustomField21 *string `url:"custom_field_21,omitempty"` CustomField22 *string `url:"custom_field_22,omitempty"` CustomField23 *string `url:"custom_field_23,omitempty"` CustomField24 *string `url:"custom_field_24,omitempty"` CustomField25 *string `url:"custom_field_25,omitempty"` CustomField26 *string `url:"custom_field_26,omitempty"` CustomField27 *string `url:"custom_field_27,omitempty"` CustomField28 *string `url:"custom_field_28,omitempty"` CustomField29 *string `url:"custom_field_29,omitempty"` CustomField30 *string `url:"custom_field_30,omitempty"` CustomField31 *string `url:"custom_field_31,omitempty"` CustomField32 *string `url:"custom_field_32,omitempty"` CustomField33 *string `url:"custom_field_33,omitempty"` CustomField34 *string `url:"custom_field_34,omitempty"` CustomField35 *string `url:"custom_field_35,omitempty"` CustomField36 *string `url:"custom_field_36,omitempty"` CustomField37 *string `url:"custom_field_37,omitempty"` CustomField38 *string `url:"custom_field_38,omitempty"` CustomField39 *string `url:"custom_field_39,omitempty"` CustomField40 *string `url:"custom_field_40,omitempty"` CustomField41 *string `url:"custom_field_41,omitempty"` CustomField42 *string `url:"custom_field_42,omitempty"` CustomField43 *string `url:"custom_field_43,omitempty"` CustomField44 *string `url:"custom_field_44,omitempty"` CustomField45 *string `url:"custom_field_45,omitempty"` CustomField46 *string `url:"custom_field_46,omitempty"` CustomField47 *string `url:"custom_field_47,omitempty"` CustomField48 *string `url:"custom_field_48,omitempty"` CustomField49 *string `url:"custom_field_49,omitempty"` CustomField50 *string `url:"custom_field_50,omitempty"` Limit *int `url:"limit,omitempty"` // 设置返回数量限制,默认为30 Page *int `url:"page,omitempty"` // 返回当前数量限制下第N页的数据,默认为1(第一页) Order *Order `url:"order,omitempty"` //nolint:lll // 排序规则,规则:字段名 ASC或者DESC,然后 urlencode 如按创建时间逆序:order=created%20desc Fields *Multi[string] `url:"fields,omitempty"` // 设置获取的字段,多个字段间以','逗号隔开 }
type GetTemplateListRequest ¶ added in v0.6.0
type GetTemplateListRequest struct {
WorkspaceID *int `url:"workspace_id,omitempty"` // 项目 ID
}
type GetTimesheetsCountRequest ¶
type GetTimesheetsCountRequest struct { // [可选]id 支持多ID查询 ID *Multi[int64] `url:"id,omitempty"` // [必选]项目ID WorkspaceID *int `url:"workspace_id,omitempty"` // [可选]对象类型,如story、task、bug等 EntityType *EntityType `url:"entity_type,omitempty"` // [可选]对象ID EntityID *int64 `url:"entity_id,omitempty"` // [可选]花费工时 Timespent *string `url:"timespent,omitempty"` // [可选]花费日期 支持时间查询 Spentdate *string `url:"spentdate,omitempty"` // [可选]最后修改时间 支持时间查询 Modified *string `url:"modified,omitempty"` // [可选]花费创建人 Owner *string `url:"owner,omitempty"` // [可选]值=0不返回父需求的花费 IncludeParentStoryTimesheet *int `url:"include_parent_story_timesheet,omitempty"` // [可选]创建时间 支持时间查询 Created *string `url:"created,omitempty"` // [可选]花费描述 Memo *string `url:"memo,omitempty"` // [可选]是否已删除。默认取 0,不返回已删除的工时记录。取 1 可以返回已删除的记录 IsDelete *int `url:"is_delete,omitempty"` }
type GetTimesheetsRequest ¶
type GetTimesheetsRequest struct { // [可选]id 支持多ID查询 ID *Multi[int64] `url:"id,omitempty"` // [必选]项目ID WorkspaceID *int `url:"workspace_id,omitempty"` // [可选]对象类型,如story、task、bug等 EntityType *EntityType `url:"entity_type,omitempty"` // [可选]对象ID EntityID *int64 `url:"entity_id,omitempty"` // [可选]花费工时 Timespent *string `url:"timespent,omitempty"` // [可选]花费日期 支持时间查询 Spentdate *string `url:"spentdate,omitempty"` // [可选]最后修改时间 支持时间查询 Modified *string `url:"modified,omitempty"` // [可选]花费创建人 Owner *string `url:"owner,omitempty"` // [可选]值=0不返回父需求的花费 IncludeParentStoryTimesheet *int `url:"include_parent_story_timesheet,omitempty"` // [可选]创建时间 支持时间查询 Created *string `url:"created,omitempty"` // [可选]花费描述 Memo *string `url:"memo,omitempty"` // [可选]是否已删除。默认取 0,不返回已删除的工时记录。取 1 可以返回已删除的记录 IsDelete *int `url:"is_delete,omitempty"` // [可选]设置返回数量限制,默认为30 Limit *int `url:"limit,omitempty"` // [可选]返回当前数量限制下第N页的数据,默认为1(第一页) Page *int `url:"page,omitempty"` // [可选]排序规则,规则:字段名 ASC或者DESC,然后 urlencode 如按创建时间逆序 Order *Order `url:"order,omitempty"` // [可选]设置获取的字段,多个字段间以','逗号隔开 Fields *Multi[string] `url:"fields,omitempty"` }
type GetUsersRequest ¶ added in v0.12.0
type GetWorkitemTypesRequest ¶ added in v0.6.0
type GetWorkitemTypesRequest struct {
WorkspaceID *int `url:"workspace_id,omitempty"` // 项目 ID
}
type ImageAttachment ¶
type Iteration ¶ added in v0.6.0
type Iteration struct { ID string `json:"id,omitempty"` Name string `json:"name,omitempty"` WorkspaceID string `json:"workspace_id,omitempty"` StartDate string `json:"startdate,omitempty"` EndDate string `json:"enddate,omitempty"` Status string `json:"status,omitempty"` ReleaseID string `json:"release_id,omitempty"` Description string `json:"description,omitempty"` Creator string `json:"creator,omitempty"` Created string `json:"created,omitempty"` Modified string `json:"modified,omitempty"` Completed string `json:"completed,omitempty"` EntityType string `json:"entity_type,omitempty"` ParentID string `json:"parent_id,omitempty"` AncestorID string `json:"ancestor_id,omitempty"` Path string `json:"path,omitempty"` WorkitemTypeID string `json:"workitem_type_id,omitempty"` TemplatedID string `json:"templated_id,omitempty"` PlanAppID string `json:"plan_app_id,omitempty"` CrucialMoment string `json:"crucial_moment,omitempty"` Label string `json:"label,omitempty"` ReleaseOwner string `json:"releaseowner,omitempty"` LaunchDate string `json:"launchdate,omitempty"` Notice string `json:"notice,omitempty"` ReleaseName string `json:"releasename,omitempty"` CustomField1 string `json:"custom_field_1,omitempty"` CustomField2 string `json:"custom_field_2,omitempty"` CustomField3 string `json:"custom_field_3,omitempty"` CustomField4 string `json:"custom_field_4,omitempty"` CustomField5 string `json:"custom_field_5,omitempty"` CustomField6 string `json:"custom_field_6,omitempty"` CustomField7 string `json:"custom_field_7,omitempty"` CustomField8 string `json:"custom_field_8,omitempty"` CustomField9 string `json:"custom_field_9,omitempty"` CustomField10 string `json:"custom_field_10,omitempty"` CustomField11 string `json:"custom_field_11,omitempty"` CustomField12 string `json:"custom_field_12,omitempty"` CustomField13 string `json:"custom_field_13,omitempty"` CustomField14 string `json:"custom_field_14,omitempty"` CustomField15 string `json:"custom_field_15,omitempty"` CustomField16 string `json:"custom_field_16,omitempty"` CustomField17 string `json:"custom_field_17,omitempty"` CustomField18 string `json:"custom_field_18,omitempty"` CustomField19 string `json:"custom_field_19,omitempty"` CustomField20 string `json:"custom_field_20,omitempty"` CustomField21 string `json:"custom_field_21,omitempty"` CustomField22 string `json:"custom_field_22,omitempty"` CustomField23 string `json:"custom_field_23,omitempty"` CustomField24 string `json:"custom_field_24,omitempty"` CustomField25 string `json:"custom_field_25,omitempty"` CustomField26 string `json:"custom_field_26,omitempty"` CustomField27 string `json:"custom_field_27,omitempty"` CustomField28 string `json:"custom_field_28,omitempty"` CustomField29 string `json:"custom_field_29,omitempty"` CustomField30 string `json:"custom_field_30,omitempty"` CustomField31 string `json:"custom_field_31,omitempty"` CustomField32 string `json:"custom_field_32,omitempty"` CustomField33 string `json:"custom_field_33,omitempty"` CustomField34 string `json:"custom_field_34,omitempty"` CustomField35 string `json:"custom_field_35,omitempty"` CustomField36 string `json:"custom_field_36,omitempty"` CustomField37 string `json:"custom_field_37,omitempty"` CustomField38 string `json:"custom_field_38,omitempty"` CustomField39 string `json:"custom_field_39,omitempty"` CustomField40 string `json:"custom_field_40,omitempty"` CustomField41 string `json:"custom_field_41,omitempty"` CustomField42 string `json:"custom_field_42,omitempty"` CustomField43 string `json:"custom_field_43,omitempty"` CustomField44 string `json:"custom_field_44,omitempty"` CustomField45 string `json:"custom_field_45,omitempty"` CustomField46 string `json:"custom_field_46,omitempty"` CustomField47 string `json:"custom_field_47,omitempty"` CustomField48 string `json:"custom_field_48,omitempty"` CustomField49 string `json:"custom_field_49,omitempty"` CustomField50 string `json:"custom_field_50,omitempty"` OriginName string `json:"origin_name,omitempty"` }
type IterationService ¶
type IterationService interface { // CreateIteration 创建迭代 // // https://open.tapd.cn/document/api-doc/API%E6%96%87%E6%A1%A3/api_reference/iteration/add_iteration.html CreateIteration(ctx context.Context, request *CreateIterationRequest, opts ...RequestOption) (*Iteration, *Response, error) // GetIterations 获取迭代 // // https://open.tapd.cn/document/api-doc/API%E6%96%87%E6%A1%A3/api_reference/iteration/get_iterations.html GetIterations(ctx context.Context, request *GetIterationsRequest, opts ...RequestOption) ([]*Iteration, *Response, error) // GetIterationsCount 获取迭代数量 // // https://open.tapd.cn/document/api-doc/API%E6%96%87%E6%A1%A3/api_reference/iteration/get_iterations_count.html GetIterationsCount(ctx context.Context, request *GetIterationsCountRequest, opts ...RequestOption) (int, *Response, error) // UpdateIteration 更新迭代 // // https://open.tapd.cn/document/api-doc/API%E6%96%87%E6%A1%A3/api_reference/iteration/update_iteration.html UpdateIteration(ctx context.Context, request *UpdateIterationRequest, opts ...RequestOption) (*Iteration, *Response, error) // GetWorkitemTypes 获取迭代类别列表 // // https://open.tapd.cn/document/api-doc/API%E6%96%87%E6%A1%A3/api_reference/iteration/workitem_types.html GetWorkitemTypes(ctx context.Context, request *GetWorkitemTypesRequest, opts ...RequestOption) ([]*WorkitemType, *Response, error) // GetTemplateList 获取迭代模板列表 // // https://open.tapd.cn/document/api-doc/API%E6%96%87%E6%A1%A3/api_reference/iteration/template_list.html GetTemplateList(ctx context.Context, request *GetTemplateListRequest, opts ...RequestOption) ([]*WorkitemTemplate, *Response, error) }
IterationService 迭代
https://open.tapd.cn/document/api-doc/API%E6%96%87%E6%A1%A3/api_reference/iteration/
func NewIterationService ¶ added in v0.12.0
func NewIterationService(client *Client) IterationService
type Label ¶
type Label struct { ID string `json:"id,omitempty"` WorkspaceID string `json:"workspace_id,omitempty"` Name string `json:"name,omitempty"` Color LabelColor `json:"color,omitempty"` Category string `json:"category,omitempty"` Creator string `json:"creator,omitempty"` Modifier string `json:"modifier,omitempty"` Created string `json:"created,omitempty"` Modified string `json:"modified,omitempty"` ColorValue string `json:"color_value,omitempty"` }
Label represents a label.
type LabelColor ¶
type LabelColor string
LabelColor is a type for label colors.
const ( LabelColor1 LabelColor = "1" LabelColor2 LabelColor = "2" LabelColor3 LabelColor = "3" LabelColor4 LabelColor = "4" )
type LabelService ¶
type LabelService interface { // GetLabels 获取自定义标签 // // https://open.tapd.cn/document/api-doc/API%E6%96%87%E6%A1%A3/api_reference/label/query_label.html GetLabels(ctx context.Context, request *GetLabelsRequest, opts ...RequestOption) ([]*Label, *Response, error) // GetLabelsCount 获取标签数量 // // https://open.tapd.cn/document/api-doc/API%E6%96%87%E6%A1%A3/api_reference/label/count_label.html GetLabelsCount(ctx context.Context, request *GetLabelCountRequest, opts ...RequestOption) (int, *Response, error) // CreateLabel 创建标签 // // https://open.tapd.cn/document/api-doc/API%E6%96%87%E6%A1%A3/api_reference/label/add_label.html CreateLabel(ctx context.Context, request *CreateLabelRequest, opts ...RequestOption) (*Label, *Response, error) // UpdateLabel 更新标签 // // https://open.tapd.cn/document/api-doc/API%E6%96%87%E6%A1%A3/api_reference/label/update_label.html UpdateLabel(ctx context.Context, request *UpdateLabelRequest, opts ...RequestOption) (*Label, *Response, error) }
LabelService handles communication with the label related methods of the Tapd API.
Tapd API docs: https://open.tapd.cn/document/api-doc/API%E6%96%87%E6%A1%A3/api_reference/label/index.html
func NewLabelService ¶ added in v0.12.0
func NewLabelService(client *Client) LabelService
type LifeTime ¶
type LifeTime struct { ID string `json:"id"` // id WorkspaceID string `json:"workspace_id"` // 项目ID EntityType EntityType `json:"entity_type"` // 业务对象类型 EntityID string `json:"entity_id"` // 业务对象ID Status string `json:"status"` // 状态 Owner string `json:"owner"` // IsRepeated string `json:"is_repeated"` // 是否重复 BeginDate string `json:"begin_date"` // 开始时间 EndDate string `json:"end_date"` // 结束时间 TimeCost string `json:"time_cost"` // 停留时长,单位:小时 TimeCostReduced string `json:"time_cost_reduced"` // 停留时长,单位:小时 Created string `json:"created"` // 创建时间(变更时间) Operator string `json:"operator"` // 操作人 IsLatest string `json:"is_latest"` // 是否最新 IsDelete string `json:"is_delete"` // 是否删除 }
LifeTime 状态流转时间
type LifeTimesRequest ¶
type LifeTimesRequest struct { EntityID *int `url:"entity_id,omitempty"` // [必须]业务对象ID EntityType *EntityType `url:"entity_type,omitempty"` // [必须]业务对象类型 目前type可选值:task,story,bug WorkspaceID *int `url:"workspace_id,omitempty"` // [必须]项目ID Created *string `url:"created,omitempty"` // 创建时间 Limit *int `url:"limit,omitempty"` // 设置返回数量限制,默认为30 Page *int `url:"page,omitempty"` // 返回当前数量限制下第N页的数据,默认为1(第一页) Fields *Multi[string] `url:"fields,omitempty"` // 设置获取的字段,多个字段间以','逗号隔开 }
type MeasureService ¶
type MeasureService interface { // LifeTimes 获取状态流转时间 // Note: 一次插入一条数据。注意同一 entity_type、entity_id、spentdate、owner ,只能有一条工时记录 // https://open.tapd.cn/document/api-doc/API%E6%96%87%E6%A1%A3/api_reference/measure/get_life_times.html LifeTimes(ctx context.Context, request *LifeTimesRequest, opts ...RequestOption) ([]*LifeTime, *Response, error) }
func NewMeasureService ¶ added in v0.12.0
func NewMeasureService(client *Client) MeasureService
type MemberActivityLog ¶
type MemberActivityLog struct { ID string `json:"id,omitempty"` Action string `json:"action,omitempty"` Created string `json:"created,omitempty"` Creator string `json:"creator,omitempty"` ProjectName string `json:"project_name,omitempty"` OperateType OperateType `json:"operate_type,omitempty"` OperateObject OperateObject `json:"operate_object,omitempty"` Title string `json:"title,omitempty"` URL string `json:"url,omitempty"` IP string `json:"ip,omitempty"` UA string `json:"ua,omitempty"` }
type Multi ¶
type Multi[T any] []T
func NewMulti ¶
NewMulti creates a new multi value.
Example:
NewMulti("a", "b", "c") => "a,b,c" NewMulti(1, 2, 3) => "1,2,3"
func (Multi[T]) MarshalJSON ¶
type OperateObject ¶
type OperateObject string
const ( OperateObjectAttachment OperateObject = "attachment" OperateObjectBoard OperateObject = "board" OperateObjectBug OperateObject = "bug" OperateObjectDocument OperateObject = "document" OperateObjectIteration OperateObject = "iteration" OperateObjectLaunch OperateObject = "launch" OperateObjectMemberActivityLog OperateObject = "member_activity_log" OperateObjectRelease OperateObject = "release" OperateObjectStory OperateObject = "story" OperateObjectTask OperateObject = "task" OperateObjectTestCase OperateObject = "tcase" OperateObjectTestPlan OperateObject = "testplan" OperateObjectWiki OperateObject = "wiki" )
type OperateType ¶
type OperateType string
const ( OperateTypeAdd OperateType = "add" OperateTypeDelete OperateType = "delete" OperateTypeDownload OperateType = "download" OperateTypeUpload OperateType = "upload" )
type Order ¶
type Order struct {
// contains filtered or unexported fields
}
Order is a type for order parameters.
func NewOrder ¶
func NewOrder(field string, opts ...OrderOption) *Order
NewOrder creates a new order parameter.
Example:
NewOrder("created") => "created asc" NewOrder("created", OrderByAsc) => "created asc" NewOrder("created", OrderByDesc) => "created desc"
func (*Order) MarshalJSON ¶
func (*Order) UnmarshalJSON ¶
type OrderOption ¶
type OrderOption func(*Order)
func WithOrderType ¶
func WithOrderType(orderType OrderType) OrderOption
type PriorityLabel ¶
type PriorityLabel string
const ( PriorityLabelHigh PriorityLabel = "High" PriorityLabelMiddle PriorityLabel = "Middle" PriorityLabelLow PriorityLabel = "Low" PriorityLabelNiceToHave PriorityLabel = "Nice To Have" )
func (PriorityLabel) String ¶
func (p PriorityLabel) String() string
type RawBody ¶
type RawBody struct { Status int `json:"status"` Data json.RawMessage `json:"data"` Info string `json:"info"` }
RawBody represents a raw body.
type RemovedStory ¶
type RemovedStory struct { ID string `json:"id,omitempty"` // 需求ID Name string `json:"name,omitempty"` // 标题 Creator string `json:"creator,omitempty"` // 创建人 Created string `json:"created,omitempty"` // 创建时间 OperationUser string `json:"operation_user,omitempty"` // 删除人 IsArchived string `json:"is_archived,omitempty"` // 是否为归档 Deleted string `json:"deleted,omitempty"` // 删除时间 }
type Report ¶
type Report struct { ID string `json:"id,omitempty"` Title string `json:"title,omitempty"` WorkspaceID string `json:"workspace_id,omitempty"` ReportType ReportType `json:"report_type,omitempty"` Receiver string `json:"receiver,omitempty"` Cc string `json:"cc,omitempty"` ReceiverOrganizationIDs string `json:"receiver_organization_ids,omitempty"` CcOrganizationIDs string `json:"cc_organization_ids,omitempty"` Sender string `json:"sender,omitempty"` SendTime string `json:"send_time,omitempty"` Author string `json:"author,omitempty"` Created string `json:"created,omitempty"` Status ReportStatus `json:"status,omitempty"` Modified string `json:"modified,omitempty"` LastModify string `json:"last_modify,omitempty"` }
Report 项目报告
type ReportService ¶
type ReportService interface { // GetReports 获取项目报告 // // https://open.tapd.cn/document/api-doc/API%E6%96%87%E6%A1%A3/api_reference/report/get_workspace_reports.html GetReports(ctx context.Context, request *GetReportsRequest, opts ...RequestOption) ([]*Report, *Response, error) }
ReportService is a service to interact with report related API
func NewReportService ¶ added in v0.12.0
func NewReportService(client *Client) ReportService
type ReportStatus ¶
type ReportStatus string
ReportStatus 报告状态(sent:已发送, draft:草稿, abandon:已删除)
const ( ReportStatusSent ReportStatus = "sent" ReportStatusDraft ReportStatus = "draft" ReportStatusAbandon ReportStatus = "abandon" )
type ReportType ¶
type ReportType string
ReportType 报告类型(normal:项目进度报告, totest:项目转测试, test:测试报告)
const ( ReportTypeNormal ReportType = "normal" ReportTypeToTest ReportType = "totest" ReportTypeTest ReportType = "test" )
type RequestOption ¶
func WithRequestAccessToken ¶ added in v0.13.0
func WithRequestAccessToken(accessToken string) RequestOption
func WithRequestBasicAuth ¶
func WithRequestBasicAuth(clientID, clientSecret string) RequestOption
func WithRequestHeader ¶
func WithRequestHeader(name, value string) RequestOption
func WithRequestHeaderFunc ¶
func WithRequestHeaderFunc(fn func(http.Header)) RequestOption
func WithRequestHeaders ¶
func WithRequestHeaders(headers map[string]string) RequestOption
func WithRequestUserAgent ¶
func WithRequestUserAgent(userAgent string) RequestOption
type RetryableHTTPClientOption ¶
type RetryableHTTPClientOption func(client *retryablehttp.Client)
func WithRetryableHTTPClientBackoff ¶
func WithRetryableHTTPClientBackoff(backoff retryablehttp.Backoff) RetryableHTTPClientOption
func WithRetryableHTTPClientCheckRetry ¶
func WithRetryableHTTPClientCheckRetry(checkRetry retryablehttp.CheckRetry) RetryableHTTPClientOption
func WithRetryableHTTPClientLogger ¶
func WithRetryableHTTPClientLogger(logger retryablehttp.Logger) RetryableHTTPClientOption
func WithRetryableHTTPClientRetryMax ¶
func WithRetryableHTTPClientRetryMax(retryMax int) RetryableHTTPClientOption
func WithRetryableHTTPClientRetryWaitMax ¶
func WithRetryableHTTPClientRetryWaitMax(waitMax time.Duration) RetryableHTTPClientOption
func WithRetryableHTTPClientRetryWaitMin ¶
func WithRetryableHTTPClientRetryWaitMin(waitMin time.Duration) RetryableHTTPClientOption
type SettingService ¶
type SettingService interface { // GetWorkspaceSetting 获取项目配置开关 // // https://open.tapd.cn/document/api-doc/API%E6%96%87%E6%A1%A3/api_reference/setting/get_workspace_setting.html GetWorkspaceSetting(ctx context.Context, request *GetWorkspaceSettingRequest, opts ...RequestOption) (*GetWorkspaceSettingResponse, *Response, error) }
SettingService 配置
https://open.tapd.cn/document/api-doc/API%E6%96%87%E6%A1%A3/api_reference/setting/
func NewSettingService ¶ added in v0.12.0
func NewSettingService(client *Client) SettingService
type StoreChangeType ¶
type StoreChangeType string
StoreChangeType 变更类型
const ( StoreChangeTypeSyncCopy StoreChangeType = "sync_copy" // 同步复制联动 StoreChangeTypeStoryStatusRelation StoreChangeType = "story_status_relation" // 父子需求联动 StoreChangeTypeStoryTaskRelation StoreChangeType = "story_task_relation" // 需求任务联动 StoreChangeTypeAPI StoreChangeType = "api" // API变更 StoreChangeTypeSmartCommit StoreChangeType = "smart_commit" // Smart Commit触发 StoreChangeTypeAutoTask StoreChangeType = "auto_task" // 自动化任务触发 StoreChangeTypeAutoWorkflow StoreChangeType = "auto_workflow" // 自动化工作流触发 StoreChangeTypeManualUpdate StoreChangeType = "manual_update" // 手动变更 StoreChangeTypeImportUpdate StoreChangeType = "import_update" // 导入更新 StoreChangeTypeCodeChange StoreChangeType = "code_change" // 代码变更 StoreChangeTypeStatusDelete StoreChangeType = "status_delete" // 状态删除 StoreChangeTypeExitWorkspace StoreChangeType = "exit_workspace" // 退出项目触发 StoreChangeTypeLinkUpdate StoreChangeType = "link_update" // 更新关联 StoreChangeTypeLinkCreate StoreChangeType = "link_create" // 创建关联 StoreChangeTypeLinkDelete StoreChangeType = "link_delete" // 删除关联 StoreChangeTypeCreateStoryFromCopy StoreChangeType = "create_story_from_copy" // 复制创建 StoreChangeTypeCreateStory StoreChangeType = "create_story" // 创建需求 )
type StoriesCountByCategory ¶
type Story ¶
type Story struct { ID string `json:"id,omitempty"` WorkitemTypeID string `json:"workitem_type_id,omitempty"` Name string `json:"name,omitempty"` Description string `json:"description,omitempty"` WorkspaceID string `json:"workspace_id,omitempty"` Creator string `json:"creator,omitempty"` Created string `json:"created,omitempty"` Modified string `json:"modified,omitempty"` Status StoryStatus `json:"status,omitempty"` Step string `json:"step,omitempty"` Owner string `json:"owner,omitempty"` Cc string `json:"cc,omitempty"` Begin *string `json:"begin,omitempty"` Due *string `json:"due,omitempty"` Size *string `json:"size,omitempty"` Priority string `json:"priority,omitempty"` Developer string `json:"developer,omitempty"` IterationID string `json:"iteration_id,omitempty"` TestFocus string `json:"test_focus,omitempty"` Type string `json:"type,omitempty"` Source string `json:"source,omitempty"` Module string `json:"module,omitempty"` Version string `json:"version,omitempty"` Completed *string `json:"completed,omitempty"` CategoryID string `json:"category_id,omitempty"` Path string `json:"path,omitempty"` ParentID string `json:"parent_id,omitempty"` ChildrenID string `json:"children_id,omitempty"` AncestorID string `json:"ancestor_id,omitempty"` Level string `json:"level,omitempty"` BusinessValue *string `json:"business_value,omitempty"` Effort *string `json:"effort,omitempty"` EffortCompleted string `json:"effort_completed,omitempty"` Exceed string `json:"exceed,omitempty"` Remain string `json:"remain,omitempty"` ReleaseID string `json:"release_id,omitempty"` BugID string `json:"bug_id,omitempty"` TemplatedID string `json:"templated_id,omitempty"` CreatedFrom string `json:"created_from,omitempty"` Feature string `json:"feature,omitempty"` Label string `json:"label,omitempty"` Progress string `json:"progress,omitempty"` IsArchived string `json:"is_archived,omitempty"` TechRisk *string `json:"tech_risk,omitempty"` Flows *string `json:"flows,omitempty"` SecretRootID string `json:"secret_root_id,omitempty"` PriorityLabel PriorityLabel `json:"priority_label,omitempty"` CustomFieldOne string `json:"custom_field_one,omitempty"` CustomFieldTwo string `json:"custom_field_two,omitempty"` CustomFieldThree string `json:"custom_field_three,omitempty"` CustomFieldFour string `json:"custom_field_four,omitempty"` CustomFieldFive string `json:"custom_field_five,omitempty"` CustomFieldSix string `json:"custom_field_six,omitempty"` CustomFieldSeven string `json:"custom_field_seven,omitempty"` CustomFieldEight string `json:"custom_field_eight,omitempty"` CustomField9 string `json:"custom_field_9,omitempty"` CustomField10 string `json:"custom_field_10,omitempty"` CustomField11 string `json:"custom_field_11,omitempty"` CustomField12 string `json:"custom_field_12,omitempty"` CustomField13 string `json:"custom_field_13,omitempty"` CustomField14 string `json:"custom_field_14,omitempty"` CustomField15 string `json:"custom_field_15,omitempty"` CustomField16 string `json:"custom_field_16,omitempty"` CustomField17 string `json:"custom_field_17,omitempty"` CustomField18 string `json:"custom_field_18,omitempty"` CustomField19 string `json:"custom_field_19,omitempty"` CustomField20 string `json:"custom_field_20,omitempty"` CustomField21 string `json:"custom_field_21,omitempty"` CustomField22 string `json:"custom_field_22,omitempty"` CustomField23 string `json:"custom_field_23,omitempty"` CustomField24 string `json:"custom_field_24,omitempty"` CustomField25 string `json:"custom_field_25,omitempty"` CustomField26 string `json:"custom_field_26,omitempty"` CustomField27 string `json:"custom_field_27,omitempty"` CustomField28 string `json:"custom_field_28,omitempty"` CustomField29 string `json:"custom_field_29,omitempty"` CustomField30 string `json:"custom_field_30,omitempty"` CustomField31 string `json:"custom_field_31,omitempty"` CustomField32 string `json:"custom_field_32,omitempty"` CustomField33 string `json:"custom_field_33,omitempty"` CustomField34 string `json:"custom_field_34,omitempty"` CustomField35 string `json:"custom_field_35,omitempty"` CustomField36 string `json:"custom_field_36,omitempty"` CustomField37 string `json:"custom_field_37,omitempty"` CustomField38 string `json:"custom_field_38,omitempty"` CustomField39 string `json:"custom_field_39,omitempty"` CustomField40 string `json:"custom_field_40,omitempty"` CustomField41 string `json:"custom_field_41,omitempty"` CustomField42 string `json:"custom_field_42,omitempty"` CustomField43 string `json:"custom_field_43,omitempty"` CustomField44 string `json:"custom_field_44,omitempty"` CustomField45 string `json:"custom_field_45,omitempty"` CustomField46 string `json:"custom_field_46,omitempty"` CustomField47 string `json:"custom_field_47,omitempty"` CustomField48 string `json:"custom_field_48,omitempty"` CustomField49 string `json:"custom_field_49,omitempty"` CustomField50 string `json:"custom_field_50,omitempty"` CustomField51 string `json:"custom_field_51,omitempty"` CustomField52 string `json:"custom_field_52,omitempty"` CustomField53 string `json:"custom_field_53,omitempty"` CustomField54 string `json:"custom_field_54,omitempty"` CustomField55 string `json:"custom_field_55,omitempty"` CustomField56 string `json:"custom_field_56,omitempty"` CustomField57 string `json:"custom_field_57,omitempty"` CustomField58 string `json:"custom_field_58,omitempty"` CustomField59 string `json:"custom_field_59,omitempty"` CustomField60 string `json:"custom_field_60,omitempty"` CustomField61 string `json:"custom_field_61,omitempty"` CustomField62 string `json:"custom_field_62,omitempty"` CustomField63 string `json:"custom_field_63,omitempty"` CustomField64 string `json:"custom_field_64,omitempty"` CustomField65 string `json:"custom_field_65,omitempty"` CustomField66 string `json:"custom_field_66,omitempty"` CustomField67 string `json:"custom_field_67,omitempty"` CustomField68 string `json:"custom_field_68,omitempty"` CustomField69 string `json:"custom_field_69,omitempty"` CustomField70 string `json:"custom_field_70,omitempty"` CustomField71 string `json:"custom_field_71,omitempty"` CustomField72 string `json:"custom_field_72,omitempty"` CustomField73 string `json:"custom_field_73,omitempty"` CustomField74 string `json:"custom_field_74,omitempty"` CustomField75 string `json:"custom_field_75,omitempty"` CustomField76 string `json:"custom_field_76,omitempty"` CustomField77 string `json:"custom_field_77,omitempty"` CustomField78 string `json:"custom_field_78,omitempty"` CustomField79 string `json:"custom_field_79,omitempty"` CustomField80 string `json:"custom_field_80,omitempty"` CustomField81 string `json:"custom_field_81,omitempty"` CustomField82 string `json:"custom_field_82,omitempty"` CustomField83 string `json:"custom_field_83,omitempty"` CustomField84 string `json:"custom_field_84,omitempty"` CustomField85 string `json:"custom_field_85,omitempty"` CustomField86 string `json:"custom_field_86,omitempty"` CustomField87 string `json:"custom_field_87,omitempty"` CustomField88 string `json:"custom_field_88,omitempty"` CustomField89 string `json:"custom_field_89,omitempty"` CustomField90 string `json:"custom_field_90,omitempty"` CustomField91 string `json:"custom_field_91,omitempty"` CustomField92 string `json:"custom_field_92,omitempty"` CustomField93 string `json:"custom_field_93,omitempty"` CustomField94 string `json:"custom_field_94,omitempty"` CustomField95 string `json:"custom_field_95,omitempty"` CustomField96 string `json:"custom_field_96,omitempty"` CustomField97 string `json:"custom_field_97,omitempty"` CustomField98 string `json:"custom_field_98,omitempty"` CustomField99 string `json:"custom_field_99,omitempty"` CustomField100 string `json:"custom_field_100,omitempty"` CustomField101 string `json:"custom_field_101,omitempty"` CustomField102 string `json:"custom_field_102,omitempty"` CustomField103 string `json:"custom_field_103,omitempty"` CustomField104 string `json:"custom_field_104,omitempty"` CustomField105 string `json:"custom_field_105,omitempty"` CustomField106 string `json:"custom_field_106,omitempty"` CustomField107 string `json:"custom_field_107,omitempty"` CustomField108 string `json:"custom_field_108,omitempty"` CustomField109 string `json:"custom_field_109,omitempty"` CustomField110 string `json:"custom_field_110,omitempty"` CustomField111 string `json:"custom_field_111,omitempty"` CustomField112 string `json:"custom_field_112,omitempty"` CustomField113 string `json:"custom_field_113,omitempty"` CustomField114 string `json:"custom_field_114,omitempty"` CustomField115 string `json:"custom_field_115,omitempty"` CustomField116 string `json:"custom_field_116,omitempty"` CustomField117 string `json:"custom_field_117,omitempty"` CustomField118 string `json:"custom_field_118,omitempty"` CustomField119 string `json:"custom_field_119,omitempty"` CustomField120 string `json:"custom_field_120,omitempty"` CustomField121 string `json:"custom_field_121,omitempty"` CustomField122 string `json:"custom_field_122,omitempty"` CustomField123 string `json:"custom_field_123,omitempty"` CustomField124 string `json:"custom_field_124,omitempty"` CustomField125 string `json:"custom_field_125,omitempty"` CustomField126 string `json:"custom_field_126,omitempty"` CustomField127 string `json:"custom_field_127,omitempty"` CustomField128 string `json:"custom_field_128,omitempty"` CustomField129 string `json:"custom_field_129,omitempty"` CustomField130 string `json:"custom_field_130,omitempty"` CustomField131 string `json:"custom_field_131,omitempty"` CustomField132 string `json:"custom_field_132,omitempty"` CustomField133 string `json:"custom_field_133,omitempty"` CustomField134 string `json:"custom_field_134,omitempty"` CustomField135 string `json:"custom_field_135,omitempty"` CustomField136 string `json:"custom_field_136,omitempty"` CustomField137 string `json:"custom_field_137,omitempty"` CustomField138 string `json:"custom_field_138,omitempty"` CustomField139 string `json:"custom_field_139,omitempty"` CustomField140 string `json:"custom_field_140,omitempty"` CustomField141 string `json:"custom_field_141,omitempty"` CustomField142 string `json:"custom_field_142,omitempty"` CustomField143 string `json:"custom_field_143,omitempty"` CustomField144 string `json:"custom_field_144,omitempty"` CustomField145 string `json:"custom_field_145,omitempty"` CustomField146 string `json:"custom_field_146,omitempty"` CustomField147 string `json:"custom_field_147,omitempty"` CustomField148 string `json:"custom_field_148,omitempty"` CustomField149 string `json:"custom_field_149,omitempty"` CustomField150 string `json:"custom_field_150,omitempty"` CustomField151 string `json:"custom_field_151,omitempty"` CustomField152 string `json:"custom_field_152,omitempty"` CustomField153 string `json:"custom_field_153,omitempty"` CustomField154 string `json:"custom_field_154,omitempty"` CustomField155 string `json:"custom_field_155,omitempty"` CustomField156 string `json:"custom_field_156,omitempty"` CustomField157 string `json:"custom_field_157,omitempty"` CustomField158 string `json:"custom_field_158,omitempty"` CustomField159 string `json:"custom_field_159,omitempty"` CustomField160 string `json:"custom_field_160,omitempty"` CustomField161 string `json:"custom_field_161,omitempty"` CustomField162 string `json:"custom_field_162,omitempty"` CustomField163 string `json:"custom_field_163,omitempty"` CustomField164 string `json:"custom_field_164,omitempty"` CustomField165 string `json:"custom_field_165,omitempty"` CustomField166 string `json:"custom_field_166,omitempty"` CustomField167 string `json:"custom_field_167,omitempty"` CustomField168 string `json:"custom_field_168,omitempty"` CustomField169 string `json:"custom_field_169,omitempty"` CustomField170 string `json:"custom_field_170,omitempty"` CustomField171 string `json:"custom_field_171,omitempty"` CustomField172 string `json:"custom_field_172,omitempty"` CustomField173 string `json:"custom_field_173,omitempty"` CustomField174 string `json:"custom_field_174,omitempty"` CustomField175 string `json:"custom_field_175,omitempty"` CustomField176 string `json:"custom_field_176,omitempty"` CustomField177 string `json:"custom_field_177,omitempty"` CustomField178 string `json:"custom_field_178,omitempty"` CustomField179 string `json:"custom_field_179,omitempty"` CustomField180 string `json:"custom_field_180,omitempty"` CustomField181 string `json:"custom_field_181,omitempty"` CustomField182 string `json:"custom_field_182,omitempty"` CustomField183 string `json:"custom_field_183,omitempty"` CustomField184 string `json:"custom_field_184,omitempty"` CustomField185 string `json:"custom_field_185,omitempty"` CustomField186 string `json:"custom_field_186,omitempty"` CustomField187 string `json:"custom_field_187,omitempty"` CustomField188 string `json:"custom_field_188,omitempty"` CustomField189 string `json:"custom_field_189,omitempty"` CustomField190 string `json:"custom_field_190,omitempty"` CustomField191 string `json:"custom_field_191,omitempty"` CustomField192 string `json:"custom_field_192,omitempty"` CustomField193 string `json:"custom_field_193,omitempty"` CustomField194 string `json:"custom_field_194,omitempty"` CustomField195 string `json:"custom_field_195,omitempty"` CustomField196 string `json:"custom_field_196,omitempty"` CustomField197 string `json:"custom_field_197,omitempty"` CustomField198 string `json:"custom_field_198,omitempty"` CustomField199 string `json:"custom_field_199,omitempty"` CustomField200 string `json:"custom_field_200,omitempty"` CustomPlanField1 string `json:"custom_plan_field_1,omitempty"` CustomPlanField2 string `json:"custom_plan_field_2,omitempty"` CustomPlanField3 string `json:"custom_plan_field_3,omitempty"` CustomPlanField4 string `json:"custom_plan_field_4,omitempty"` CustomPlanField5 string `json:"custom_plan_field_5,omitempty"` CustomPlanField6 string `json:"custom_plan_field_6,omitempty"` CustomPlanField7 string `json:"custom_plan_field_7,omitempty"` CustomPlanField8 string `json:"custom_plan_field_8,omitempty"` CustomPlanField9 string `json:"custom_plan_field_9,omitempty"` CustomPlanField10 string `json:"custom_plan_field_10,omitempty"` }
type StoryCategory ¶
type StoryCategory struct { ID string `json:"id,omitempty"` // ID WorkspaceID string `json:"workspace_id,omitempty"` // 项目ID Name string `json:"name,omitempty"` // 需求分类名称 Description string `json:"description,omitempty"` // 需求分类描述 ParentID string `json:"parent_id,omitempty"` // 父分类ID Created string `json:"created,omitempty"` // 创建时间 Modified string `json:"modified,omitempty"` // 最后修改时间 Creator string `json:"creator,omitempty"` // 创建人 Modifier string `json:"modifier,omitempty"` // 最后修改人 }
type StoryChange ¶
type StoryChange struct { ID string `json:"id,omitempty"` WorkspaceID string `json:"workspace_id,omitempty"` AppID string `json:"app_id,omitempty"` WorkitemTypeID string `json:"workitem_type_id,omitempty"` Creator string `json:"creator,omitempty"` Created string `json:"created,omitempty"` ChangeSummary string `json:"change_summary,omitempty"` Comment *string `json:"comment,omitempty"` Changes string `json:"changes,omitempty"` EntityType string `json:"entity_type,omitempty"` ChangeType StoreChangeType `json:"change_type,omitempty"` ChangeTypeText string `json:"change_type_text,omitempty"` Updated string `json:"updated,omitempty"` FieldChanges []struct { Field string `json:"field,omitempty"` ValueBefore any `json:"value_before,omitempty"` // todo: any to string ValueAfter any `json:"value_after,omitempty"` // todo: any to string ValueBeforeParsed string `json:"value_before_parsed,omitempty"` ValueAfterParsed string `json:"value_after_parsed,omitempty"` FieldLabel string `json:"field_label,omitempty"` } `json:"field_changes,omitempty"` StoryID string `json:"story_id,omitempty"` }
type StoryCustomFieldsSetting ¶
type StoryCustomFieldsSetting struct { ID string `json:"id,omitempty"` // 自定义字段配置的ID WorkspaceID string `json:"workspace_id,omitempty"` // 所属项目ID AppID string `json:"app_id,omitempty"` EntryType string `json:"entry_type,omitempty"` // 所属实体对象 CustomField string `json:"custom_field,omitempty"` // 自定义字段标识(英文名) Type string `json:"type,omitempty"` // 输入类型 Name string `json:"name,omitempty"` // 自定义字段显示名称 Options *string `json:"options,omitempty"` // 自定义字段可选值 ExtraConfig *string `json:"extra_config,omitempty"` // 额外配置 Enabled string `json:"enabled,omitempty"` // 是否启用 Freeze string `json:"freeze,omitempty"` Sort *string `json:"sort,omitempty"` // 显示时排序系数 Memo *string `json:"memo,omitempty"` OpenExtensionID string `json:"open_extension_id,omitempty"` IsOut int `json:"is_out,omitempty"` IsUninstall int `json:"is_uninstall,omitempty"` AppName string `json:"app_name,omitempty"` }
type StoryRelatedBug ¶
type StoryService ¶
type StoryService interface { // CreateStory 创建需求 // // https://open.tapd.cn/document/api-doc/API%E6%96%87%E6%A1%A3/api_reference/story/add_story.html CreateStory(ctx context.Context, request *CreateStoryRequest, opts ...RequestOption) (*Story, *Response, error) // GetStories 获取需求 // // https://open.tapd.cn/document/api-doc/API%E6%96%87%E6%A1%A3/api_reference/story/get_stories.html GetStories(ctx context.Context, request *GetStoriesRequest, opts ...RequestOption) ([]*Story, *Response, error) // GetStoriesCount 获取需求数量 // // https://open.tapd.cn/document/api-doc/API%E6%96%87%E6%A1%A3/api_reference/story/get_stories_count.html GetStoriesCount(ctx context.Context, request *GetStoriesCountRequest, opts ...RequestOption) (int, *Response, error) // GetStoryCategories 获取需求分类 // // https://open.tapd.cn/document/api-doc/API%E6%96%87%E6%A1%A3/api_reference/story/get_story_categories.html GetStoryCategories(ctx context.Context, request *GetStoryCategoriesRequest, opts ...RequestOption) ([]*StoryCategory, *Response, error) // GetStoryCategoriesCount 获取需求分类数量 // // https://open.tapd.cn/document/api-doc/API%E6%96%87%E6%A1%A3/api_reference/story/get_story_categories_count.html GetStoryCategoriesCount(ctx context.Context, request *GetStoryCategoriesCountRequest, opts ...RequestOption) (int, *Response, error) // GetStoriesCountByCategories 获取指定分类下需求数量 // // https://open.tapd.cn/document/api-doc/API%E6%96%87%E6%A1%A3/api_reference/story/count_by_categories.html GetStoriesCountByCategories(ctx context.Context, request *GetStoriesCountByCategoriesRequest, opts ...RequestOption) ([]*StoriesCountByCategory, *Response, error) // GetStoryChanges 获取需求变更历史 // // https://open.tapd.cn/document/api-doc/API%E6%96%87%E6%A1%A3/api_reference/story/get_story_changes.html GetStoryChanges(ctx context.Context, request *GetStoryChangesRequest, opts ...RequestOption) ([]*StoryChange, *Response, error) // GetStoryCustomFieldsSettings 获取需求自定义字段配置 // // https://open.tapd.cn/document/api-doc/API%E6%96%87%E6%A1%A3/api_reference/story/get_story_custom_fields_settings.html GetStoryCustomFieldsSettings(ctx context.Context, request *GetStoryCustomFieldsSettingsRequest, opts ...RequestOption) ([]*StoryCustomFieldsSetting, *Response, error) // UpdateStory 更新需求 // // https://open.tapd.cn/document/api-doc/API%E6%96%87%E6%A1%A3/api_reference/story/update_story.html UpdateStory(ctx context.Context, request *UpdateStoryRequest, opts ...RequestOption) (*Story, *Response, error) // GetStoryTemplates 获取需求模板列表 // // https://open.tapd.cn/document/api-doc/API%E6%96%87%E6%A1%A3/api_reference/story/get_story_template_list.html GetStoryTemplates(ctx context.Context, request *GetStoryTemplatesRequest, opts ...RequestOption) ([]*StoryTemplate, *Response, error) // GetStoryTemplateFields 获取需求模板字段 // // https://open.tapd.cn/document/api-doc/API%E6%96%87%E6%A1%A3/api_reference/story/get_default_story_template.html GetStoryTemplateFields(ctx context.Context, request *GetStoryTemplateFieldsRequest, opts ...RequestOption) ([]*StoryTemplateField, *Response, error) // GetRemovedStories 获取回收站中的需求 // // https://open.tapd.cn/document/api-doc/API%E6%96%87%E6%A1%A3/api_reference/story/get_removed_stories.html GetRemovedStories(ctx context.Context, request *GetRemovedStoriesRequest, opts ...RequestOption) ([]*RemovedStory, *Response, error) // GetStoryRelatedBugs 获取需求关联的缺陷 // // https://open.tapd.cn/document/api-doc/API%E6%96%87%E6%A1%A3/api_reference/story/get_story_related_bugs.html GetStoryRelatedBugs(ctx context.Context, request *GetStoryRelatedBugsRequest, opts ...RequestOption) ([]*StoryRelatedBug, *Response, error) // GetConvertStoryIDsToQueryToken 转换需求ID成列表queryToken // // https://open.tapd.cn/document/api-doc/API%E6%96%87%E6%A1%A3/api_reference/story/story_ids_to_query_token.html GetConvertStoryIDsToQueryToken(ctx context.Context, request *GetConvertStoryIDsToQueryTokenRequest, opts ...RequestOption) (*GetConvertStoryIDsToQueryTokenResponse, *Response, error) }
func NewStoryService ¶ added in v0.12.0
func NewStoryService(client *Client) StoryService
type StoryStatus ¶
type StoryStatus string
const ( StoryStatusAudited StoryStatus = "audited" // 已评审 StoryStatusDeveloping StoryStatus = "developing" // 开发中 StoryStatusForTest StoryStatus = "for_test" // 待测试 StoryStatusInProgress StoryStatus = "in_progress" // 处理中 StoryStatusPlanning StoryStatus = "planning" // 规划中 StoryStatusRejected StoryStatus = "rejected" // 已拒绝 StoryStatusResolved StoryStatus = "resolved" // 已处理 StoryStatusTesting StoryStatus = "testing" // 测试中 )
func (StoryStatus) String ¶ added in v0.12.0
func (s StoryStatus) String() string
type StoryTemplate ¶
type StoryTemplate struct { ID string `json:"id,omitempty"` // 模板ID Name string `json:"name,omitempty"` // 标题 Description string `json:"description,omitempty"` // 详细描述 Sort string `json:"sort,omitempty"` // 排序 Default string `json:"default,omitempty"` // 是否启用 Creator string `json:"creator,omitempty"` // 提交人 EditorType string `json:"editor_type,omitempty"` // 编辑器类型 }
type StoryTemplateField ¶
type StoryTemplateField struct { ID string `json:"id,omitempty"` // 模板字段ID WorkspaceID string `json:"workspace_id,omitempty"` // 项目ID Type string `json:"type,omitempty"` // 类型 TemplateID string `json:"template_id,omitempty"` // 模板ID Field string `json:"field,omitempty"` // 字段名称 Value string `json:"value,omitempty"` // 默认值 Required string `json:"required,omitempty"` // 是否必填 Sort string `json:"sort,omitempty"` // 排序 LinkageRules string `json:"linkage_rules,omitempty"` }
type Task ¶
type Task struct { ID string `json:"id,omitempty"` // 任务ID Name string `json:"name,omitempty"` // 任务标题 Description string `json:"description,omitempty"` // 任务详细描述 WorkspaceID string `json:"workspace_id,omitempty"` // 项目ID Creator string `json:"creator,omitempty"` // 创建人 Created string `json:"created,omitempty"` // 创建时间 Modified string `json:"modified,omitempty"` // 最后修改时间 Status TaskStatus `json:"status,omitempty"` // 状态 Owner string `json:"owner,omitempty"` // 任务当前处理人 CC string `json:"cc,omitempty"` // 抄送人 Begin string `json:"begin,omitempty"` // 预计开始 Due string `json:"due,omitempty"` // 预计结束 StoryID string `json:"story_id,omitempty"` // 关联需求的ID IterationID string `json:"iteration_id,omitempty"` // 所属迭代的ID Priority string `json:"priority,omitempty"` // 优先级 Progress string `json:"progress,omitempty"` // 进度 Completed string `json:"completed,omitempty"` // 完成时间 EffortCompleted string `json:"effort_completed,omitempty"` // 完成工时 Exceed string `json:"exceed,omitempty"` // 超出工时 Remain string `json:"remain,omitempty"` // 剩余工时 Effort string `json:"effort,omitempty"` // 预估工时 HasAttachment string `json:"has_attachment,omitempty"` // 是否有附件 ReleaseID string `json:"release_id,omitempty"` // 发布计划ID Label string `json:"label,omitempty"` // 标签 CustomFieldOne string `json:"custom_field_one,omitempty"` // 自定义字段 CustomFieldTwo string `json:"custom_field_two,omitempty"` CustomFieldThree string `json:"custom_field_three,omitempty"` CustomFieldFour string `json:"custom_field_four,omitempty"` CustomFieldFive string `json:"custom_field_five,omitempty"` CustomFieldSix string `json:"custom_field_six,omitempty"` CustomFieldSeven string `json:"custom_field_seven,omitempty"` CustomFieldEight string `json:"custom_field_eight,omitempty"` CustomField9 string `json:"custom_field_9,omitempty"` CustomField10 string `json:"custom_field_10,omitempty"` CustomField11 string `json:"custom_field_11,omitempty"` CustomField12 string `json:"custom_field_12,omitempty"` CustomField13 string `json:"custom_field_13,omitempty"` CustomField14 string `json:"custom_field_14,omitempty"` CustomField15 string `json:"custom_field_15,omitempty"` CustomField16 string `json:"custom_field_16,omitempty"` CustomField17 string `json:"custom_field_17,omitempty"` CustomField18 string `json:"custom_field_18,omitempty"` CustomField19 string `json:"custom_field_19,omitempty"` CustomField20 string `json:"custom_field_20,omitempty"` CustomField21 string `json:"custom_field_21,omitempty"` CustomField22 string `json:"custom_field_22,omitempty"` CustomField23 string `json:"custom_field_23,omitempty"` CustomField24 string `json:"custom_field_24,omitempty"` CustomField25 string `json:"custom_field_25,omitempty"` CustomField26 string `json:"custom_field_26,omitempty"` CustomField27 string `json:"custom_field_27,omitempty"` CustomField28 string `json:"custom_field_28,omitempty"` CustomField29 string `json:"custom_field_29,omitempty"` CustomField30 string `json:"custom_field_30,omitempty"` CustomField31 string `json:"custom_field_31,omitempty"` CustomField32 string `json:"custom_field_32,omitempty"` CustomField33 string `json:"custom_field_33,omitempty"` CustomField34 string `json:"custom_field_34,omitempty"` CustomField35 string `json:"custom_field_35,omitempty"` CustomField36 string `json:"custom_field_36,omitempty"` CustomField37 string `json:"custom_field_37,omitempty"` CustomField38 string `json:"custom_field_38,omitempty"` CustomField39 string `json:"custom_field_39,omitempty"` CustomField40 string `json:"custom_field_40,omitempty"` CustomField41 string `json:"custom_field_41,omitempty"` CustomField42 string `json:"custom_field_42,omitempty"` CustomField43 string `json:"custom_field_43,omitempty"` CustomField44 string `json:"custom_field_44,omitempty"` CustomField45 string `json:"custom_field_45,omitempty"` CustomField46 string `json:"custom_field_46,omitempty"` CustomField47 string `json:"custom_field_47,omitempty"` CustomField48 string `json:"custom_field_48,omitempty"` CustomField49 string `json:"custom_field_49,omitempty"` CustomField50 string `json:"custom_field_50,omitempty"` CustomPlanField1 string `json:"custom_plan_field_1,omitempty"` CustomPlanField2 string `json:"custom_plan_field_2,omitempty"` CustomPlanField3 string `json:"custom_plan_field_3,omitempty"` CustomPlanField4 string `json:"custom_plan_field_4,omitempty"` CustomPlanField5 string `json:"custom_plan_field_5,omitempty"` CustomPlanField6 string `json:"custom_plan_field_6,omitempty"` CustomPlanField7 string `json:"custom_plan_field_7,omitempty"` CustomPlanField8 string `json:"custom_plan_field_8,omitempty"` CustomPlanField9 string `json:"custom_plan_field_9,omitempty"` CustomPlanField10 string `json:"custom_plan_field_10,omitempty"` PriorityLabel PriorityLabel `json:"priority_label,omitempty"` // 优先级 }
Task 任务
type TaskChange ¶
type TaskChange struct { ID string `json:"id,omitempty"` WorkspaceID string `json:"workspace_id,omitempty"` AppID string `json:"app_id,omitempty"` WorkitemTypeID string `json:"workitem_type_id,omitempty"` Creator string `json:"creator,omitempty"` Created string `json:"created,omitempty"` ChangeSummary string `json:"change_summary,omitempty"` Comment string `json:"comment,omitempty"` Changes string `json:"changes,omitempty"` EntityType string `json:"entity_type,omitempty"` ChangeType string `json:"change_type,omitempty"` ChangeTypeText string `json:"change_type_text,omitempty"` FieldChanges []TaskChangeFieldChange `json:"field_changes,omitempty"` TaskID string `json:"task_id,omitempty"` }
type TaskChangeFieldChange ¶
type TaskChangeFieldChange struct { Field string `json:"field,omitempty"` ValueBefore string `json:"value_before,omitempty"` ValueAfter string `json:"value_after,omitempty"` ValueBeforeParsed string `json:"value_before_parsed,omitempty"` ValueAfterParsed string `json:"value_after_parsed,omitempty"` FieldLabel string `json:"field_label,omitempty"` }
type TaskFieldsInfo ¶
type TaskFieldsInfo struct { Name string `json:"name,omitempty"` // name HTMLType TaskFieldsInfoHTMLType `json:"html_type,omitempty"` // 类型 Label string `json:"label,omitempty"` // 中文名称 Options []TaskFieldsInfoOption `json:"options,omitempty"` // 候选值 ColorOptions []TaskFieldsInfoColorOption `json:"color_options,omitempty"` PureOptions []TaskFieldsInfoPureOption `json:"pure_options,omitempty"` }
type TaskFieldsInfoHTMLType ¶
type TaskFieldsInfoHTMLType string
const ( TaskFieldsInfoHTMLTypeInput TaskFieldsInfoHTMLType = "input" TaskFieldsInfoHTMLTypeSelect TaskFieldsInfoHTMLType = "select" TaskFieldsInfoHTMLTypeRichEdit TaskFieldsInfoHTMLType = "rich_edit" TaskFieldsInfoHTMLTypeUserChooser TaskFieldsInfoHTMLType = "user_chooser" TaskFieldsInfoHTMLTypeDatetime TaskFieldsInfoHTMLType = "datetime" TaskFieldsInfoHTMLTypeFloat TaskFieldsInfoHTMLType = "float" TaskFieldsInfoHTMLTypeMixChooser TaskFieldsInfoHTMLType = "mix_chooser" TaskFieldsInfoHTMLTypeDateInput TaskFieldsInfoHTMLType = "dateinput" TaskFieldsInfoHTMLTypeCheckbox TaskFieldsInfoHTMLType = "checkbox" TaskFieldsInfoHTMLTypeMultiSelect TaskFieldsInfoHTMLType = "multi_select" )
type TaskFieldsInfoOption ¶
type TaskFieldsInfoPureOption ¶
type TaskFieldsInfoPureOption struct { ParentID string `json:"parent_id,omitempty"` WorkspaceID string `json:"workspace_id,omitempty"` Sort string `json:"sort,omitempty"` OriginName string `json:"origin_name,omitempty"` Value string `json:"value,omitempty"` Label string `json:"label,omitempty"` Panel int `json:"panel,omitempty"` }
type TaskService ¶
type TaskService interface { // GetTaskChanges 获取任务变更历史 // // https://open.tapd.cn/document/api-doc/API%E6%96%87%E6%A1%A3/api_reference/task/get_task_changes.html GetTaskChanges(ctx context.Context, request *GetTaskChangesRequest, opts ...RequestOption) ([]*TaskChange, *Response, error) // GetTaskChangesCount 获取任务变更次数 // // https://open.tapd.cn/document/api-doc/API%E6%96%87%E6%A1%A3/api_reference/task/get_task_changes_count.html GetTaskChangesCount(ctx context.Context, request *GetTaskChangesCountRequest, opts ...RequestOption) (int, *Response, error) // GetTasks 获取任务 // // https://open.tapd.cn/document/api-doc/API%E6%96%87%E6%A1%A3/api_reference/task/get_tasks.html GetTasks(ctx context.Context, request *GetTasksRequest, opts ...RequestOption) ([]*Task, *Response, error) // GetTasksCount 获取任务数量 // // https://open.tapd.cn/document/api-doc/API%E6%96%87%E6%A1%A3/api_reference/task/get_tasks_count.html GetTasksCount(ctx context.Context, request *GetTasksCountRequest, opts ...RequestOption) (int, *Response, error) // GetTaskFieldsInfo 获取任务字段信息 // // https://open.tapd.cn/document/api-doc/API%E6%96%87%E6%A1%A3/api_reference/task/get_task_fields_info.html GetTaskFieldsInfo(ctx context.Context, request *GetTaskFieldsInfoRequest, opts ...RequestOption) ([]*TaskFieldsInfo, *Response, error) }
TaskService 任务服务
func NewTaskService ¶ added in v0.12.0
func NewTaskService(client *Client) TaskService
type TaskStatus ¶
type TaskStatus string
TaskStatus 任务状态
const ( TaskStatusOpen TaskStatus = "open" // 未开始 TaskStatusProgressing TaskStatus = "progressing" // 进行中 TaskStatusDone TaskStatus = "done" // 已完成 )
func (TaskStatus) String ¶ added in v0.7.0
func (s TaskStatus) String() string
type Timesheet ¶
type Timesheet struct { ID string `json:"id,omitempty"` // id EntityType EntityType `json:"entity_type,omitempty"` // 对象类型,如story、task、bug等 EntityID string `json:"entity_id,omitempty"` // 对象ID Timespent string `json:"timespent,omitempty"` // 花费工时 Spentdate string `json:"spentdate,omitempty"` // 花费日期 Owner string `json:"owner,omitempty"` // 花费创建人 Created string `json:"created,omitempty"` // 创建时间 Modified string `json:"modified,omitempty"` // 最后修改时间 WorkspaceID string `json:"workspace_id,omitempty"` // 项目ID Memo string `json:"memo,omitempty"` // 花费描述 IsDelete string `json:"is_delete,omitempty"` // 是否已删除 }
type TimesheetService ¶
type TimesheetService interface { // CreateTimesheet 创建工时花费 // // https://open.tapd.cn/document/api-doc/API%E6%96%87%E6%A1%A3/api_reference/timesheet/add_timesheet.html CreateTimesheet(ctx context.Context, request *CreateTimesheetRequest, opts ...RequestOption) (*Timesheet, *Response, error) // GetTimesheets 获取工时花费 // // https://open.tapd.cn/document/api-doc/API%E6%96%87%E6%A1%A3/api_reference/timesheet/get_timesheets.html GetTimesheets(ctx context.Context, request *GetTimesheetsRequest, opts ...RequestOption) ([]*Timesheet, *Response, error) // GetTimesheetsCount 获取工时花费的数量 // // https://open.tapd.cn/document/api-doc/API%E6%96%87%E6%A1%A3/api_reference/timesheet/get_timesheets_count.html GetTimesheetsCount(ctx context.Context, request *GetTimesheetsCountRequest, opts ...RequestOption) (int, *Response, error) // UpdateTimesheet 更新工时花费 // // https://open.tapd.cn/document/api-doc/API%E6%96%87%E6%A1%A3/api_reference/timesheet/update_timesheet.html UpdateTimesheet(ctx context.Context, request *UpdateTimesheetRequest, opts ...RequestOption) (*Timesheet, *Response, error) }
func NewTimesheetService ¶ added in v0.12.0
func NewTimesheetService(client *Client) TimesheetService
type UpdateBugRequest ¶ added in v0.8.0
type UpdateBugRequest struct { ID *int64 `json:"id,omitempty"` // ID 支持多ID查询 Title *string `json:"title,omitempty"` // 标题 支持模糊匹配 Priority *string `json:"priority,omitempty"` // 优先级。为了兼容自定义优先级,请使用 priority_label 字段,详情参考:如何兼容自定义优先级 PriorityLabel *PriorityLabel `json:"priority_label,omitempty"` // 优先级。推荐使用这个字段 Severity *Enum[BugSeverity] `json:"severity,omitempty"` // 严重程度 支持枚举查询 Status *Enum[string] `json:"status,omitempty"` // 状态 支持不等于查询、枚举查询 VStatus *string `json:"v_status,omitempty"` // 状态(支持传入中文状态名称) Label *Enum[string] `json:"label,omitempty"` // 标签查询 支持枚举查询 IterationID *Enum[string] `json:"iteration_id,omitempty"` // 迭代 支持枚举查询 Module *Enum[string] `json:"module,omitempty"` // 模块 支持枚举查询 ReleaseID *int `json:"release_id,omitempty"` // 发布计划 VersionReport *Enum[string] `json:"version_report,omitempty"` // 发现版本 枚举查询 VersionTest *string `json:"version_test,omitempty"` // 验证版本 VersionFix *string `json:"version_fix,omitempty"` // 合入版本 VersionClose *string `json:"version_close,omitempty"` // 关闭版本 BaselineFind *string `json:"baseline_find,omitempty"` // 发现基线 BaselineJoin *string `json:"baseline_join,omitempty"` // 合入基线 BaselineTest *string `json:"baseline_test,omitempty"` // 验证基线 BaselineClose *string `json:"baseline_close,omitempty"` // 关闭基线 Feature *string `json:"feature,omitempty"` // 特性 CurrentOwner *string `json:"current_owner,omitempty"` // 处理人 支持模糊匹配 CC *string `json:"cc,omitempty"` // 抄送人 Reporter *Multi[string] `json:"reporter,omitempty"` // 创建人 支持多人员查询 Participator *Multi[string] `json:"participator,omitempty"` // 参与人 支持多人员查询 TE *string `json:"te,omitempty"` // 测试人员 支持模糊匹配 DE *string `json:"de,omitempty"` // 开发人员 支持模糊匹配 Auditer *string `json:"auditer,omitempty"` // 审核人 Confirmer *string `json:"confirmer,omitempty"` // 验证人 Fixer *string `json:"fixer,omitempty"` // 修复人 Closer *string `json:"closer,omitempty"` // 关闭人 LastModify *string `json:"lastmodify,omitempty"` // 最后修改人 Created *string `json:"created,omitempty"` // 创建时间 支持时间查询 InProgressTime *string `json:"in_progress_time,omitempty"` // 接受处理时间 支持时间查询 Resolved *string `json:"resolved,omitempty"` // 解决时间 支持时间查询 VerifyTime *string `json:"verify_time,omitempty"` // 验证时间 支持时间查询 Closed *string `json:"closed,omitempty"` // 关闭时间 支持时间查询 RejectTime *string `json:"reject_time,omitempty"` // 拒绝时间 支持时间查询 Modified *string `json:"modified,omitempty"` // 最后修改时间 支持时间查询 Begin *string `json:"begin,omitempty"` // 预计开始 Due *string `json:"due,omitempty"` // 预计结束 Deadline *string `json:"deadline,omitempty"` // 解决期限 OS *string `json:"os,omitempty"` // 操作系统 Platform *string `json:"platform,omitempty"` // 软件平台 TestMode *string `json:"testmode,omitempty"` // 测试方式 TestPhase *string `json:"testphase,omitempty"` // 测试阶段 TestType *string `json:"testtype,omitempty"` // 测试类型 Source *Enum[string] `json:"source,omitempty"` // 缺陷根源 支持枚举查询 BugType *string `json:"bugtype,omitempty"` // 缺陷类型 Frequency *Enum[string] `json:"frequency,omitempty"` // 重现规律 支持枚举查询 OriginPhase *string `json:"originphase,omitempty"` // 发现阶段 SourcePhase *string `json:"sourcephase,omitempty"` // 引入阶段 Resolution *Enum[string] `json:"resolution,omitempty"` // 解决方法 支持枚举查询 Estimate *int `json:"estimate,omitempty"` // 预计解决时间 Description *string `json:"description,omitempty"` // 详细描述 支持模糊匹配 WorkspaceID *int `json:"workspace_id,omitempty"` // 项目ID CustomFieldOne *string `json:"custom_field_one,omitempty"` // 自定义字段参数,具体字段名通过接口 获取缺陷自定义字段配置 获取 支持枚举查询 CustomFieldTwo *string `json:"custom_field_two,omitempty"` CustomFieldThree *string `json:"custom_field_three,omitempty"` CustomFieldFour *string `json:"custom_field_four,omitempty"` CustomFieldFive *string `json:"custom_field_five,omitempty"` CustomField6 *string `json:"custom_field_6,omitempty"` CustomField7 *string `json:"custom_field_7,omitempty"` CustomField8 *string `json:"custom_field_8,omitempty"` CustomField9 *string `json:"custom_field_9,omitempty"` CustomField10 *string `json:"custom_field_10,omitempty"` CustomField11 *string `json:"custom_field_11,omitempty"` CustomField12 *string `json:"custom_field_12,omitempty"` CustomField13 *string `json:"custom_field_13,omitempty"` CustomField14 *string `json:"custom_field_14,omitempty"` CustomField15 *string `json:"custom_field_15,omitempty"` CustomField16 *string `json:"custom_field_16,omitempty"` CustomField17 *string `json:"custom_field_17,omitempty"` CustomField18 *string `json:"custom_field_18,omitempty"` CustomField19 *string `json:"custom_field_19,omitempty"` CustomField20 *string `json:"custom_field_20,omitempty"` CustomField21 *string `json:"custom_field_21,omitempty"` CustomField22 *string `json:"custom_field_22,omitempty"` CustomField23 *string `json:"custom_field_23,omitempty"` CustomField24 *string `json:"custom_field_24,omitempty"` CustomField25 *string `json:"custom_field_25,omitempty"` CustomField26 *string `json:"custom_field_26,omitempty"` CustomField27 *string `json:"custom_field_27,omitempty"` CustomField28 *string `json:"custom_field_28,omitempty"` CustomField29 *string `json:"custom_field_29,omitempty"` CustomField30 *string `json:"custom_field_30,omitempty"` CustomField31 *string `json:"custom_field_31,omitempty"` CustomField32 *string `json:"custom_field_32,omitempty"` CustomField33 *string `json:"custom_field_33,omitempty"` CustomField34 *string `json:"custom_field_34,omitempty"` CustomField35 *string `json:"custom_field_35,omitempty"` CustomField36 *string `json:"custom_field_36,omitempty"` CustomField37 *string `json:"custom_field_37,omitempty"` CustomField38 *string `json:"custom_field_38,omitempty"` CustomField39 *string `json:"custom_field_39,omitempty"` CustomField40 *string `json:"custom_field_40,omitempty"` CustomField41 *string `json:"custom_field_41,omitempty"` CustomField42 *string `json:"custom_field_42,omitempty"` CustomField43 *string `json:"custom_field_43,omitempty"` CustomField44 *string `json:"custom_field_44,omitempty"` CustomField45 *string `json:"custom_field_45,omitempty"` CustomField46 *string `json:"custom_field_46,omitempty"` CustomField47 *string `json:"custom_field_47,omitempty"` CustomField48 *string `json:"custom_field_48,omitempty"` CustomField49 *string `json:"custom_field_49,omitempty"` CustomField50 *string `json:"custom_field_50,omitempty"` CustomField51 *string `json:"custom_field_51,omitempty"` CustomField52 *string `json:"custom_field_52,omitempty"` CustomField53 *string `json:"custom_field_53,omitempty"` CustomField54 *string `json:"custom_field_54,omitempty"` CustomField55 *string `json:"custom_field_55,omitempty"` CustomField56 *string `json:"custom_field_56,omitempty"` CustomField57 *string `json:"custom_field_57,omitempty"` CustomField58 *string `json:"custom_field_58,omitempty"` CustomField59 *string `json:"custom_field_59,omitempty"` CustomField60 *string `json:"custom_field_60,omitempty"` CustomField61 *string `json:"custom_field_61,omitempty"` CustomField62 *string `json:"custom_field_62,omitempty"` CustomField63 *string `json:"custom_field_63,omitempty"` CustomField64 *string `json:"custom_field_64,omitempty"` CustomField65 *string `json:"custom_field_65,omitempty"` CustomField66 *string `json:"custom_field_66,omitempty"` CustomField67 *string `json:"custom_field_67,omitempty"` CustomField68 *string `json:"custom_field_68,omitempty"` CustomField69 *string `json:"custom_field_69,omitempty"` CustomField70 *string `json:"custom_field_70,omitempty"` CustomField71 *string `json:"custom_field_71,omitempty"` CustomField72 *string `json:"custom_field_72,omitempty"` CustomField73 *string `json:"custom_field_73,omitempty"` CustomField74 *string `json:"custom_field_74,omitempty"` CustomField75 *string `json:"custom_field_75,omitempty"` CustomField76 *string `json:"custom_field_76,omitempty"` CustomField77 *string `json:"custom_field_77,omitempty"` CustomField78 *string `json:"custom_field_78,omitempty"` CustomField79 *string `json:"custom_field_79,omitempty"` CustomField80 *string `json:"custom_field_80,omitempty"` CustomField81 *string `json:"custom_field_81,omitempty"` CustomField82 *string `json:"custom_field_82,omitempty"` CustomField83 *string `json:"custom_field_83,omitempty"` CustomField84 *string `json:"custom_field_84,omitempty"` CustomField85 *string `json:"custom_field_85,omitempty"` CustomField86 *string `json:"custom_field_86,omitempty"` CustomField87 *string `json:"custom_field_87,omitempty"` CustomField88 *string `json:"custom_field_88,omitempty"` CustomField89 *string `json:"custom_field_89,omitempty"` CustomField90 *string `json:"custom_field_90,omitempty"` CustomField91 *string `json:"custom_field_91,omitempty"` CustomField92 *string `json:"custom_field_92,omitempty"` CustomField93 *string `json:"custom_field_93,omitempty"` CustomField94 *string `json:"custom_field_94,omitempty"` CustomField95 *string `json:"custom_field_95,omitempty"` CustomField96 *string `json:"custom_field_96,omitempty"` CustomField97 *string `json:"custom_field_97,omitempty"` CustomField98 *string `json:"custom_field_98,omitempty"` CustomField99 *string `json:"custom_field_99,omitempty"` CustomField100 *string `json:"custom_field_100,omitempty"` CustomField101 *string `json:"custom_field_101,omitempty"` CustomField102 *string `json:"custom_field_102,omitempty"` CustomField103 *string `json:"custom_field_103,omitempty"` CustomField104 *string `json:"custom_field_104,omitempty"` CustomField105 *string `json:"custom_field_105,omitempty"` CustomField106 *string `json:"custom_field_106,omitempty"` CustomField107 *string `json:"custom_field_107,omitempty"` CustomField108 *string `json:"custom_field_108,omitempty"` CustomField109 *string `json:"custom_field_109,omitempty"` CustomField110 *string `json:"custom_field_110,omitempty"` CustomField111 *string `json:"custom_field_111,omitempty"` CustomField112 *string `json:"custom_field_112,omitempty"` CustomField113 *string `json:"custom_field_113,omitempty"` CustomField114 *string `json:"custom_field_114,omitempty"` CustomField115 *string `json:"custom_field_115,omitempty"` CustomField116 *string `json:"custom_field_116,omitempty"` CustomField117 *string `json:"custom_field_117,omitempty"` CustomField118 *string `json:"custom_field_118,omitempty"` CustomField119 *string `json:"custom_field_119,omitempty"` CustomField120 *string `json:"custom_field_120,omitempty"` CustomField121 *string `json:"custom_field_121,omitempty"` CustomField122 *string `json:"custom_field_122,omitempty"` CustomField123 *string `json:"custom_field_123,omitempty"` CustomField124 *string `json:"custom_field_124,omitempty"` CustomField125 *string `json:"custom_field_125,omitempty"` CustomField126 *string `json:"custom_field_126,omitempty"` CustomField127 *string `json:"custom_field_127,omitempty"` CustomField128 *string `json:"custom_field_128,omitempty"` CustomField129 *string `json:"custom_field_129,omitempty"` CustomField130 *string `json:"custom_field_130,omitempty"` CustomField131 *string `json:"custom_field_131,omitempty"` CustomField132 *string `json:"custom_field_132,omitempty"` CustomField133 *string `json:"custom_field_133,omitempty"` CustomField134 *string `json:"custom_field_134,omitempty"` CustomField135 *string `json:"custom_field_135,omitempty"` CustomField136 *string `json:"custom_field_136,omitempty"` CustomField137 *string `json:"custom_field_137,omitempty"` CustomField138 *string `json:"custom_field_138,omitempty"` CustomField139 *string `json:"custom_field_139,omitempty"` CustomField140 *string `json:"custom_field_140,omitempty"` CustomField141 *string `json:"custom_field_141,omitempty"` CustomField142 *string `json:"custom_field_142,omitempty"` CustomField143 *string `json:"custom_field_143,omitempty"` CustomField144 *string `json:"custom_field_144,omitempty"` CustomField145 *string `json:"custom_field_145,omitempty"` CustomField146 *string `json:"custom_field_146,omitempty"` CustomField147 *string `json:"custom_field_147,omitempty"` CustomField148 *string `json:"custom_field_148,omitempty"` CustomField149 *string `json:"custom_field_149,omitempty"` CustomField150 *string `json:"custom_field_150,omitempty"` CustomPlanField1 *string `json:"custom_plan_field_1,omitempty"` // 自定义计划应用参数,具体字段名通过接口 获取自定义计划应用 获取 CustomPlanField2 *string `json:"custom_plan_field_2,omitempty"` CustomPlanField3 *string `json:"custom_plan_field_3,omitempty"` CustomPlanField4 *string `json:"custom_plan_field_4,omitempty"` CustomPlanField5 *string `json:"custom_plan_field_5,omitempty"` CustomPlanField6 *string `json:"custom_plan_field_6,omitempty"` CustomPlanField7 *string `json:"custom_plan_field_7,omitempty"` CustomPlanField8 *string `json:"custom_plan_field_8,omitempty"` CustomPlanField9 *string `json:"custom_plan_field_9,omitempty"` CustomPlanField10 *string `json:"custom_plan_field_10,omitempty"` }
type UpdateCommentRequest ¶
type UpdateIterationRequest ¶ added in v0.7.0
type UpdateIterationRequest struct { ID *int64 `json:"id,omitempty"` // [必须] ID WorkspaceID *int `json:"workspace_id,omitempty"` // [必须] 项目 ID CurrentUser *string `json:"current_user,omitempty"` // [必须]变更人 Name *string `json:"name,omitempty"` // 标题 支持模糊匹配 Description *string `json:"description,omitempty"` // 详细描述 StartDate *string `json:"startdate,omitempty"` // 开始时间 支持时间查询 EndDate *string `json:"enddate,omitempty"` // 结束时间 支持时间查询 Creator *string `json:"creator,omitempty"` // 创建人 Status *string `json:"status,omitempty"` // 状态(系统状态 open/done,自定义状态可传中文) Label *Enum[string] `json:"label,omitempty"` // 标签, 可传多个 CustomField1 *string `json:"custom_field_1,omitempty"` // 自定义字段参数 CustomField2 *string `json:"custom_field_2,omitempty"` // 自定义字段参数 CustomField3 *string `json:"custom_field_3,omitempty"` // 自定义字段参数 CustomField4 *string `json:"custom_field_4,omitempty"` // 自定义字段参数 CustomField5 *string `json:"custom_field_5,omitempty"` // 自定义字段参数 CustomField6 *string `json:"custom_field_6,omitempty"` // 自定义字段参数 CustomField7 *string `json:"custom_field_7,omitempty"` // 自定义字段参数 CustomField8 *string `json:"custom_field_8,omitempty"` // 自定义字段参数 CustomField9 *string `json:"custom_field_9,omitempty"` // 自定义字段参数 CustomField10 *string `json:"custom_field_10,omitempty"` // 自定义字段参数 CustomField11 *string `json:"custom_field_11,omitempty"` // 自定义字段参数 CustomField12 *string `json:"custom_field_12,omitempty"` // 自定义字段参数 CustomField13 *string `json:"custom_field_13,omitempty"` // 自定义字段参数 CustomField14 *string `json:"custom_field_14,omitempty"` // 自定义字段参数 CustomField15 *string `json:"custom_field_15,omitempty"` // 自定义字段参数 CustomField16 *string `json:"custom_field_16,omitempty"` // 自定义字段参数 CustomField17 *string `json:"custom_field_17,omitempty"` // 自定义字段参数 CustomField18 *string `json:"custom_field_18,omitempty"` // 自定义字段参数 CustomField19 *string `json:"custom_field_19,omitempty"` // 自定义字段参数 CustomField20 *string `json:"custom_field_20,omitempty"` // 自定义字段参数 CustomField21 *string `json:"custom_field_21,omitempty"` // 自定义字段参数 CustomField22 *string `json:"custom_field_22,omitempty"` // 自定义字段参数 CustomField23 *string `json:"custom_field_23,omitempty"` // 自定义字段参数 CustomField24 *string `json:"custom_field_24,omitempty"` // 自定义字段参数 CustomField25 *string `json:"custom_field_25,omitempty"` // 自定义字段参数 CustomField26 *string `json:"custom_field_26,omitempty"` // 自定义字段参数 CustomField27 *string `json:"custom_field_27,omitempty"` // 自定义字段参数 CustomField28 *string `json:"custom_field_28,omitempty"` // 自定义字段参数 CustomField29 *string `json:"custom_field_29,omitempty"` // 自定义字段参数 CustomField30 *string `json:"custom_field_30,omitempty"` // 自定义字段参数 CustomField31 *string `json:"custom_field_31,omitempty"` // 自定义字段参数 CustomField32 *string `json:"custom_field_32,omitempty"` // 自定义字段参数 CustomField33 *string `json:"custom_field_33,omitempty"` // 自定义字段参数 CustomField34 *string `json:"custom_field_34,omitempty"` // 自定义字段参数 CustomField35 *string `json:"custom_field_35,omitempty"` // 自定义字段参数 CustomField36 *string `json:"custom_field_36,omitempty"` // 自定义字段参数 CustomField37 *string `json:"custom_field_37,omitempty"` // 自定义字段参数 CustomField38 *string `json:"custom_field_38,omitempty"` // 自定义字段参数 CustomField39 *string `json:"custom_field_39,omitempty"` // 自定义字段参数 CustomField40 *string `json:"custom_field_40,omitempty"` // 自定义字段参数 CustomField41 *string `json:"custom_field_41,omitempty"` // 自定义字段参数 CustomField42 *string `json:"custom_field_42,omitempty"` // 自定义字段参数 CustomField43 *string `json:"custom_field_43,omitempty"` // 自定义字段参数 CustomField44 *string `json:"custom_field_44,omitempty"` // 自定义字段参数 CustomField45 *string `json:"custom_field_45,omitempty"` // 自定义字段参数 CustomField46 *string `json:"custom_field_46,omitempty"` // 自定义字段参数 CustomField47 *string `json:"custom_field_47,omitempty"` // 自定义字段参数 CustomField48 *string `json:"custom_field_48,omitempty"` // 自定义字段参数 CustomField49 *string `json:"custom_field_49,omitempty"` // 自定义字段参数 CustomField50 *string `json:"custom_field_50,omitempty"` // 自定义字段参数 }
type UpdateLabelRequest ¶
type UpdateLabelRequest struct { ID *int `json:"id"` // [必选]ID WorkspaceID *int `json:"workspace_id"` // [必选]项目ID Color *LabelColor `json:"color"` // 标签颜色 Modifier *string `json:"modifier"` // 更新人 }
type UpdateStoryRequest ¶
type UpdateStoryRequest struct { ID *int64 `json:"id"` // 必须 WorkspaceID *int `json:"workspace_id"` // 必须 Name *string `json:"name,omitempty"` // 标题 Priority *string `json:"priority,omitempty"` // 优先级。 PriorityLabel *PriorityLabel `json:"priority_label,omitempty"` // 优先级。推荐使用这个字段 BusinessValue *int `json:"business_value,omitempty"` // 业务价值 Status *string `json:"status,omitempty"` // 状态 VStatus *string `json:"v_status,omitempty"` // 中文状态名称 Version *string `json:"version,omitempty"` // 版本 Module *string `json:"module,omitempty"` // 模块 TestFocus *string `json:"test_focus,omitempty"` // 测试重点 Size *int `json:"size,omitempty"` // 规模 Owner *string `json:"owner,omitempty"` // 处理人 CurrentUser *string `json:"current_user,omitempty"` // 变更人 CC *string `json:"cc,omitempty"` // 抄送人 Developer *string `json:"developer,omitempty"` // 开发人员 Begin *string `json:"begin,omitempty"` // 预计开始 Due *string `json:"due,omitempty"` // 预计结束 IterationID *string `json:"iteration_id,omitempty"` // 迭代ID Effort *string `json:"effort,omitempty"` // 预估工时 EffortCompleted *string `json:"effort_completed,omitempty"` // 完成工时 Remain *float64 `json:"remain,omitempty"` // 剩余工时 Exceed *float64 `json:"exceed,omitempty"` // 超出工时 CategoryID *int64 `json:"category_id,omitempty"` // 需求分类ID ReleaseID *int `json:"release_id,omitempty"` // 发布计划ID Source *string `json:"source,omitempty"` // 来源 Type *string `json:"type,omitempty"` // 类型 Description *string `json:"description,omitempty"` // 详细描述 IsAutoCloseTask *int `json:"is_auto_close_task,omitempty"` // 自动关闭关联任务 Label *string `json:"label,omitempty"` // 标签 CustomFieldOne *string `json:"custom_field_one,omitempty"` CustomFieldTwo *string `json:"custom_field_two,omitempty"` CustomFieldThree *string `json:"custom_field_three,omitempty"` CustomFieldFour *string `json:"custom_field_four,omitempty"` CustomFieldFive *string `json:"custom_field_five,omitempty"` CustomFieldSix *string `json:"custom_field_six,omitempty"` CustomFieldSeven *string `json:"custom_field_seven,omitempty"` CustomFieldEight *string `json:"custom_field_eight,omitempty"` CustomField9 *string `json:"custom_field_9,omitempty"` CustomField10 *string `json:"custom_field_10,omitempty"` CustomField11 *string `json:"custom_field_11,omitempty"` CustomField12 *string `json:"custom_field_12,omitempty"` CustomField13 *string `json:"custom_field_13,omitempty"` CustomField14 *string `json:"custom_field_14,omitempty"` CustomField15 *string `json:"custom_field_15,omitempty"` CustomField16 *string `json:"custom_field_16,omitempty"` CustomField17 *string `json:"custom_field_17,omitempty"` CustomField18 *string `json:"custom_field_18,omitempty"` CustomField19 *string `json:"custom_field_19,omitempty"` CustomField20 *string `json:"custom_field_20,omitempty"` CustomField21 *string `json:"custom_field_21,omitempty"` CustomField22 *string `json:"custom_field_22,omitempty"` CustomField23 *string `json:"custom_field_23,omitempty"` CustomField24 *string `json:"custom_field_24,omitempty"` CustomField25 *string `json:"custom_field_25,omitempty"` CustomField26 *string `json:"custom_field_26,omitempty"` CustomField27 *string `json:"custom_field_27,omitempty"` CustomField28 *string `json:"custom_field_28,omitempty"` CustomField29 *string `json:"custom_field_29,omitempty"` CustomField30 *string `json:"custom_field_30,omitempty"` CustomField31 *string `json:"custom_field_31,omitempty"` CustomField32 *string `json:"custom_field_32,omitempty"` CustomField33 *string `json:"custom_field_33,omitempty"` CustomField34 *string `json:"custom_field_34,omitempty"` CustomField35 *string `json:"custom_field_35,omitempty"` CustomField36 *string `json:"custom_field_36,omitempty"` CustomField37 *string `json:"custom_field_37,omitempty"` CustomField38 *string `json:"custom_field_38,omitempty"` CustomField39 *string `json:"custom_field_39,omitempty"` CustomField40 *string `json:"custom_field_40,omitempty"` CustomField41 *string `json:"custom_field_41,omitempty"` CustomField42 *string `json:"custom_field_42,omitempty"` CustomField43 *string `json:"custom_field_43,omitempty"` CustomField44 *string `json:"custom_field_44,omitempty"` CustomField45 *string `json:"custom_field_45,omitempty"` CustomField46 *string `json:"custom_field_46,omitempty"` CustomField47 *string `json:"custom_field_47,omitempty"` CustomField48 *string `json:"custom_field_48,omitempty"` CustomField49 *string `json:"custom_field_49,omitempty"` CustomField50 *string `json:"custom_field_50,omitempty"` CustomField51 *string `json:"custom_field_51,omitempty"` CustomField52 *string `json:"custom_field_52,omitempty"` CustomField53 *string `json:"custom_field_53,omitempty"` CustomField54 *string `json:"custom_field_54,omitempty"` CustomField55 *string `json:"custom_field_55,omitempty"` CustomField56 *string `json:"custom_field_56,omitempty"` CustomField57 *string `json:"custom_field_57,omitempty"` CustomField58 *string `json:"custom_field_58,omitempty"` CustomField59 *string `json:"custom_field_59,omitempty"` CustomField60 *string `json:"custom_field_60,omitempty"` CustomField61 *string `json:"custom_field_61,omitempty"` CustomField62 *string `json:"custom_field_62,omitempty"` CustomField63 *string `json:"custom_field_63,omitempty"` CustomField64 *string `json:"custom_field_64,omitempty"` CustomField65 *string `json:"custom_field_65,omitempty"` CustomField66 *string `json:"custom_field_66,omitempty"` CustomField67 *string `json:"custom_field_67,omitempty"` CustomField68 *string `json:"custom_field_68,omitempty"` CustomField69 *string `json:"custom_field_69,omitempty"` CustomField70 *string `json:"custom_field_70,omitempty"` CustomField71 *string `json:"custom_field_71,omitempty"` CustomField72 *string `json:"custom_field_72,omitempty"` CustomField73 *string `json:"custom_field_73,omitempty"` CustomField74 *string `json:"custom_field_74,omitempty"` CustomField75 *string `json:"custom_field_75,omitempty"` CustomField76 *string `json:"custom_field_76,omitempty"` CustomField77 *string `json:"custom_field_77,omitempty"` CustomField78 *string `json:"custom_field_78,omitempty"` CustomField79 *string `json:"custom_field_79,omitempty"` CustomField80 *string `json:"custom_field_80,omitempty"` CustomField81 *string `json:"custom_field_81,omitempty"` CustomField82 *string `json:"custom_field_82,omitempty"` CustomField83 *string `json:"custom_field_83,omitempty"` CustomField84 *string `json:"custom_field_84,omitempty"` CustomField85 *string `json:"custom_field_85,omitempty"` CustomField86 *string `json:"custom_field_86,omitempty"` CustomField87 *string `json:"custom_field_87,omitempty"` CustomField88 *string `json:"custom_field_88,omitempty"` CustomField89 *string `json:"custom_field_89,omitempty"` CustomField90 *string `json:"custom_field_90,omitempty"` CustomField91 *string `json:"custom_field_91,omitempty"` CustomField92 *string `json:"custom_field_92,omitempty"` CustomField93 *string `json:"custom_field_93,omitempty"` CustomField94 *string `json:"custom_field_94,omitempty"` CustomField95 *string `json:"custom_field_95,omitempty"` CustomField96 *string `json:"custom_field_96,omitempty"` CustomField97 *string `json:"custom_field_97,omitempty"` CustomField98 *string `json:"custom_field_98,omitempty"` CustomField99 *string `json:"custom_field_99,omitempty"` CustomField100 *string `json:"custom_field_100,omitempty"` CustomField101 *string `json:"custom_field_101,omitempty"` CustomField102 *string `json:"custom_field_102,omitempty"` CustomField103 *string `json:"custom_field_103,omitempty"` CustomField104 *string `json:"custom_field_104,omitempty"` CustomField105 *string `json:"custom_field_105,omitempty"` CustomField106 *string `json:"custom_field_106,omitempty"` CustomField107 *string `json:"custom_field_107,omitempty"` CustomField108 *string `json:"custom_field_108,omitempty"` CustomField109 *string `json:"custom_field_109,omitempty"` CustomField110 *string `json:"custom_field_110,omitempty"` CustomField111 *string `json:"custom_field_111,omitempty"` CustomField112 *string `json:"custom_field_112,omitempty"` CustomField113 *string `json:"custom_field_113,omitempty"` CustomField114 *string `json:"custom_field_114,omitempty"` CustomField115 *string `json:"custom_field_115,omitempty"` CustomField116 *string `json:"custom_field_116,omitempty"` CustomField117 *string `json:"custom_field_117,omitempty"` CustomField118 *string `json:"custom_field_118,omitempty"` CustomField119 *string `json:"custom_field_119,omitempty"` CustomField120 *string `json:"custom_field_120,omitempty"` CustomField121 *string `json:"custom_field_121,omitempty"` CustomField122 *string `json:"custom_field_122,omitempty"` CustomField123 *string `json:"custom_field_123,omitempty"` CustomField124 *string `json:"custom_field_124,omitempty"` CustomField125 *string `json:"custom_field_125,omitempty"` CustomField126 *string `json:"custom_field_126,omitempty"` CustomField127 *string `json:"custom_field_127,omitempty"` CustomField128 *string `json:"custom_field_128,omitempty"` CustomField129 *string `json:"custom_field_129,omitempty"` CustomField130 *string `json:"custom_field_130,omitempty"` CustomField131 *string `json:"custom_field_131,omitempty"` CustomField132 *string `json:"custom_field_132,omitempty"` CustomField133 *string `json:"custom_field_133,omitempty"` CustomField134 *string `json:"custom_field_134,omitempty"` CustomField135 *string `json:"custom_field_135,omitempty"` CustomField136 *string `json:"custom_field_136,omitempty"` CustomField137 *string `json:"custom_field_137,omitempty"` CustomField138 *string `json:"custom_field_138,omitempty"` CustomField139 *string `json:"custom_field_139,omitempty"` CustomField140 *string `json:"custom_field_140,omitempty"` CustomField141 *string `json:"custom_field_141,omitempty"` CustomField142 *string `json:"custom_field_142,omitempty"` CustomField143 *string `json:"custom_field_143,omitempty"` CustomField144 *string `json:"custom_field_144,omitempty"` CustomField145 *string `json:"custom_field_145,omitempty"` CustomField146 *string `json:"custom_field_146,omitempty"` CustomField147 *string `json:"custom_field_147,omitempty"` CustomField148 *string `json:"custom_field_148,omitempty"` CustomField149 *string `json:"custom_field_149,omitempty"` CustomField150 *string `json:"custom_field_150,omitempty"` CustomField151 *string `json:"custom_field_151,omitempty"` CustomField152 *string `json:"custom_field_152,omitempty"` CustomField153 *string `json:"custom_field_153,omitempty"` CustomField154 *string `json:"custom_field_154,omitempty"` CustomField155 *string `json:"custom_field_155,omitempty"` CustomField156 *string `json:"custom_field_156,omitempty"` CustomField157 *string `json:"custom_field_157,omitempty"` CustomField158 *string `json:"custom_field_158,omitempty"` CustomField159 *string `json:"custom_field_159,omitempty"` CustomField160 *string `json:"custom_field_160,omitempty"` CustomField161 *string `json:"custom_field_161,omitempty"` CustomField162 *string `json:"custom_field_162,omitempty"` CustomField163 *string `json:"custom_field_163,omitempty"` CustomField164 *string `json:"custom_field_164,omitempty"` CustomField165 *string `json:"custom_field_165,omitempty"` CustomField166 *string `json:"custom_field_166,omitempty"` CustomField167 *string `json:"custom_field_167,omitempty"` CustomField168 *string `json:"custom_field_168,omitempty"` CustomField169 *string `json:"custom_field_169,omitempty"` CustomField170 *string `json:"custom_field_170,omitempty"` CustomField171 *string `json:"custom_field_171,omitempty"` CustomField172 *string `json:"custom_field_172,omitempty"` CustomField173 *string `json:"custom_field_173,omitempty"` CustomField174 *string `json:"custom_field_174,omitempty"` CustomField175 *string `json:"custom_field_175,omitempty"` CustomField176 *string `json:"custom_field_176,omitempty"` CustomField177 *string `json:"custom_field_177,omitempty"` CustomField178 *string `json:"custom_field_178,omitempty"` CustomField179 *string `json:"custom_field_179,omitempty"` CustomField180 *string `json:"custom_field_180,omitempty"` CustomField181 *string `json:"custom_field_181,omitempty"` CustomField182 *string `json:"custom_field_182,omitempty"` CustomField183 *string `json:"custom_field_183,omitempty"` CustomField184 *string `json:"custom_field_184,omitempty"` CustomField185 *string `json:"custom_field_185,omitempty"` CustomField186 *string `json:"custom_field_186,omitempty"` CustomField187 *string `json:"custom_field_187,omitempty"` CustomField188 *string `json:"custom_field_188,omitempty"` CustomField189 *string `json:"custom_field_189,omitempty"` CustomField190 *string `json:"custom_field_190,omitempty"` CustomField191 *string `json:"custom_field_191,omitempty"` CustomField192 *string `json:"custom_field_192,omitempty"` CustomField193 *string `json:"custom_field_193,omitempty"` CustomField194 *string `json:"custom_field_194,omitempty"` CustomField195 *string `json:"custom_field_195,omitempty"` CustomField196 *string `json:"custom_field_196,omitempty"` CustomField197 *string `json:"custom_field_197,omitempty"` CustomField198 *string `json:"custom_field_198,omitempty"` CustomField199 *string `json:"custom_field_199,omitempty"` CustomField200 *string `json:"custom_field_200,omitempty"` CustomPlanField1 *string `json:"custom_plan_field_1,omitempty"` CustomPlanField2 *string `json:"custom_plan_field_2,omitempty"` CustomPlanField3 *string `json:"custom_plan_field_3,omitempty"` CustomPlanField4 *string `json:"custom_plan_field_4,omitempty"` CustomPlanField5 *string `json:"custom_plan_field_5,omitempty"` CustomPlanField6 *string `json:"custom_plan_field_6,omitempty"` CustomPlanField7 *string `json:"custom_plan_field_7,omitempty"` CustomPlanField8 *string `json:"custom_plan_field_8,omitempty"` CustomPlanField9 *string `json:"custom_plan_field_9,omitempty"` CustomPlanField10 *string `json:"custom_plan_field_10,omitempty"` }
type UpdateTimesheetRequest ¶
type UpdateTimesheetRequest struct { ID *int64 `json:"id"` // [必须]工时花费ID Timespent *string `json:"timespent,omitempty"` // [可选]花费工时 Timeremain *string `json:"timeremain,omitempty"` // [可选]剩余工时 WorkspaceID *int `json:"workspace_id,omitempty"` // [必须]项目ID Memo *string `json:"memo,omitempty"` // [可选]花费描述 }
type User ¶ added in v0.12.0
type User struct { User string `json:"user"` RoleID []string `json:"role_id"` Name string `json:"name"` JoinProjectTime *string `json:"join_project_time"` RealJoinTime string `json:"real_join_time"` Status string `json:"status"` Allocation string `json:"allocation"` LeaveProjectTime *string `json:"leave_project_time"` }
type UserService ¶
type UserService interface { // GetRoles 获取角色ID对照关系 // // https://open.tapd.cn/document/api-doc/API%E6%96%87%E6%A1%A3/api_reference/user/get_roles.html GetRoles(ctx context.Context, request *GetRolesRequest, opts ...RequestOption) ([]*UserRole, *Response, error) }
func NewUserService ¶ added in v0.12.0
func NewUserService(client *Client) UserService
type WorkflowAllLastStep ¶ added in v0.7.0
type WorkflowAllLastStep struct { Key string `json:"key,omitempty"` // 工作流ID 或者 需求类别ID , 根据group_key确定 Status []*WorkflowAllLastStepStatus `json:"status,omitempty"` // 状态列表 }
type WorkflowAllLastStepStatus ¶ added in v0.7.0
type WorkflowService ¶ added in v0.7.0
type WorkflowService interface { // GetAllLastSteps 获取所有结束状态 // // https://open.tapd.cn/document/api-doc/API%E6%96%87%E6%A1%A3/api_reference/workflow/get_workflow_all_last_steps.html GetAllLastSteps(ctx context.Context, request *GetAllLastStepsRequest, opts ...RequestOption) ([]*WorkflowAllLastStep, *Response, error) }
WorkflowService 工作流
func NewWorkflowService ¶ added in v0.12.0
func NewWorkflowService(client *Client) WorkflowService
type WorkitemTemplate ¶ added in v0.6.0
type WorkitemType ¶ added in v0.6.0
type WorkspaceService ¶
type WorkspaceService interface { // GetUsers 获取指定项目成员 // // https://open.tapd.cn/document/api-doc/API%E6%96%87%E6%A1%A3/api_reference/workspace/users.html GetUsers( ctx context.Context, request *GetUsersRequest, opts ...RequestOption, ) ([]*User, *Response, error) // GetMemberActivityLog 获取成员活动日志 // // https://open.tapd.cn/document/api-doc/API%E6%96%87%E6%A1%A3/api_reference/workspace/member_activity_log.html GetMemberActivityLog( ctx context.Context, request *GetMemberActivityLogRequest, opts ...RequestOption, ) (*GetMemberActivityLogResponse, *Response, error) }
func NewWorkspaceService ¶ added in v0.12.0
func NewWorkspaceService(client *Client) WorkspaceService