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
- func (s *AttachmentService) GetAttachmentDownloadURL(ctx context.Context, request *GetAttachmentDownloadURLRequest, ...) (*Attachment, *Response, error)
- func (s *AttachmentService) GetAttachments(ctx context.Context, request *GetAttachmentsRequest, opts ...RequestOption) ([]*Attachment, *Response, error)
- func (s *AttachmentService) GetDocumentDownloadURL(ctx context.Context, request *GetDocumentDownloadURLRequest, ...) (*DocumentAttachment, *Response, error)
- func (s *AttachmentService) GetImageDownloadURL(ctx context.Context, request *GetImageDownloadURLRequest, ...) (*ImageAttachment, *Response, error)
- type Bug
- type BugService
- type Client
- type ClientOption
- type Comment
- type CommentEntryType
- type CommentService
- func (s *CommentService) CreateComment(ctx context.Context, request *CreateCommentRequest, opts ...RequestOption) (*Comment, *Response, error)
- func (s *CommentService) GetComments(ctx context.Context, request *GetCommentsRequest, opts ...RequestOption) ([]*Comment, *Response, error)
- func (s *CommentService) GetCommentsCount(ctx context.Context, request *GetCommentsCountRequest, opts ...RequestOption) (int, *Response, error)
- func (s *CommentService) UpdateComment(ctx context.Context, request *UpdateCommentRequest, opts ...RequestOption) (*Comment, *Response, error)
- type CountResponse
- type CreateCommentRequest
- type CreateIterationRequest
- type CreateLabelRequest
- type CreateStoryRequest
- type CreateTimesheetRequest
- type CustomFields
- type CustomFieldsRequest
- type CustomPlanFields
- type CustomPlanFieldsRequest
- 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 GetWorkitemTypesRequest
- type GetWorkspaceSettingRequest
- type GetWorkspaceSettingResponse
- type ImageAttachment
- type Iteration
- type IterationService
- func (s *IterationService) CreateIteration(ctx context.Context, request *CreateIterationRequest, opts ...RequestOption) (*Iteration, *Response, error)
- func (s *IterationService) GetIterations(ctx context.Context, request *GetIterationsRequest, opts ...RequestOption) ([]*Iteration, *Response, error)
- func (s *IterationService) GetIterationsCount(ctx context.Context, request *GetIterationsCountRequest, opts ...RequestOption) (int, *Response, error)
- func (s *IterationService) GetTemplateList(ctx context.Context, request *GetTemplateListRequest, opts ...RequestOption) ([]*WorkitemTemplate, *Response, error)
- func (s *IterationService) GetWorkitemTypes(ctx context.Context, request *GetWorkitemTypesRequest, opts ...RequestOption) ([]*WorkitemType, *Response, error)
- func (s *IterationService) UpdateIteration(ctx context.Context, request *UpdateIterationRequest, opts ...RequestOption) (*Iteration, *Response, error)
- type Label
- type LabelColor
- type LabelPool
- type LabelService
- func (s *LabelService) CreateLabel(ctx context.Context, request *CreateLabelRequest, opts ...RequestOption) (*Label, *Response, error)
- func (s *LabelService) GetLabels(ctx context.Context, request *GetLabelsRequest, opts ...RequestOption) ([]*Label, *Response, error)
- func (s *LabelService) GetLabelsCount(ctx context.Context, request *GetLabelCountRequest, opts ...RequestOption) (int, *Response, error)
- func (s *LabelService) UpdateLabel(ctx context.Context, request *UpdateLabelRequest, opts ...RequestOption) (*Label, *Response, error)
- 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 WithRequestBasicAuth(username, password 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
- func (s *StoryService) CreateStory(ctx context.Context, request *CreateStoryRequest, opts ...RequestOption) (*Story, *Response, error)
- func (s *StoryService) GetConvertStoryIDsToQueryToken(ctx context.Context, request *GetConvertStoryIDsToQueryTokenRequest, ...) (*GetConvertStoryIDsToQueryTokenResponse, *Response, error)
- func (s *StoryService) GetRemovedStories(ctx context.Context, request *GetRemovedStoriesRequest, opts ...RequestOption) ([]*RemovedStory, *Response, error)
- func (s *StoryService) GetStories(ctx context.Context, request *GetStoriesRequest, opts ...RequestOption) ([]*Story, *Response, error)
- func (s *StoryService) GetStoriesCount(ctx context.Context, request *GetStoriesCountRequest, opts ...RequestOption) (int, *Response, error)
- func (s *StoryService) GetStoriesCountByCategories(ctx context.Context, request *GetStoriesCountByCategoriesRequest, ...) ([]*StoriesCountByCategory, *Response, error)
- func (s *StoryService) GetStoryCategories(ctx context.Context, request *GetStoryCategoriesRequest, opts ...RequestOption) ([]*StoryCategory, *Response, error)
- func (s *StoryService) GetStoryCategoriesCount(ctx context.Context, request *GetStoryCategoriesCountRequest, ...) (int, *Response, error)
- func (s *StoryService) GetStoryChanges(ctx context.Context, request *GetStoryChangesRequest, opts ...RequestOption) ([]*StoryChange, *Response, error)
- func (s *StoryService) GetStoryCustomFieldsSettings(ctx context.Context, request *GetStoryCustomFieldsSettingsRequest, ...) ([]*StoryCustomFieldsSetting, *Response, error)
- func (s *StoryService) GetStoryRelatedBugs(ctx context.Context, request *GetStoryRelatedBugsRequest, ...) ([]*StoryRelatedBug, *Response, error)
- func (s *StoryService) GetStoryTemplateFields(ctx context.Context, request *GetStoryTemplateFieldsRequest, ...) ([]*StoryTemplateField, *Response, error)
- func (s *StoryService) GetStoryTemplates(ctx context.Context, request *GetStoryTemplatesRequest, opts ...RequestOption) ([]*StoryTemplate, *Response, error)
- func (s *StoryService) UpdateStory(ctx context.Context, request *UpdateStoryRequest, opts ...RequestOption) (*Story, *Response, error)
- type StoryStatus
- type StoryTemplate
- type StoryTemplateField
- type Task
- type TaskChange
- type TaskChangeFieldChange
- type TaskFieldsInfo
- type TaskFieldsInfoColorOption
- type TaskFieldsInfoHTMLType
- type TaskFieldsInfoOption
- type TaskFieldsInfoPureOption
- type TaskService
- func (s *TaskService) GetTaskChanges(ctx context.Context, request *GetTaskChangesRequest, opts ...RequestOption) ([]*TaskChange, *Response, error)
- func (s *TaskService) GetTaskChangesCount(ctx context.Context, request *GetTaskChangesCountRequest, ...) (int, *Response, error)
- func (s *TaskService) GetTaskFieldsInfo(ctx context.Context, request *GetTaskFieldsInfoRequest, opts ...RequestOption) ([]*TaskFieldsInfo, *Response, error)
- func (s *TaskService) GetTasks(ctx context.Context, request *GetTasksRequest, opts ...RequestOption) ([]*Task, *Response, error)
- func (s *TaskService) GetTasksCount(ctx context.Context, request *GetTasksCountRequest, opts ...RequestOption) (int, *Response, error)
- type TaskStatus
- type Timesheet
- type TimesheetService
- func (s *TimesheetService) CreateTimesheet(ctx context.Context, request *CreateTimesheetRequest, opts ...RequestOption) (*Timesheet, *Response, error)
- func (s *TimesheetService) GetTimesheets(ctx context.Context, request *GetTimesheetsRequest, opts ...RequestOption) ([]*Timesheet, *Response, error)
- func (s *TimesheetService) GetTimesheetsCount(ctx context.Context, request *GetTimesheetsCountRequest, opts ...RequestOption) (int, *Response, error)
- func (s *TimesheetService) UpdateTimesheet(ctx context.Context, request *UpdateTimesheetRequest, opts ...RequestOption) (*Timesheet, *Response, error)
- type UpdateCommentRequest
- type UpdateIterationRequest
- type UpdateLabelRequest
- type UpdateStoryRequest
- type UpdateTimesheetRequest
- 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 struct {
// contains filtered or unexported fields
}
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 (*AttachmentService) GetAttachmentDownloadURL ¶
func (s *AttachmentService) GetAttachmentDownloadURL( ctx context.Context, request *GetAttachmentDownloadURLRequest, opts ...RequestOption, ) (*Attachment, *Response, error)
GetAttachmentDownloadURL 获取单个附件下载链接
func (*AttachmentService) GetAttachments ¶
func (s *AttachmentService) GetAttachments( ctx context.Context, request *GetAttachmentsRequest, opts ...RequestOption, ) ([]*Attachment, *Response, error)
GetAttachments 获取附件
func (*AttachmentService) GetDocumentDownloadURL ¶
func (s *AttachmentService) GetDocumentDownloadURL( ctx context.Context, request *GetDocumentDownloadURLRequest, opts ...RequestOption, ) (*DocumentAttachment, *Response, error)
GetDocumentDownloadURL 获取单个文档下载链接
func (*AttachmentService) GetImageDownloadURL ¶
func (s *AttachmentService) GetImageDownloadURL( ctx context.Context, request *GetImageDownloadURLRequest, opts ...RequestOption, ) (*ImageAttachment, *Response, error)
GetImageDownloadURL 获取单个图片下载链接
https://open.tapd.cn/document/api-doc/API%E6%96%87%E6%A1%A3/api_reference/attachment/get_image.html
type Bug ¶
type Bug struct {
ID string `json:"id"`
Title string `json:"title"`
Description string `json:"description"`
Priority string `json:"priority"`
Severity string `json:"severity"`
Module string `json:"module"`
Status string `json:"status"`
Reporter string `json:"reporter"`
Created string `json:"created"`
BugType string `json:"bugtype"`
Resolved string `json:"resolved"`
Closed string `json:"closed"`
Modified string `json:"modified"`
LastModify string `json:"lastmodify"`
Auditer string `json:"auditer"`
De string `json:"de"`
Fixer string `json:"fixer"`
VersionTest string `json:"version_test"`
VersionReport string `json:"version_report"`
VersionClose string `json:"version_close"`
VersionFix string `json:"version_fix"`
BaselineFind string `json:"baseline_find"`
BaselineJoin string `json:"baseline_join"`
BaselineClose string `json:"baseline_close"`
BaselineTest string `json:"baseline_test"`
SourcePhase string `json:"sourcephase"`
Te string `json:"te"`
CurrentOwner string `json:"current_owner"`
IterationID string `json:"iteration_id"`
Resolution string `json:"resolution"`
Source string `json:"source"`
OriginPhase string `json:"originphase"`
Confirmer string `json:"confirmer"`
Milestone string `json:"milestone"`
Participator string `json:"participator"`
Closer string `json:"closer"`
Platform string `json:"platform"`
Os string `json:"os"`
TestType string `json:"testtype"`
TestPhase string `json:"testphase"`
Frequency string `json:"frequency"`
CC string `json:"cc"`
RegressionNumber string `json:"regression_number"`
Flows string `json:"flows"`
Feature string `json:"feature"`
TestMode string `json:"testmode"`
Estimate string `json:"estimate"`
IssueID string `json:"issue_id"`
CreatedFrom string `json:"created_from"`
ReleaseID string `json:"release_id"`
VerifyTime string `json:"verify_time"`
RejectTime string `json:"reject_time"`
ReopenTime string `json:"reopen_time"`
AuditTime string `json:"audit_time"`
SuspendTime string `json:"suspend_time"`
Due string `json:"due"`
Begin string `json:"begin"`
Deadline string `json:"deadline"`
InProgressTime string `json:"in_progress_time"`
AssignedTime string `json:"assigned_time"`
TemplateID string `json:"template_id"`
StoryID string `json:"story_id"`
Label string `json:"label"`
Size string `json:"size"`
Effort string `json:"effort"`
EffortCompleted string `json:"effort_completed"`
Exceed string `json:"exceed"`
Remain string `json:"remain"`
CustomFieldOne string `json:"custom_field_one"`
CustomFieldTwo string `json:"custom_field_two"`
CustomFieldThree string `json:"custom_field_three"`
CustomFieldFour string `json:"custom_field_four"`
CustomFieldFive string `json:"custom_field_five"`
CustomField6 string `json:"custom_field_6"`
CustomField7 string `json:"custom_field_7"`
CustomField8 string `json:"custom_field_8"`
CustomField9 string `json:"custom_field_9"`
CustomField10 string `json:"custom_field_10"`
CustomField11 string `json:"custom_field_11"`
CustomField12 string `json:"custom_field_12"`
CustomField13 string `json:"custom_field_13"`
CustomField14 string `json:"custom_field_14"`
CustomField15 string `json:"custom_field_15"`
CustomField16 string `json:"custom_field_16"`
CustomField17 string `json:"custom_field_17"`
CustomField18 string `json:"custom_field_18"`
CustomField19 string `json:"custom_field_19"`
CustomField20 string `json:"custom_field_20"`
CustomField21 string `json:"custom_field_21"`
CustomField22 string `json:"custom_field_22"`
CustomField23 string `json:"custom_field_23"`
CustomField24 string `json:"custom_field_24"`
CustomField25 string `json:"custom_field_25"`
CustomField26 string `json:"custom_field_26"`
CustomField27 string `json:"custom_field_27"`
CustomField28 string `json:"custom_field_28"`
CustomField29 string `json:"custom_field_29"`
CustomField30 string `json:"custom_field_30"`
CustomField31 string `json:"custom_field_31"`
CustomField32 string `json:"custom_field_32"`
CustomField33 string `json:"custom_field_33"`
CustomField34 string `json:"custom_field_34"`
CustomField35 string `json:"custom_field_35"`
CustomField36 string `json:"custom_field_36"`
CustomField37 string `json:"custom_field_37"`
CustomField38 string `json:"custom_field_38"`
CustomField39 string `json:"custom_field_39"`
CustomField40 string `json:"custom_field_40"`
CustomField41 string `json:"custom_field_41"`
CustomField42 string `json:"custom_field_42"`
CustomField43 string `json:"custom_field_43"`
CustomField44 string `json:"custom_field_44"`
CustomField45 string `json:"custom_field_45"`
CustomField46 string `json:"custom_field_46"`
CustomField47 string `json:"custom_field_47"`
CustomField48 string `json:"custom_field_48"`
CustomField49 string `json:"custom_field_49"`
CustomField50 string `json:"custom_field_50"`
CustomField51 string `json:"custom_field_51"`
CustomField52 string `json:"custom_field_52"`
CustomField53 string `json:"custom_field_53"`
CustomField54 string `json:"custom_field_54"`
CustomField55 string `json:"custom_field_55"`
CustomField56 string `json:"custom_field_56"`
CustomField57 string `json:"custom_field_57"`
CustomField58 string `json:"custom_field_58"`
CustomField59 string `json:"custom_field_59"`
CustomField60 string `json:"custom_field_60"`
CustomField61 string `json:"custom_field_61"`
CustomField62 string `json:"custom_field_62"`
CustomField63 string `json:"custom_field_63"`
CustomField64 string `json:"custom_field_64"`
CustomField65 string `json:"custom_field_65"`
CustomField66 string `json:"custom_field_66"`
CustomField67 string `json:"custom_field_67"`
CustomField68 string `json:"custom_field_68"`
CustomField69 string `json:"custom_field_69"`
CustomField70 string `json:"custom_field_70"`
CustomField71 string `json:"custom_field_71"`
CustomField72 string `json:"custom_field_72"`
CustomField73 string `json:"custom_field_73"`
CustomField74 string `json:"custom_field_74"`
CustomField75 string `json:"custom_field_75"`
CustomField76 string `json:"custom_field_76"`
CustomField77 string `json:"custom_field_77"`
CustomField78 string `json:"custom_field_78"`
CustomField79 string `json:"custom_field_79"`
CustomField80 string `json:"custom_field_80"`
CustomField81 string `json:"custom_field_81"`
CustomField82 string `json:"custom_field_82"`
CustomField83 string `json:"custom_field_83"`
CustomField84 string `json:"custom_field_84"`
CustomField85 string `json:"custom_field_85"`
CustomField86 string `json:"custom_field_86"`
CustomField87 string `json:"custom_field_87"`
CustomField88 string `json:"custom_field_88"`
CustomField89 string `json:"custom_field_89"`
CustomField90 string `json:"custom_field_90"`
CustomField91 string `json:"custom_field_91"`
CustomField92 string `json:"custom_field_92"`
CustomField93 string `json:"custom_field_93"`
CustomField94 string `json:"custom_field_94"`
CustomField95 string `json:"custom_field_95"`
CustomField96 string `json:"custom_field_96"`
CustomField97 string `json:"custom_field_97"`
CustomField98 string `json:"custom_field_98"`
CustomField99 string `json:"custom_field_99"`
CustomField100 string `json:"custom_field_100"`
CustomField101 string `json:"custom_field_101"`
CustomField102 string `json:"custom_field_102"`
CustomField103 string `json:"custom_field_103"`
CustomField104 string `json:"custom_field_104"`
CustomField105 string `json:"custom_field_105"`
CustomField106 string `json:"custom_field_106"`
CustomField107 string `json:"custom_field_107"`
CustomField108 string `json:"custom_field_108"`
CustomField109 string `json:"custom_field_109"`
CustomField110 string `json:"custom_field_110"`
CustomField111 string `json:"custom_field_111"`
CustomField112 string `json:"custom_field_112"`
CustomField113 string `json:"custom_field_113"`
CustomField114 string `json:"custom_field_114"`
CustomField115 string `json:"custom_field_115"`
CustomField116 string `json:"custom_field_116"`
CustomField117 string `json:"custom_field_117"`
CustomField118 string `json:"custom_field_118"`
CustomField119 string `json:"custom_field_119"`
CustomField120 string `json:"custom_field_120"`
CustomField121 string `json:"custom_field_121"`
CustomField122 string `json:"custom_field_122"`
CustomField123 string `json:"custom_field_123"`
CustomField124 string `json:"custom_field_124"`
CustomField125 string `json:"custom_field_125"`
CustomField126 string `json:"custom_field_126"`
CustomField127 string `json:"custom_field_127"`
CustomField128 string `json:"custom_field_128"`
CustomField129 string `json:"custom_field_129"`
CustomField130 string `json:"custom_field_130"`
CustomField131 string `json:"custom_field_131"`
CustomField132 string `json:"custom_field_132"`
CustomField133 string `json:"custom_field_133"`
CustomField134 string `json:"custom_field_134"`
CustomField135 string `json:"custom_field_135"`
CustomField136 string `json:"custom_field_136"`
CustomField137 string `json:"custom_field_137"`
CustomField138 string `json:"custom_field_138"`
CustomField139 string `json:"custom_field_139"`
CustomField140 string `json:"custom_field_140"`
CustomField141 string `json:"custom_field_141"`
CustomField142 string `json:"custom_field_142"`
CustomField143 string `json:"custom_field_143"`
CustomField144 string `json:"custom_field_144"`
CustomField145 string `json:"custom_field_145"`
CustomField146 string `json:"custom_field_146"`
CustomField147 string `json:"custom_field_147"`
CustomField148 string `json:"custom_field_148"`
CustomField149 string `json:"custom_field_149"`
CustomField150 string `json:"custom_field_150"`
CustomPlanField1 string `json:"custom_plan_field_1"`
CustomPlanField2 string `json:"custom_plan_field_2"`
CustomPlanField3 string `json:"custom_plan_field_3"`
CustomPlanField4 string `json:"custom_plan_field_4"`
CustomPlanField5 string `json:"custom_plan_field_5"`
CustomPlanField6 string `json:"custom_plan_field_6"`
CustomPlanField7 string `json:"custom_plan_field_7"`
CustomPlanField8 string `json:"custom_plan_field_8"`
CustomPlanField9 string `json:"custom_plan_field_9"`
CustomPlanField10 string `json:"custom_plan_field_10"`
PriorityLabel PriorityLabel `json:"priority_label"`
WorkspaceID string `json:"workspace_id"`
}
type BugService ¶
type BugService struct {
// contains filtered or unexported fields
}
BugService todo: add more methods
func (*BugService) GetBugs ¶
func (s *BugService) GetBugs(ctx context.Context, request *GetBugsRequest, opts ...RequestOption) ([]*Bug, *Response, error)
GetBugs 获取缺陷
https://open.tapd.cn/document/api-doc/API%E6%96%87%E6%A1%A3/api_reference/bug/get_bugs.html
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(username, password string, opts ...ClientOption) (*Client, error)
NewBasicAuthClient returns a new Tapd API client with basic authentication.
type ClientOption ¶
func WithBaseURL ¶
func WithBaseURL(urlStr string) ClientOption
WithBaseURL sets the baseURL for the client
func WithBasicAuth ¶
func WithBasicAuth(username, password string) ClientOption
WithBasicAuth sets the username and password for the client
func WithHTTPClient ¶
func WithHTTPClient(httpClient *http.Client) ClientOption
func WithUserAgent ¶
func WithUserAgent(userAgent string) ClientOption
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 struct {
// contains filtered or unexported fields
}
CommentService 评论服务
func (*CommentService) CreateComment ¶
func (s *CommentService) CreateComment( ctx context.Context, request *CreateCommentRequest, opts ...RequestOption, ) (*Comment, *Response, error)
CreateComment 添加评论接口
https://open.tapd.cn/document/api-doc/API%E6%96%87%E6%A1%A3/api_reference/comment/add_comment.html
func (*CommentService) GetComments ¶
func (s *CommentService) GetComments( ctx context.Context, request *GetCommentsRequest, 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
func (*CommentService) GetCommentsCount ¶
func (s *CommentService) GetCommentsCount( ctx context.Context, request *GetCommentsCountRequest, opts ...RequestOption, ) (int, *Response, error)
GetCommentsCount 获取评论数量
func (*CommentService) UpdateComment ¶
func (s *CommentService) UpdateComment( ctx context.Context, request *UpdateCommentRequest, opts ...RequestOption, ) (*Comment, *Response, error)
UpdateComment 更新评论接口
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 *int `json:"entry_id,omitempty"` // 评论所依附的业务对象实体id
ReplyID *int `json:"reply_id,omitempty"` // 评论回复的ID
RootID *int `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 *int `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 CustomFields ¶
type CustomFields struct {
CustomFieldOne string `url:"custom_field_one,omitempty" json:"custom_field_one,omitempty"`
CustomFieldTwo string `url:"custom_field_two,omitempty" json:"custom_field_two,omitempty"`
CustomFieldThree string `url:"custom_field_three,omitempty" json:"custom_field_three,omitempty"`
CustomFieldFour string `url:"custom_field_four,omitempty" json:"custom_field_four,omitempty"`
CustomFieldFive string `url:"custom_field_five,omitempty" json:"custom_field_five,omitempty"`
CustomFieldSix string `url:"custom_field_six,omitempty" json:"custom_field_six,omitempty"`
CustomFieldSeven string `url:"custom_field_seven,omitempty" json:"custom_field_seven,omitempty"`
CustomFieldEight string `url:"custom_field_eight,omitempty" json:"custom_field_eight,omitempty"`
CustomField9 string `url:"custom_field_9,omitempty" json:"custom_field_9,omitempty"`
CustomField10 string `url:"custom_field_10,omitempty" json:"custom_field_10,omitempty"`
CustomField11 string `url:"custom_field_11,omitempty" json:"custom_field_11,omitempty"`
CustomField12 string `url:"custom_field_12,omitempty" json:"custom_field_12,omitempty"`
CustomField13 string `url:"custom_field_13,omitempty" json:"custom_field_13,omitempty"`
CustomField14 string `url:"custom_field_14,omitempty" json:"custom_field_14,omitempty"`
CustomField15 string `url:"custom_field_15,omitempty" json:"custom_field_15,omitempty"`
CustomField16 string `url:"custom_field_16,omitempty" json:"custom_field_16,omitempty"`
CustomField17 string `url:"custom_field_17,omitempty" json:"custom_field_17,omitempty"`
CustomField18 string `url:"custom_field_18,omitempty" json:"custom_field_18,omitempty"`
CustomField19 string `url:"custom_field_19,omitempty" json:"custom_field_19,omitempty"`
CustomField20 string `url:"custom_field_20,omitempty" json:"custom_field_20,omitempty"`
CustomField21 string `url:"custom_field_21,omitempty" json:"custom_field_21,omitempty"`
CustomField22 string `url:"custom_field_22,omitempty" json:"custom_field_22,omitempty"`
CustomField23 string `url:"custom_field_23,omitempty" json:"custom_field_23,omitempty"`
CustomField24 string `url:"custom_field_24,omitempty" json:"custom_field_24,omitempty"`
CustomField25 string `url:"custom_field_25,omitempty" json:"custom_field_25,omitempty"`
CustomField26 string `url:"custom_field_26,omitempty" json:"custom_field_26,omitempty"`
CustomField27 string `url:"custom_field_27,omitempty" json:"custom_field_27,omitempty"`
CustomField28 string `url:"custom_field_28,omitempty" json:"custom_field_28,omitempty"`
CustomField29 string `url:"custom_field_29,omitempty" json:"custom_field_29,omitempty"`
CustomField30 string `url:"custom_field_30,omitempty" json:"custom_field_30,omitempty"`
CustomField31 string `url:"custom_field_31,omitempty" json:"custom_field_31,omitempty"`
CustomField32 string `url:"custom_field_32,omitempty" json:"custom_field_32,omitempty"`
CustomField33 string `url:"custom_field_33,omitempty" json:"custom_field_33,omitempty"`
CustomField34 string `url:"custom_field_34,omitempty" json:"custom_field_34,omitempty"`
CustomField35 string `url:"custom_field_35,omitempty" json:"custom_field_35,omitempty"`
CustomField36 string `url:"custom_field_36,omitempty" json:"custom_field_36,omitempty"`
CustomField37 string `url:"custom_field_37,omitempty" json:"custom_field_37,omitempty"`
CustomField38 string `url:"custom_field_38,omitempty" json:"custom_field_38,omitempty"`
CustomField39 string `url:"custom_field_39,omitempty" json:"custom_field_39,omitempty"`
CustomField40 string `url:"custom_field_40,omitempty" json:"custom_field_40,omitempty"`
CustomField41 string `url:"custom_field_41,omitempty" json:"custom_field_41,omitempty"`
CustomField42 string `url:"custom_field_42,omitempty" json:"custom_field_42,omitempty"`
CustomField43 string `url:"custom_field_43,omitempty" json:"custom_field_43,omitempty"`
CustomField44 string `url:"custom_field_44,omitempty" json:"custom_field_44,omitempty"`
CustomField45 string `url:"custom_field_45,omitempty" json:"custom_field_45,omitempty"`
CustomField46 string `url:"custom_field_46,omitempty" json:"custom_field_46,omitempty"`
CustomField47 string `url:"custom_field_47,omitempty" json:"custom_field_47,omitempty"`
CustomField48 string `url:"custom_field_48,omitempty" json:"custom_field_48,omitempty"`
CustomField49 string `url:"custom_field_49,omitempty" json:"custom_field_49,omitempty"`
CustomField50 string `url:"custom_field_50,omitempty" json:"custom_field_50,omitempty"`
CustomField51 string `url:"custom_field_51,omitempty" json:"custom_field_51,omitempty"`
CustomField52 string `url:"custom_field_52,omitempty" json:"custom_field_52,omitempty"`
CustomField53 string `url:"custom_field_53,omitempty" json:"custom_field_53,omitempty"`
CustomField54 string `url:"custom_field_54,omitempty" json:"custom_field_54,omitempty"`
CustomField55 string `url:"custom_field_55,omitempty" json:"custom_field_55,omitempty"`
CustomField56 string `url:"custom_field_56,omitempty" json:"custom_field_56,omitempty"`
CustomField57 string `url:"custom_field_57,omitempty" json:"custom_field_57,omitempty"`
CustomField58 string `url:"custom_field_58,omitempty" json:"custom_field_58,omitempty"`
CustomField59 string `url:"custom_field_59,omitempty" json:"custom_field_59,omitempty"`
CustomField60 string `url:"custom_field_60,omitempty" json:"custom_field_60,omitempty"`
CustomField61 string `url:"custom_field_61,omitempty" json:"custom_field_61,omitempty"`
CustomField62 string `url:"custom_field_62,omitempty" json:"custom_field_62,omitempty"`
CustomField63 string `url:"custom_field_63,omitempty" json:"custom_field_63,omitempty"`
CustomField64 string `url:"custom_field_64,omitempty" json:"custom_field_64,omitempty"`
CustomField65 string `url:"custom_field_65,omitempty" json:"custom_field_65,omitempty"`
CustomField66 string `url:"custom_field_66,omitempty" json:"custom_field_66,omitempty"`
CustomField67 string `url:"custom_field_67,omitempty" json:"custom_field_67,omitempty"`
CustomField68 string `url:"custom_field_68,omitempty" json:"custom_field_68,omitempty"`
CustomField69 string `url:"custom_field_69,omitempty" json:"custom_field_69,omitempty"`
CustomField70 string `url:"custom_field_70,omitempty" json:"custom_field_70,omitempty"`
CustomField71 string `url:"custom_field_71,omitempty" json:"custom_field_71,omitempty"`
CustomField72 string `url:"custom_field_72,omitempty" json:"custom_field_72,omitempty"`
CustomField73 string `url:"custom_field_73,omitempty" json:"custom_field_73,omitempty"`
CustomField74 string `url:"custom_field_74,omitempty" json:"custom_field_74,omitempty"`
CustomField75 string `url:"custom_field_75,omitempty" json:"custom_field_75,omitempty"`
CustomField76 string `url:"custom_field_76,omitempty" json:"custom_field_76,omitempty"`
CustomField77 string `url:"custom_field_77,omitempty" json:"custom_field_77,omitempty"`
CustomField78 string `url:"custom_field_78,omitempty" json:"custom_field_78,omitempty"`
CustomField79 string `url:"custom_field_79,omitempty" json:"custom_field_79,omitempty"`
CustomField80 string `url:"custom_field_80,omitempty" json:"custom_field_80,omitempty"`
CustomField81 string `url:"custom_field_81,omitempty" json:"custom_field_81,omitempty"`
CustomField82 string `url:"custom_field_82,omitempty" json:"custom_field_82,omitempty"`
CustomField83 string `url:"custom_field_83,omitempty" json:"custom_field_83,omitempty"`
CustomField84 string `url:"custom_field_84,omitempty" json:"custom_field_84,omitempty"`
CustomField85 string `url:"custom_field_85,omitempty" json:"custom_field_85,omitempty"`
CustomField86 string `url:"custom_field_86,omitempty" json:"custom_field_86,omitempty"`
CustomField87 string `url:"custom_field_87,omitempty" json:"custom_field_87,omitempty"`
CustomField88 string `url:"custom_field_88,omitempty" json:"custom_field_88,omitempty"`
CustomField89 string `url:"custom_field_89,omitempty" json:"custom_field_89,omitempty"`
CustomField90 string `url:"custom_field_90,omitempty" json:"custom_field_90,omitempty"`
CustomField91 string `url:"custom_field_91,omitempty" json:"custom_field_91,omitempty"`
CustomField92 string `url:"custom_field_92,omitempty" json:"custom_field_92,omitempty"`
CustomField93 string `url:"custom_field_93,omitempty" json:"custom_field_93,omitempty"`
CustomField94 string `url:"custom_field_94,omitempty" json:"custom_field_94,omitempty"`
CustomField95 string `url:"custom_field_95,omitempty" json:"custom_field_95,omitempty"`
CustomField96 string `url:"custom_field_96,omitempty" json:"custom_field_96,omitempty"`
CustomField97 string `url:"custom_field_97,omitempty" json:"custom_field_97,omitempty"`
CustomField98 string `url:"custom_field_98,omitempty" json:"custom_field_98,omitempty"`
CustomField99 string `url:"custom_field_99,omitempty" json:"custom_field_99,omitempty"`
CustomField100 string `url:"custom_field_100,omitempty" json:"custom_field_100,omitempty"`
CustomField101 string `url:"custom_field_101,omitempty" json:"custom_field_101,omitempty"`
CustomField102 string `url:"custom_field_102,omitempty" json:"custom_field_102,omitempty"`
CustomField103 string `url:"custom_field_103,omitempty" json:"custom_field_103,omitempty"`
CustomField104 string `url:"custom_field_104,omitempty" json:"custom_field_104,omitempty"`
CustomField105 string `url:"custom_field_105,omitempty" json:"custom_field_105,omitempty"`
CustomField106 string `url:"custom_field_106,omitempty" json:"custom_field_106,omitempty"`
CustomField107 string `url:"custom_field_107,omitempty" json:"custom_field_107,omitempty"`
CustomField108 string `url:"custom_field_108,omitempty" json:"custom_field_108,omitempty"`
CustomField109 string `url:"custom_field_109,omitempty" json:"custom_field_109,omitempty"`
CustomField110 string `url:"custom_field_110,omitempty" json:"custom_field_110,omitempty"`
CustomField111 string `url:"custom_field_111,omitempty" json:"custom_field_111,omitempty"`
CustomField112 string `url:"custom_field_112,omitempty" json:"custom_field_112,omitempty"`
CustomField113 string `url:"custom_field_113,omitempty" json:"custom_field_113,omitempty"`
CustomField114 string `url:"custom_field_114,omitempty" json:"custom_field_114,omitempty"`
CustomField115 string `url:"custom_field_115,omitempty" json:"custom_field_115,omitempty"`
CustomField116 string `url:"custom_field_116,omitempty" json:"custom_field_116,omitempty"`
CustomField117 string `url:"custom_field_117,omitempty" json:"custom_field_117,omitempty"`
CustomField118 string `url:"custom_field_118,omitempty" json:"custom_field_118,omitempty"`
CustomField119 string `url:"custom_field_119,omitempty" json:"custom_field_119,omitempty"`
CustomField120 string `url:"custom_field_120,omitempty" json:"custom_field_120,omitempty"`
CustomField121 string `url:"custom_field_121,omitempty" json:"custom_field_121,omitempty"`
CustomField122 string `url:"custom_field_122,omitempty" json:"custom_field_122,omitempty"`
CustomField123 string `url:"custom_field_123,omitempty" json:"custom_field_123,omitempty"`
CustomField124 string `url:"custom_field_124,omitempty" json:"custom_field_124,omitempty"`
CustomField125 string `url:"custom_field_125,omitempty" json:"custom_field_125,omitempty"`
CustomField126 string `url:"custom_field_126,omitempty" json:"custom_field_126,omitempty"`
CustomField127 string `url:"custom_field_127,omitempty" json:"custom_field_127,omitempty"`
CustomField128 string `url:"custom_field_128,omitempty" json:"custom_field_128,omitempty"`
CustomField129 string `url:"custom_field_129,omitempty" json:"custom_field_129,omitempty"`
CustomField130 string `url:"custom_field_130,omitempty" json:"custom_field_130,omitempty"`
CustomField131 string `url:"custom_field_131,omitempty" json:"custom_field_131,omitempty"`
CustomField132 string `url:"custom_field_132,omitempty" json:"custom_field_132,omitempty"`
CustomField133 string `url:"custom_field_133,omitempty" json:"custom_field_133,omitempty"`
CustomField134 string `url:"custom_field_134,omitempty" json:"custom_field_134,omitempty"`
CustomField135 string `url:"custom_field_135,omitempty" json:"custom_field_135,omitempty"`
CustomField136 string `url:"custom_field_136,omitempty" json:"custom_field_136,omitempty"`
CustomField137 string `url:"custom_field_137,omitempty" json:"custom_field_137,omitempty"`
CustomField138 string `url:"custom_field_138,omitempty" json:"custom_field_138,omitempty"`
CustomField139 string `url:"custom_field_139,omitempty" json:"custom_field_139,omitempty"`
CustomField140 string `url:"custom_field_140,omitempty" json:"custom_field_140,omitempty"`
CustomField141 string `url:"custom_field_141,omitempty" json:"custom_field_141,omitempty"`
CustomField142 string `url:"custom_field_142,omitempty" json:"custom_field_142,omitempty"`
CustomField143 string `url:"custom_field_143,omitempty" json:"custom_field_143,omitempty"`
CustomField144 string `url:"custom_field_144,omitempty" json:"custom_field_144,omitempty"`
CustomField145 string `url:"custom_field_145,omitempty" json:"custom_field_145,omitempty"`
CustomField146 string `url:"custom_field_146,omitempty" json:"custom_field_146,omitempty"`
CustomField147 string `url:"custom_field_147,omitempty" json:"custom_field_147,omitempty"`
CustomField148 string `url:"custom_field_148,omitempty" json:"custom_field_148,omitempty"`
CustomField149 string `url:"custom_field_149,omitempty" json:"custom_field_149,omitempty"`
CustomField150 string `url:"custom_field_150,omitempty" json:"custom_field_150,omitempty"`
CustomField151 string `url:"custom_field_151,omitempty" json:"custom_field_151,omitempty"`
CustomField152 string `url:"custom_field_152,omitempty" json:"custom_field_152,omitempty"`
CustomField153 string `url:"custom_field_153,omitempty" json:"custom_field_153,omitempty"`
CustomField154 string `url:"custom_field_154,omitempty" json:"custom_field_154,omitempty"`
CustomField155 string `url:"custom_field_155,omitempty" json:"custom_field_155,omitempty"`
CustomField156 string `url:"custom_field_156,omitempty" json:"custom_field_156,omitempty"`
CustomField157 string `url:"custom_field_157,omitempty" json:"custom_field_157,omitempty"`
CustomField158 string `url:"custom_field_158,omitempty" json:"custom_field_158,omitempty"`
CustomField159 string `url:"custom_field_159,omitempty" json:"custom_field_159,omitempty"`
CustomField160 string `url:"custom_field_160,omitempty" json:"custom_field_160,omitempty"`
CustomField161 string `url:"custom_field_161,omitempty" json:"custom_field_161,omitempty"`
CustomField162 string `url:"custom_field_162,omitempty" json:"custom_field_162,omitempty"`
CustomField163 string `url:"custom_field_163,omitempty" json:"custom_field_163,omitempty"`
CustomField164 string `url:"custom_field_164,omitempty" json:"custom_field_164,omitempty"`
CustomField165 string `url:"custom_field_165,omitempty" json:"custom_field_165,omitempty"`
CustomField166 string `url:"custom_field_166,omitempty" json:"custom_field_166,omitempty"`
CustomField167 string `url:"custom_field_167,omitempty" json:"custom_field_167,omitempty"`
CustomField168 string `url:"custom_field_168,omitempty" json:"custom_field_168,omitempty"`
CustomField169 string `url:"custom_field_169,omitempty" json:"custom_field_169,omitempty"`
CustomField170 string `url:"custom_field_170,omitempty" json:"custom_field_170,omitempty"`
CustomField171 string `url:"custom_field_171,omitempty" json:"custom_field_171,omitempty"`
CustomField172 string `url:"custom_field_172,omitempty" json:"custom_field_172,omitempty"`
CustomField173 string `url:"custom_field_173,omitempty" json:"custom_field_173,omitempty"`
CustomField174 string `url:"custom_field_174,omitempty" json:"custom_field_174,omitempty"`
CustomField175 string `url:"custom_field_175,omitempty" json:"custom_field_175,omitempty"`
CustomField176 string `url:"custom_field_176,omitempty" json:"custom_field_176,omitempty"`
CustomField177 string `url:"custom_field_177,omitempty" json:"custom_field_177,omitempty"`
CustomField178 string `url:"custom_field_178,omitempty" json:"custom_field_178,omitempty"`
CustomField179 string `url:"custom_field_179,omitempty" json:"custom_field_179,omitempty"`
CustomField180 string `url:"custom_field_180,omitempty" json:"custom_field_180,omitempty"`
CustomField181 string `url:"custom_field_181,omitempty" json:"custom_field_181,omitempty"`
CustomField182 string `url:"custom_field_182,omitempty" json:"custom_field_182,omitempty"`
CustomField183 string `url:"custom_field_183,omitempty" json:"custom_field_183,omitempty"`
CustomField184 string `url:"custom_field_184,omitempty" json:"custom_field_184,omitempty"`
CustomField185 string `url:"custom_field_185,omitempty" json:"custom_field_185,omitempty"`
CustomField186 string `url:"custom_field_186,omitempty" json:"custom_field_186,omitempty"`
CustomField187 string `url:"custom_field_187,omitempty" json:"custom_field_187,omitempty"`
CustomField188 string `url:"custom_field_188,omitempty" json:"custom_field_188,omitempty"`
CustomField189 string `url:"custom_field_189,omitempty" json:"custom_field_189,omitempty"`
CustomField190 string `url:"custom_field_190,omitempty" json:"custom_field_190,omitempty"`
CustomField191 string `url:"custom_field_191,omitempty" json:"custom_field_191,omitempty"`
CustomField192 string `url:"custom_field_192,omitempty" json:"custom_field_192,omitempty"`
CustomField193 string `url:"custom_field_193,omitempty" json:"custom_field_193,omitempty"`
CustomField194 string `url:"custom_field_194,omitempty" json:"custom_field_194,omitempty"`
CustomField195 string `url:"custom_field_195,omitempty" json:"custom_field_195,omitempty"`
CustomField196 string `url:"custom_field_196,omitempty" json:"custom_field_196,omitempty"`
CustomField197 string `url:"custom_field_197,omitempty" json:"custom_field_197,omitempty"`
CustomField198 string `url:"custom_field_198,omitempty" json:"custom_field_198,omitempty"`
CustomField199 string `url:"custom_field_199,omitempty" json:"custom_field_199,omitempty"`
CustomField200 string `url:"custom_field_200,omitempty" json:"custom_field_200,omitempty"`
}
type CustomFieldsRequest ¶
type CustomFieldsRequest struct {
CustomFieldOne *string `url:"custom_field_one,omitempty" json:"custom_field_one,omitempty"`
CustomFieldTwo *string `url:"custom_field_two,omitempty" json:"custom_field_two,omitempty"`
CustomFieldThree *string `url:"custom_field_three,omitempty" json:"custom_field_three,omitempty"`
CustomFieldFour *string `url:"custom_field_four,omitempty" json:"custom_field_four,omitempty"`
CustomFieldFive *string `url:"custom_field_five,omitempty" json:"custom_field_five,omitempty"`
CustomFieldSix *string `url:"custom_field_six,omitempty" json:"custom_field_six,omitempty"`
CustomFieldSeven *string `url:"custom_field_seven,omitempty" json:"custom_field_seven,omitempty"`
CustomFieldEight *string `url:"custom_field_eight,omitempty" json:"custom_field_eight,omitempty"`
CustomField9 *string `url:"custom_field_9,omitempty" json:"custom_field_9,omitempty"`
CustomField10 *string `url:"custom_field_10,omitempty" json:"custom_field_10,omitempty"`
CustomField11 *string `url:"custom_field_11,omitempty" json:"custom_field_11,omitempty"`
CustomField12 *string `url:"custom_field_12,omitempty" json:"custom_field_12,omitempty"`
CustomField13 *string `url:"custom_field_13,omitempty" json:"custom_field_13,omitempty"`
CustomField14 *string `url:"custom_field_14,omitempty" json:"custom_field_14,omitempty"`
CustomField15 *string `url:"custom_field_15,omitempty" json:"custom_field_15,omitempty"`
CustomField16 *string `url:"custom_field_16,omitempty" json:"custom_field_16,omitempty"`
CustomField17 *string `url:"custom_field_17,omitempty" json:"custom_field_17,omitempty"`
CustomField18 *string `url:"custom_field_18,omitempty" json:"custom_field_18,omitempty"`
CustomField19 *string `url:"custom_field_19,omitempty" json:"custom_field_19,omitempty"`
CustomField20 *string `url:"custom_field_20,omitempty" json:"custom_field_20,omitempty"`
CustomField21 *string `url:"custom_field_21,omitempty" json:"custom_field_21,omitempty"`
CustomField22 *string `url:"custom_field_22,omitempty" json:"custom_field_22,omitempty"`
CustomField23 *string `url:"custom_field_23,omitempty" json:"custom_field_23,omitempty"`
CustomField24 *string `url:"custom_field_24,omitempty" json:"custom_field_24,omitempty"`
CustomField25 *string `url:"custom_field_25,omitempty" json:"custom_field_25,omitempty"`
CustomField26 *string `url:"custom_field_26,omitempty" json:"custom_field_26,omitempty"`
CustomField27 *string `url:"custom_field_27,omitempty" json:"custom_field_27,omitempty"`
CustomField28 *string `url:"custom_field_28,omitempty" json:"custom_field_28,omitempty"`
CustomField29 *string `url:"custom_field_29,omitempty" json:"custom_field_29,omitempty"`
CustomField30 *string `url:"custom_field_30,omitempty" json:"custom_field_30,omitempty"`
CustomField31 *string `url:"custom_field_31,omitempty" json:"custom_field_31,omitempty"`
CustomField32 *string `url:"custom_field_32,omitempty" json:"custom_field_32,omitempty"`
CustomField33 *string `url:"custom_field_33,omitempty" json:"custom_field_33,omitempty"`
CustomField34 *string `url:"custom_field_34,omitempty" json:"custom_field_34,omitempty"`
CustomField35 *string `url:"custom_field_35,omitempty" json:"custom_field_35,omitempty"`
CustomField36 *string `url:"custom_field_36,omitempty" json:"custom_field_36,omitempty"`
CustomField37 *string `url:"custom_field_37,omitempty" json:"custom_field_37,omitempty"`
CustomField38 *string `url:"custom_field_38,omitempty" json:"custom_field_38,omitempty"`
CustomField39 *string `url:"custom_field_39,omitempty" json:"custom_field_39,omitempty"`
CustomField40 *string `url:"custom_field_40,omitempty" json:"custom_field_40,omitempty"`
CustomField41 *string `url:"custom_field_41,omitempty" json:"custom_field_41,omitempty"`
CustomField42 *string `url:"custom_field_42,omitempty" json:"custom_field_42,omitempty"`
CustomField43 *string `url:"custom_field_43,omitempty" json:"custom_field_43,omitempty"`
CustomField44 *string `url:"custom_field_44,omitempty" json:"custom_field_44,omitempty"`
CustomField45 *string `url:"custom_field_45,omitempty" json:"custom_field_45,omitempty"`
CustomField46 *string `url:"custom_field_46,omitempty" json:"custom_field_46,omitempty"`
CustomField47 *string `url:"custom_field_47,omitempty" json:"custom_field_47,omitempty"`
CustomField48 *string `url:"custom_field_48,omitempty" json:"custom_field_48,omitempty"`
CustomField49 *string `url:"custom_field_49,omitempty" json:"custom_field_49,omitempty"`
CustomField50 *string `url:"custom_field_50,omitempty" json:"custom_field_50,omitempty"`
CustomField51 *string `url:"custom_field_51,omitempty" json:"custom_field_51,omitempty"`
CustomField52 *string `url:"custom_field_52,omitempty" json:"custom_field_52,omitempty"`
CustomField53 *string `url:"custom_field_53,omitempty" json:"custom_field_53,omitempty"`
CustomField54 *string `url:"custom_field_54,omitempty" json:"custom_field_54,omitempty"`
CustomField55 *string `url:"custom_field_55,omitempty" json:"custom_field_55,omitempty"`
CustomField56 *string `url:"custom_field_56,omitempty" json:"custom_field_56,omitempty"`
CustomField57 *string `url:"custom_field_57,omitempty" json:"custom_field_57,omitempty"`
CustomField58 *string `url:"custom_field_58,omitempty" json:"custom_field_58,omitempty"`
CustomField59 *string `url:"custom_field_59,omitempty" json:"custom_field_59,omitempty"`
CustomField60 *string `url:"custom_field_60,omitempty" json:"custom_field_60,omitempty"`
CustomField61 *string `url:"custom_field_61,omitempty" json:"custom_field_61,omitempty"`
CustomField62 *string `url:"custom_field_62,omitempty" json:"custom_field_62,omitempty"`
CustomField63 *string `url:"custom_field_63,omitempty" json:"custom_field_63,omitempty"`
CustomField64 *string `url:"custom_field_64,omitempty" json:"custom_field_64,omitempty"`
CustomField65 *string `url:"custom_field_65,omitempty" json:"custom_field_65,omitempty"`
CustomField66 *string `url:"custom_field_66,omitempty" json:"custom_field_66,omitempty"`
CustomField67 *string `url:"custom_field_67,omitempty" json:"custom_field_67,omitempty"`
CustomField68 *string `url:"custom_field_68,omitempty" json:"custom_field_68,omitempty"`
CustomField69 *string `url:"custom_field_69,omitempty" json:"custom_field_69,omitempty"`
CustomField70 *string `url:"custom_field_70,omitempty" json:"custom_field_70,omitempty"`
CustomField71 *string `url:"custom_field_71,omitempty" json:"custom_field_71,omitempty"`
CustomField72 *string `url:"custom_field_72,omitempty" json:"custom_field_72,omitempty"`
CustomField73 *string `url:"custom_field_73,omitempty" json:"custom_field_73,omitempty"`
CustomField74 *string `url:"custom_field_74,omitempty" json:"custom_field_74,omitempty"`
CustomField75 *string `url:"custom_field_75,omitempty" json:"custom_field_75,omitempty"`
CustomField76 *string `url:"custom_field_76,omitempty" json:"custom_field_76,omitempty"`
CustomField77 *string `url:"custom_field_77,omitempty" json:"custom_field_77,omitempty"`
CustomField78 *string `url:"custom_field_78,omitempty" json:"custom_field_78,omitempty"`
CustomField79 *string `url:"custom_field_79,omitempty" json:"custom_field_79,omitempty"`
CustomField80 *string `url:"custom_field_80,omitempty" json:"custom_field_80,omitempty"`
CustomField81 *string `url:"custom_field_81,omitempty" json:"custom_field_81,omitempty"`
CustomField82 *string `url:"custom_field_82,omitempty" json:"custom_field_82,omitempty"`
CustomField83 *string `url:"custom_field_83,omitempty" json:"custom_field_83,omitempty"`
CustomField84 *string `url:"custom_field_84,omitempty" json:"custom_field_84,omitempty"`
CustomField85 *string `url:"custom_field_85,omitempty" json:"custom_field_85,omitempty"`
CustomField86 *string `url:"custom_field_86,omitempty" json:"custom_field_86,omitempty"`
CustomField87 *string `url:"custom_field_87,omitempty" json:"custom_field_87,omitempty"`
CustomField88 *string `url:"custom_field_88,omitempty" json:"custom_field_88,omitempty"`
CustomField89 *string `url:"custom_field_89,omitempty" json:"custom_field_89,omitempty"`
CustomField90 *string `url:"custom_field_90,omitempty" json:"custom_field_90,omitempty"`
CustomField91 *string `url:"custom_field_91,omitempty" json:"custom_field_91,omitempty"`
CustomField92 *string `url:"custom_field_92,omitempty" json:"custom_field_92,omitempty"`
CustomField93 *string `url:"custom_field_93,omitempty" json:"custom_field_93,omitempty"`
CustomField94 *string `url:"custom_field_94,omitempty" json:"custom_field_94,omitempty"`
CustomField95 *string `url:"custom_field_95,omitempty" json:"custom_field_95,omitempty"`
CustomField96 *string `url:"custom_field_96,omitempty" json:"custom_field_96,omitempty"`
CustomField97 *string `url:"custom_field_97,omitempty" json:"custom_field_97,omitempty"`
CustomField98 *string `url:"custom_field_98,omitempty" json:"custom_field_98,omitempty"`
CustomField99 *string `url:"custom_field_99,omitempty" json:"custom_field_99,omitempty"`
CustomField100 *string `url:"custom_field_100,omitempty" json:"custom_field_100,omitempty"`
CustomField101 *string `url:"custom_field_101,omitempty" json:"custom_field_101,omitempty"`
CustomField102 *string `url:"custom_field_102,omitempty" json:"custom_field_102,omitempty"`
CustomField103 *string `url:"custom_field_103,omitempty" json:"custom_field_103,omitempty"`
CustomField104 *string `url:"custom_field_104,omitempty" json:"custom_field_104,omitempty"`
CustomField105 *string `url:"custom_field_105,omitempty" json:"custom_field_105,omitempty"`
CustomField106 *string `url:"custom_field_106,omitempty" json:"custom_field_106,omitempty"`
CustomField107 *string `url:"custom_field_107,omitempty" json:"custom_field_107,omitempty"`
CustomField108 *string `url:"custom_field_108,omitempty" json:"custom_field_108,omitempty"`
CustomField109 *string `url:"custom_field_109,omitempty" json:"custom_field_109,omitempty"`
CustomField110 *string `url:"custom_field_110,omitempty" json:"custom_field_110,omitempty"`
CustomField111 *string `url:"custom_field_111,omitempty" json:"custom_field_111,omitempty"`
CustomField112 *string `url:"custom_field_112,omitempty" json:"custom_field_112,omitempty"`
CustomField113 *string `url:"custom_field_113,omitempty" json:"custom_field_113,omitempty"`
CustomField114 *string `url:"custom_field_114,omitempty" json:"custom_field_114,omitempty"`
CustomField115 *string `url:"custom_field_115,omitempty" json:"custom_field_115,omitempty"`
CustomField116 *string `url:"custom_field_116,omitempty" json:"custom_field_116,omitempty"`
CustomField117 *string `url:"custom_field_117,omitempty" json:"custom_field_117,omitempty"`
CustomField118 *string `url:"custom_field_118,omitempty" json:"custom_field_118,omitempty"`
CustomField119 *string `url:"custom_field_119,omitempty" json:"custom_field_119,omitempty"`
CustomField120 *string `url:"custom_field_120,omitempty" json:"custom_field_120,omitempty"`
CustomField121 *string `url:"custom_field_121,omitempty" json:"custom_field_121,omitempty"`
CustomField122 *string `url:"custom_field_122,omitempty" json:"custom_field_122,omitempty"`
CustomField123 *string `url:"custom_field_123,omitempty" json:"custom_field_123,omitempty"`
CustomField124 *string `url:"custom_field_124,omitempty" json:"custom_field_124,omitempty"`
CustomField125 *string `url:"custom_field_125,omitempty" json:"custom_field_125,omitempty"`
CustomField126 *string `url:"custom_field_126,omitempty" json:"custom_field_126,omitempty"`
CustomField127 *string `url:"custom_field_127,omitempty" json:"custom_field_127,omitempty"`
CustomField128 *string `url:"custom_field_128,omitempty" json:"custom_field_128,omitempty"`
CustomField129 *string `url:"custom_field_129,omitempty" json:"custom_field_129,omitempty"`
CustomField130 *string `url:"custom_field_130,omitempty" json:"custom_field_130,omitempty"`
CustomField131 *string `url:"custom_field_131,omitempty" json:"custom_field_131,omitempty"`
CustomField132 *string `url:"custom_field_132,omitempty" json:"custom_field_132,omitempty"`
CustomField133 *string `url:"custom_field_133,omitempty" json:"custom_field_133,omitempty"`
CustomField134 *string `url:"custom_field_134,omitempty" json:"custom_field_134,omitempty"`
CustomField135 *string `url:"custom_field_135,omitempty" json:"custom_field_135,omitempty"`
CustomField136 *string `url:"custom_field_136,omitempty" json:"custom_field_136,omitempty"`
CustomField137 *string `url:"custom_field_137,omitempty" json:"custom_field_137,omitempty"`
CustomField138 *string `url:"custom_field_138,omitempty" json:"custom_field_138,omitempty"`
CustomField139 *string `url:"custom_field_139,omitempty" json:"custom_field_139,omitempty"`
CustomField140 *string `url:"custom_field_140,omitempty" json:"custom_field_140,omitempty"`
CustomField141 *string `url:"custom_field_141,omitempty" json:"custom_field_141,omitempty"`
CustomField142 *string `url:"custom_field_142,omitempty" json:"custom_field_142,omitempty"`
CustomField143 *string `url:"custom_field_143,omitempty" json:"custom_field_143,omitempty"`
CustomField144 *string `url:"custom_field_144,omitempty" json:"custom_field_144,omitempty"`
CustomField145 *string `url:"custom_field_145,omitempty" json:"custom_field_145,omitempty"`
CustomField146 *string `url:"custom_field_146,omitempty" json:"custom_field_146,omitempty"`
CustomField147 *string `url:"custom_field_147,omitempty" json:"custom_field_147,omitempty"`
CustomField148 *string `url:"custom_field_148,omitempty" json:"custom_field_148,omitempty"`
CustomField149 *string `url:"custom_field_149,omitempty" json:"custom_field_149,omitempty"`
CustomField150 *string `url:"custom_field_150,omitempty" json:"custom_field_150,omitempty"`
CustomField151 *string `url:"custom_field_151,omitempty" json:"custom_field_151,omitempty"`
CustomField152 *string `url:"custom_field_152,omitempty" json:"custom_field_152,omitempty"`
CustomField153 *string `url:"custom_field_153,omitempty" json:"custom_field_153,omitempty"`
CustomField154 *string `url:"custom_field_154,omitempty" json:"custom_field_154,omitempty"`
CustomField155 *string `url:"custom_field_155,omitempty" json:"custom_field_155,omitempty"`
CustomField156 *string `url:"custom_field_156,omitempty" json:"custom_field_156,omitempty"`
CustomField157 *string `url:"custom_field_157,omitempty" json:"custom_field_157,omitempty"`
CustomField158 *string `url:"custom_field_158,omitempty" json:"custom_field_158,omitempty"`
CustomField159 *string `url:"custom_field_159,omitempty" json:"custom_field_159,omitempty"`
CustomField160 *string `url:"custom_field_160,omitempty" json:"custom_field_160,omitempty"`
CustomField161 *string `url:"custom_field_161,omitempty" json:"custom_field_161,omitempty"`
CustomField162 *string `url:"custom_field_162,omitempty" json:"custom_field_162,omitempty"`
CustomField163 *string `url:"custom_field_163,omitempty" json:"custom_field_163,omitempty"`
CustomField164 *string `url:"custom_field_164,omitempty" json:"custom_field_164,omitempty"`
CustomField165 *string `url:"custom_field_165,omitempty" json:"custom_field_165,omitempty"`
CustomField166 *string `url:"custom_field_166,omitempty" json:"custom_field_166,omitempty"`
CustomField167 *string `url:"custom_field_167,omitempty" json:"custom_field_167,omitempty"`
CustomField168 *string `url:"custom_field_168,omitempty" json:"custom_field_168,omitempty"`
CustomField169 *string `url:"custom_field_169,omitempty" json:"custom_field_169,omitempty"`
CustomField170 *string `url:"custom_field_170,omitempty" json:"custom_field_170,omitempty"`
CustomField171 *string `url:"custom_field_171,omitempty" json:"custom_field_171,omitempty"`
CustomField172 *string `url:"custom_field_172,omitempty" json:"custom_field_172,omitempty"`
CustomField173 *string `url:"custom_field_173,omitempty" json:"custom_field_173,omitempty"`
CustomField174 *string `url:"custom_field_174,omitempty" json:"custom_field_174,omitempty"`
CustomField175 *string `url:"custom_field_175,omitempty" json:"custom_field_175,omitempty"`
CustomField176 *string `url:"custom_field_176,omitempty" json:"custom_field_176,omitempty"`
CustomField177 *string `url:"custom_field_177,omitempty" json:"custom_field_177,omitempty"`
CustomField178 *string `url:"custom_field_178,omitempty" json:"custom_field_178,omitempty"`
CustomField179 *string `url:"custom_field_179,omitempty" json:"custom_field_179,omitempty"`
CustomField180 *string `url:"custom_field_180,omitempty" json:"custom_field_180,omitempty"`
CustomField181 *string `url:"custom_field_181,omitempty" json:"custom_field_181,omitempty"`
CustomField182 *string `url:"custom_field_182,omitempty" json:"custom_field_182,omitempty"`
CustomField183 *string `url:"custom_field_183,omitempty" json:"custom_field_183,omitempty"`
CustomField184 *string `url:"custom_field_184,omitempty" json:"custom_field_184,omitempty"`
CustomField185 *string `url:"custom_field_185,omitempty" json:"custom_field_185,omitempty"`
CustomField186 *string `url:"custom_field_186,omitempty" json:"custom_field_186,omitempty"`
CustomField187 *string `url:"custom_field_187,omitempty" json:"custom_field_187,omitempty"`
CustomField188 *string `url:"custom_field_188,omitempty" json:"custom_field_188,omitempty"`
CustomField189 *string `url:"custom_field_189,omitempty" json:"custom_field_189,omitempty"`
CustomField190 *string `url:"custom_field_190,omitempty" json:"custom_field_190,omitempty"`
CustomField191 *string `url:"custom_field_191,omitempty" json:"custom_field_191,omitempty"`
CustomField192 *string `url:"custom_field_192,omitempty" json:"custom_field_192,omitempty"`
CustomField193 *string `url:"custom_field_193,omitempty" json:"custom_field_193,omitempty"`
CustomField194 *string `url:"custom_field_194,omitempty" json:"custom_field_194,omitempty"`
CustomField195 *string `url:"custom_field_195,omitempty" json:"custom_field_195,omitempty"`
CustomField196 *string `url:"custom_field_196,omitempty" json:"custom_field_196,omitempty"`
CustomField197 *string `url:"custom_field_197,omitempty" json:"custom_field_197,omitempty"`
CustomField198 *string `url:"custom_field_198,omitempty" json:"custom_field_198,omitempty"`
CustomField199 *string `url:"custom_field_199,omitempty" json:"custom_field_199,omitempty"`
CustomField200 *string `url:"custom_field_200,omitempty" json:"custom_field_200,omitempty"`
}
type CustomPlanFields ¶
type CustomPlanFields struct {
CustomPlanField1 string `url:"custom_plan_field_1,omitempty" json:"custom_plan_field_1,omitempty"`
CustomPlanField2 string `url:"custom_plan_field_2,omitempty" json:"custom_plan_field_2,omitempty"`
CustomPlanField3 string `url:"custom_plan_field_3,omitempty" json:"custom_plan_field_3,omitempty"`
CustomPlanField4 string `url:"custom_plan_field_4,omitempty" json:"custom_plan_field_4,omitempty"`
CustomPlanField5 string `url:"custom_plan_field_5,omitempty" json:"custom_plan_field_5,omitempty"`
CustomPlanField6 string `url:"custom_plan_field_6,omitempty" json:"custom_plan_field_6,omitempty"`
CustomPlanField7 string `url:"custom_plan_field_7,omitempty" json:"custom_plan_field_7,omitempty"`
CustomPlanField8 string `url:"custom_plan_field_8,omitempty" json:"custom_plan_field_8,omitempty"`
CustomPlanField9 string `url:"custom_plan_field_9,omitempty" json:"custom_plan_field_9,omitempty"`
CustomPlanField10 string `url:"custom_plan_field_10,omitempty" json:"custom_plan_field_10,omitempty"`
}
type CustomPlanFieldsRequest ¶
type CustomPlanFieldsRequest struct {
CustomPlanField1 *string `url:"custom_plan_field_1,omitempty" json:"custom_plan_field_1,omitempty"`
CustomPlanField2 *string `url:"custom_plan_field_2,omitempty" json:"custom_plan_field_2,omitempty"`
CustomPlanField3 *string `url:"custom_plan_field_3,omitempty" json:"custom_plan_field_3,omitempty"`
CustomPlanField4 *string `url:"custom_plan_field_4,omitempty" json:"custom_plan_field_4,omitempty"`
CustomPlanField5 *string `url:"custom_plan_field_5,omitempty" json:"custom_plan_field_5,omitempty"`
CustomPlanField6 *string `url:"custom_plan_field_6,omitempty" json:"custom_plan_field_6,omitempty"`
CustomPlanField7 *string `url:"custom_plan_field_7,omitempty" json:"custom_plan_field_7,omitempty"`
CustomPlanField8 *string `url:"custom_plan_field_8,omitempty" json:"custom_plan_field_8,omitempty"`
CustomPlanField9 *string `url:"custom_plan_field_9,omitempty" json:"custom_plan_field_9,omitempty"`
CustomPlanField10 *string `url:"custom_plan_field_10,omitempty" json:"custom_plan_field_10,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[int] `url:"id,omitempty"` // ID 支持多ID查询
Title *string `url:"title,omitempty"` // 标题 支持模糊匹配
Priority *string `url:"priority,omitempty"` // 优先级。为了兼容自定义优先级,请使用 priority_label 字段,详情参考:如何兼容自定义优先级
PriorityLabel *PriorityLabel `url:"priority_label,omitempty"` // 优先级。推荐使用这个字段
Severity *string `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 支持多ID查询
ID *Multi[int] `url:"id,omitempty"`
// 标题
Title *string `url:"title,omitempty"`
// 内容
Description *string `url:"description,omitempty"`
// 评论人
Author *string `url:"author,omitempty"`
// 评论类型(取值: bug、 bug_remark (流转缺陷时候的评论)、 stories、 tasks 。多个类型间以竖线隔开) 支持枚举查询
EntryType *CommentEntryType `url:"entry_type,omitempty"`
// 评论所依附的业务对象实体id
EntryID *int `url:"entry_id,omitempty"`
// 创建时间 支持时间查询
Created *string `url:"created,omitempty"`
// 最后更改时间 支持时间查询
Modified *string `url:"modified,omitempty"`
// 项目ID
WorkspaceID *int `url:"workspace_id,omitempty"`
// 根评论ID
RootID *int `url:"root_id,omitempty"`
// 评论回复的ID
ReplyID *int `url:"reply_id,omitempty"`
}
type GetCommentsRequest ¶
type GetCommentsRequest struct {
// 评论ID 支持多ID查询
ID *Multi[int] `url:"id,omitempty"`
// 标题
Title *string `url:"title,omitempty"`
// 内容
Description *string `url:"description,omitempty"`
// 评论人
Author *string `url:"author,omitempty"`
// 评论类型(取值: bug、 bug_remark (流转缺陷时候的评论)、 stories、 tasks 。多个类型间以竖线隔开) 支持枚举查询
EntryType *CommentEntryType `url:"entry_type,omitempty"`
// 评论所依附的业务对象实体id
EntryID *int `url:"entry_id,omitempty"`
// 创建时间 支持时间查询
Created *string `url:"created,omitempty"`
// 最后更改时间 支持时间查询
Modified *string `url:"modified,omitempty"`
// 项目ID
WorkspaceID *int `url:"workspace_id,omitempty"`
// 根评论ID
RootID *int `url:"root_id,omitempty"`
// 评论回复的ID
ReplyID *int `url:"reply_id,omitempty"`
// 设置返回数量限制,默认为30
Limit *int `url:"limit,omitempty"`
// 返回当前数量限制下第N页的数据,默认为1(第一页)
Page *int `url:"page,omitempty"`
// 排序规则,规则:字段名 ASC或者DESC,然后 urlencode 如按创建时间逆序:order=created%20desc
Order *Order `url:"order,omitempty"`
// 设置获取的字段,多个字段间以','逗号隔开
Fields *Multi[string] `url:"fields,omitempty"`
}
type GetIterationsCountRequest ¶ added in v0.6.0
type GetIterationsCountRequest struct {
ID *Multi[int] `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[int] `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 {
// [必须]项目 id 为公司id则查询所有项目
WorkspaceID *int `url:"workspace_id,omitempty"`
// [可选]为1则仅返回公司级活动日志 要求workspace_id=公司id & company_only=1
CompanyOnly *int `url:"company_only,omitempty"`
// [可选]设置返回数量限制,默认为20
Limit *int `url:"limit,omitempty"`
// [可选]返回当前数量限制下第N页的数据,默认为1(第一页)
Page *int `url:"page,omitempty"`
// [可选]起始时间,精确到分钟,格式为Y-m-d H:i 只能查最近半年内的数据
StartTime *string `url:"start_time,omitempty"`
// [可选]终止时间,精确到分钟,格式为Y-m-d H:i 只能查最近半年内的数据
EndTime *string `url:"end_time,omitempty"`
// [可选]操作人昵称
Operator *string `url:"operator,omitempty"`
// [可选]操作类型,默认为所有,可以填写add,delete,download,upload中的一个
OperateType *OperateType `url:"operate_type,omitempty"`
// [可选]操作对象,默认为所有,可以填写attachment,board,bug,document,iteration,
// launch,member_activity_log,release,story,task,tcase,testplan,wiki中的一个
OperatorObject *OperateObject `url:"operator_object,omitempty"`
// [可选]请求IP条件,严格匹配
IP *string `url:"ip,omitempty"`
}
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"` // 设置获取的字段,多个字段间以','逗号隔开
}
GetReportsRequest represents a request to get reports
type GetRolesRequest ¶
type GetRolesRequest struct {
WorkspaceID *int `url:"workspace_id,omitempty"` // 项目 ID
}
GetRolesRequest represents a request to get roles
type GetStoriesCountRequest ¶
type GetStoriesCountRequest struct {
CustomFieldsRequest
CustomPlanFieldsRequest
ID *Multi[int] `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
}
type GetStoriesRequest ¶
type GetStoriesRequest struct {
CustomFieldsRequest
CustomPlanFieldsRequest
ID *Multi[int] `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"` // 设置获取的字段,多个字段间以','逗号隔开
}
type GetStoryCategoriesCountRequest ¶
type GetStoryCategoriesCountRequest struct {
WorkspaceID *int `url:"workspace_id,omitempty"` // [必须]项目ID
ID *Multi[int] `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[int] `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[int] `url:"id,omitempty"`
StoryID *Multi[int] `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[int] `url:"id,omitempty"` // 支持多ID查询
WorkspaceID *int `url:"workspace_id,omitempty"` // [必须]项目ID
TaskID *int `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[int] `url:"id,omitempty"` // 支持多ID查询
WorkspaceID *int `url:"workspace_id,omitempty"` // [必须]项目ID
TaskID *int `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[int] `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[int] `url:"story_id,omitempty"` // 关联需求的ID 支持多ID查询
IterationID *Enum[int] `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[string] `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[string] `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[string] `url:"story_id,omitempty"` // 关联需求的ID 支持多ID查询
IterationID *Enum[string] `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[int] `url:"id,omitempty"`
// [必选]项目ID
WorkspaceID *int `url:"workspace_id,omitempty"`
// [可选]对象类型,如story、task、bug等
EntityType *EntityType `url:"entity_type,omitempty"`
// [可选]对象ID
EntityID *int `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[int] `url:"id,omitempty"`
// [必选]项目ID
WorkspaceID *int `url:"workspace_id,omitempty"`
// [可选]对象类型,如story、task、bug等
EntityType *EntityType `url:"entity_type,omitempty"`
// [可选]对象ID
EntityID *int `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 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 struct {
// contains filtered or unexported fields
}
IterationService 迭代
https://open.tapd.cn/document/api-doc/API%E6%96%87%E6%A1%A3/api_reference/iteration/
func (*IterationService) CreateIteration ¶ added in v0.6.0
func (s *IterationService) CreateIteration( ctx context.Context, request *CreateIterationRequest, opts ...RequestOption, ) (*Iteration, *Response, error)
CreateIteration 创建迭代
func (*IterationService) GetIterations ¶ added in v0.6.0
func (s *IterationService) GetIterations( ctx context.Context, request *GetIterationsRequest, opts ...RequestOption, ) ([]*Iteration, *Response, error)
GetIterations 获取迭代
func (*IterationService) GetIterationsCount ¶ added in v0.6.0
func (s *IterationService) GetIterationsCount( ctx context.Context, request *GetIterationsCountRequest, opts ...RequestOption, ) (int, *Response, error)
GetIterationsCount 获取迭代数量
func (*IterationService) GetTemplateList ¶ added in v0.6.0
func (s *IterationService) GetTemplateList( ctx context.Context, request *GetTemplateListRequest, opts ...RequestOption, ) ([]*WorkitemTemplate, *Response, error)
GetTemplateList 获取迭代模板列表
func (*IterationService) GetWorkitemTypes ¶ added in v0.6.0
func (s *IterationService) GetWorkitemTypes( ctx context.Context, request *GetWorkitemTypesRequest, opts ...RequestOption, ) ([]*WorkitemType, *Response, error)
GetWorkitemTypes 获取迭代类别列表
func (*IterationService) UpdateIteration ¶ added in v0.7.0
func (s *IterationService) UpdateIteration( ctx context.Context, request *UpdateIterationRequest, opts ...RequestOption, ) (*Iteration, *Response, error)
UpdateIteration 更新迭代
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 struct {
// contains filtered or unexported fields
}
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 (*LabelService) CreateLabel ¶
func (s *LabelService) CreateLabel( ctx context.Context, request *CreateLabelRequest, opts ...RequestOption, ) (*Label, *Response, error)
CreateLabel 创建标签 https://open.tapd.cn/document/api-doc/API%E6%96%87%E6%A1%A3/api_reference/label/add_label.html
func (*LabelService) GetLabels ¶
func (s *LabelService) GetLabels( ctx context.Context, request *GetLabelsRequest, opts ...RequestOption, ) ([]*Label, *Response, error)
GetLabels 获取自定义标签 https://open.tapd.cn/document/api-doc/API%E6%96%87%E6%A1%A3/api_reference/label/query_label.html
func (*LabelService) GetLabelsCount ¶
func (s *LabelService) GetLabelsCount( ctx context.Context, request *GetLabelCountRequest, opts ...RequestOption, ) (int, *Response, error)
GetLabelsCount 获取标签数量 https://open.tapd.cn/document/api-doc/API%E6%96%87%E6%A1%A3/api_reference/label/count_label.html
func (*LabelService) UpdateLabel ¶
func (s *LabelService) UpdateLabel( ctx context.Context, request *UpdateLabelRequest, 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
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 struct {
// contains filtered or unexported fields
}
func (*MeasureService) LifeTimes ¶
func (s *MeasureService) LifeTimes( ctx context.Context, request *LifeTimesRequest, opts ...RequestOption, ) ([]*LifeTime, *Response, error)
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
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 ( High PriorityLabel = "High" Middle PriorityLabel = "Middle" Low PriorityLabel = "Low" NiceToHave 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 struct {
// contains filtered or unexported fields
}
ReportService is a service to interact with report related API
func (*ReportService) GetReports ¶
func (s *ReportService) GetReports( ctx context.Context, request *GetReportsRequest, opts ...RequestOption, ) ([]*Report, *Response, error)
GetReports 获取项目报告
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 WithRequestBasicAuth ¶
func WithRequestBasicAuth(username, password 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 struct {
// contains filtered or unexported fields
}
SettingService 配置
https://open.tapd.cn/document/api-doc/API%E6%96%87%E6%A1%A3/api_reference/setting/
func (*SettingService) GetWorkspaceSetting ¶
func (s *SettingService) GetWorkspaceSetting( ctx context.Context, request *GetWorkspaceSettingRequest, opts ...RequestOption, ) (*GetWorkspaceSettingResponse, *Response, error)
GetWorkspaceSetting 获取项目配置开关
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 {
CustomFields
CustomPlanFields
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 string `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"`
}
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 struct {
// contains filtered or unexported fields
}
func (*StoryService) CreateStory ¶
func (s *StoryService) CreateStory( ctx context.Context, request *CreateStoryRequest, opts ...RequestOption, ) (*Story, *Response, error)
CreateStory 创建需求
https://open.tapd.cn/document/api-doc/API%E6%96%87%E6%A1%A3/api_reference/story/add_story.html
func (*StoryService) GetConvertStoryIDsToQueryToken ¶
func (s *StoryService) GetConvertStoryIDsToQueryToken( ctx context.Context, request *GetConvertStoryIDsToQueryTokenRequest, opts ...RequestOption, ) (*GetConvertStoryIDsToQueryTokenResponse, *Response, error)
GetConvertStoryIDsToQueryToken 转换需求ID成列表queryToken
func (*StoryService) GetRemovedStories ¶
func (s *StoryService) GetRemovedStories( ctx context.Context, request *GetRemovedStoriesRequest, opts ...RequestOption, ) ([]*RemovedStory, *Response, error)
GetRemovedStories 获取回收站中的需求
func (*StoryService) GetStories ¶
func (s *StoryService) GetStories( ctx context.Context, request *GetStoriesRequest, 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
func (*StoryService) GetStoriesCount ¶
func (s *StoryService) GetStoriesCount( ctx context.Context, request *GetStoriesCountRequest, opts ...RequestOption, ) (int, *Response, error)
GetStoriesCount 获取需求数量 https://open.tapd.cn/document/api-doc/API%E6%96%87%E6%A1%A3/api_reference/story/get_stories_count.html
func (*StoryService) GetStoriesCountByCategories ¶
func (s *StoryService) GetStoriesCountByCategories( ctx context.Context, request *GetStoriesCountByCategoriesRequest, opts ...RequestOption, ) ([]*StoriesCountByCategory, *Response, error)
GetStoriesCountByCategories 获取指定分类下需求数量
func (*StoryService) GetStoryCategories ¶
func (s *StoryService) GetStoryCategories( ctx context.Context, request *GetStoryCategoriesRequest, opts ...RequestOption, ) ([]*StoryCategory, *Response, error)
GetStoryCategories 获取需求分类
func (*StoryService) GetStoryCategoriesCount ¶
func (s *StoryService) GetStoryCategoriesCount( ctx context.Context, request *GetStoryCategoriesCountRequest, opts ...RequestOption, ) (int, *Response, error)
GetStoryCategoriesCount 获取需求分类数量
func (*StoryService) GetStoryChanges ¶
func (s *StoryService) GetStoryChanges( ctx context.Context, request *GetStoryChangesRequest, opts ...RequestOption, ) ([]*StoryChange, *Response, error)
GetStoryChanges 获取需求变更历史
func (*StoryService) GetStoryCustomFieldsSettings ¶
func (s *StoryService) GetStoryCustomFieldsSettings( ctx context.Context, request *GetStoryCustomFieldsSettingsRequest, opts ...RequestOption, ) ([]*StoryCustomFieldsSetting, *Response, error)
GetStoryCustomFieldsSettings 获取需求自定义字段配置
func (*StoryService) GetStoryRelatedBugs ¶
func (s *StoryService) GetStoryRelatedBugs( ctx context.Context, request *GetStoryRelatedBugsRequest, opts ...RequestOption, ) ([]*StoryRelatedBug, *Response, error)
GetStoryRelatedBugs 获取需求关联的缺陷
func (*StoryService) GetStoryTemplateFields ¶
func (s *StoryService) GetStoryTemplateFields( ctx context.Context, request *GetStoryTemplateFieldsRequest, opts ...RequestOption, ) ([]*StoryTemplateField, *Response, error)
GetStoryTemplateFields 获取需求模板字段
func (*StoryService) GetStoryTemplates ¶
func (s *StoryService) GetStoryTemplates( ctx context.Context, request *GetStoryTemplatesRequest, opts ...RequestOption, ) ([]*StoryTemplate, *Response, error)
GetStoryTemplates 获取需求模板列表
func (*StoryService) UpdateStory ¶
func (s *StoryService) UpdateStory( ctx context.Context, request *UpdateStoryRequest, opts ...RequestOption, ) (*Story, *Response, error)
UpdateStory 更新需求 https://open.tapd.cn/document/api-doc/API%E6%96%87%E6%A1%A3/api_reference/story/update_story.html
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" // 测试中 )
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 struct {
// contains filtered or unexported fields
}
TaskService 任务服务
func (*TaskService) GetTaskChanges ¶
func (s *TaskService) GetTaskChanges( ctx context.Context, request *GetTaskChangesRequest, opts ...RequestOption, ) ([]*TaskChange, *Response, error)
GetTaskChanges 获取任务变更历史
https://open.tapd.cn/document/api-doc/API%E6%96%87%E6%A1%A3/api_reference/task/get_task_changes.html
func (*TaskService) GetTaskChangesCount ¶
func (s *TaskService) GetTaskChangesCount( ctx context.Context, request *GetTaskChangesCountRequest, opts ...RequestOption, ) (int, *Response, error)
GetTaskChangesCount 获取任务变更次数
func (*TaskService) GetTaskFieldsInfo ¶
func (s *TaskService) GetTaskFieldsInfo( ctx context.Context, request *GetTaskFieldsInfoRequest, opts ...RequestOption, ) ([]*TaskFieldsInfo, *Response, error)
GetTaskFieldsInfo 获取任务字段信息
func (*TaskService) GetTasks ¶
func (s *TaskService) GetTasks( ctx context.Context, request *GetTasksRequest, opts ...RequestOption, ) ([]*Task, *Response, error)
GetTasks 获取任务
https://open.tapd.cn/document/api-doc/API%E6%96%87%E6%A1%A3/api_reference/task/get_tasks.html
func (*TaskService) GetTasksCount ¶
func (s *TaskService) GetTasksCount( ctx context.Context, request *GetTasksCountRequest, opts ...RequestOption, ) (int, *Response, error)
GetTasksCount 获取任务数量
https://open.tapd.cn/document/api-doc/API%E6%96%87%E6%A1%A3/api_reference/task/get_tasks_count.html
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 struct {
// contains filtered or unexported fields
}
func (*TimesheetService) CreateTimesheet ¶
func (s *TimesheetService) CreateTimesheet( ctx context.Context, request *CreateTimesheetRequest, opts ...RequestOption, ) (*Timesheet, *Response, error)
CreateTimesheet 创建工时花费 https://open.tapd.cn/document/api-doc/API%E6%96%87%E6%A1%A3/api_reference/timesheet/add_timesheet.html
func (*TimesheetService) GetTimesheets ¶
func (s *TimesheetService) GetTimesheets( ctx context.Context, request *GetTimesheetsRequest, 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
func (*TimesheetService) GetTimesheetsCount ¶
func (s *TimesheetService) GetTimesheetsCount( ctx context.Context, request *GetTimesheetsCountRequest, opts ...RequestOption, ) (int, *Response, error)
GetTimesheetsCount 获取工时花费的数量 https://open.tapd.cn/document/api-doc/API%E6%96%87%E6%A1%A3/api_reference/timesheet/get_timesheets_count.html
func (*TimesheetService) UpdateTimesheet ¶
func (s *TimesheetService) UpdateTimesheet( ctx context.Context, request *UpdateTimesheetRequest, opts ...RequestOption, ) (*Timesheet, *Response, error)
UpdateTimesheet 更新工时花费 https://open.tapd.cn/document/api-doc/API%E6%96%87%E6%A1%A3/api_reference/timesheet/update_timesheet.html
type UpdateCommentRequest ¶
type UpdateIterationRequest ¶ added in v0.7.0
type UpdateIterationRequest struct {
ID *int `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 {
CustomFieldsRequest
CustomPlanFieldsRequest
ID *int `json:"id"` // 必须
WorkspaceID *int `json:"workspace_id"` // 必须
Name *string `json:"name,omitempty"` // 标题
Priority *string `url:"priority,omitempty"` // 优先级。
PriorityLabel *PriorityLabel `url:"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 *int `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"` // 标签
}
type UpdateTimesheetRequest ¶
type UpdateTimesheetRequest struct {
ID *int `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 UserService ¶
type UserService struct {
// contains filtered or unexported fields
}
UserService is a service to interact with user related API
func (*UserService) GetRoles ¶
func (s *UserService) GetRoles( ctx context.Context, request *GetRolesRequest, opts ...RequestOption, ) ([]*UserRole, *Response, error)
GetRoles 获取角色ID对照关系
https://open.tapd.cn/document/api-doc/API%E6%96%87%E6%A1%A3/api_reference/user/get_roles.html
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 struct {
// contains filtered or unexported fields
}
WorkflowService 工作流
func (*WorkflowService) GetAllLastSteps ¶ added in v0.7.0
func (s *WorkflowService) GetAllLastSteps( ctx context.Context, request *GetAllLastStepsRequest, opts ...RequestOption, ) ([]*WorkflowAllLastStep, *Response, error)
GetAllLastSteps 获取所有结束状态
type WorkitemTemplate ¶ added in v0.6.0
type WorkitemType ¶ added in v0.6.0
type WorkspaceService ¶
type WorkspaceService struct {
// contains filtered or unexported fields
}
func (*WorkspaceService) GetMemberActivityLog ¶
func (s *WorkspaceService) GetMemberActivityLog( ctx context.Context, request *GetMemberActivityLogRequest, opts ...RequestOption, ) (*GetMemberActivityLogResponse, *Response, error)
GetMemberActivityLog 获取成员活动日志
Source Files
¶
- api_attachment.go
- api_bug.go
- api_comment.go
- api_iteration.go
- api_label.go
- api_measure.go
- api_report.go
- api_setting.go
- api_story.go
- api_task.go
- api_timesheet.go
- api_types.go
- api_types_custom_fileds.go
- api_user.go
- api_workflow.go
- api_workspace.go
- client.go
- client_options.go
- client_options_http_client.go
- helpers.go
- request.go
- response.go