zentao

package module
v0.0.0-...-8db4e4c Latest Latest
Warning

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

Go to latest
Published: Aug 7, 2024 License: Apache-2.0 Imports: 5 Imported by: 0

README

go-zentao

Go Report Card GitHub GitHub go.mod Go version (subdirectory of monorepo) GitHub commit activity zentao

Zentao API client enabling Go programs to interact with Zentao in a simple and uniform way

NOTE

基于ZenTao最新开源版本 17.8

支持

  • Token
  • 用户(User)
    • 获取我的个人信息(Token)
    • 删除用户
    • 创建用户
    • 修改用户信息
    • 获取用户列表
    • 获取用户信息
  • 项目集(Programs)
    • 获取项目集列表
    • 修改项目集
    • 获取项目集详情
    • 删除项目集
    • 创建项目集
  • 产品(Products)
    • 获取产品列表
    • 修改产品
    • 获取产品详情
    • 删除产品
    • 创建产品
  • 产品计划(ProductsPlans)
    • 创建计划
    • 获取产品计划列表
    • 获取计划详情
    • 修改计划
    • 删除计划
    • 产品计划关联需求
    • 产品计划取消关联需求
    • 产品计划关联Bug
    • 产品计划取消关联Bug
  • 发布
    • 获取项目发布列表
    • 获取产品发布列表
  • 需求(Stories)
    • 获取项目需求列表
    • 变更需求
    • 获取产品需求列表
    • 创建需求
    • 获取执行需求列表
    • 获取需求详情
    • 删除需求
    • 修改需求其他字段
  • 项目(Projects)
    • 创建项目
    • 获取项目列表
    • 获取项目详情
    • 修改项目
    • 删除项目
  • 版本(Builds)
    • 获取项目版本列表
    • 获取执行版本详情
    • 修改版本
    • 创建版本
    • 获取版本详情
    • 删除版本
  • 执行(Executions)
    • 获取项目的执行列表
    • 创建执行
    • 修改执行
    • 查看执行详情
    • 删除执行
  • 任务
    • 获取执行任务列表
    • 获取任务详情
    • 创建任务
    • 删除任务
    • 修改任务
  • Bug
    • 获取产品Bug列表
    • 获取Bug详情
    • 创建Bug
    • 删除Bug
    • 修改Bug
  • 用例
    • 获取产品用例列表
    • 获取用例详情
    • 创建用例
    • 删除用例
    • 修改用例
  • 测试单
    • 获取测试单列表
    • 获取项目的测试单
    • 获取测试单详情
    • 创建测试单
    • 删除测试单
    • 修改测试单
  • 反馈
    • 获取反馈列表
    • 获取反馈详情
    • 创建反馈
    • 删除反馈
    • 修改反馈
    • 关闭反馈
    • 指派反馈

测试账号

# 部署方式: okteto up -f hack/okteto.yml --deploy
地址: https://zentao-ysicing.cloud.okteto.net
账号: admin/jaege1ugh4ooYip7
TODO
  • 精简相关参数返回值,只保留重要参数
  • 添加二次开发接口
已知问题
  • 部分字段接口返回有时候是结构体有时候是字符串, 正在协调看能否统一(暂无计划,改动较多)

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AccessToken

type AccessToken struct {
	Token string `json:"token"`
}

type ActionMeta

type ActionMeta struct {
	ID         int           `json:"id"`
	Objecttype string        `json:"objectType"`
	Objectid   int           `json:"objectID"`
	Product    string        `json:"product"`
	Project    int           `json:"project"`
	Execution  int           `json:"execution"`
	Actor      string        `json:"actor"`
	Action     string        `json:"action"`
	Date       string        `json:"date"`
	Comment    string        `json:"comment"`
	Extra      string        `json:"extra"`
	Read       string        `json:"read"`
	History    []interface{} `json:"history"`
	Desc       string        `json:"desc"`
}

type BasicAuth

type BasicAuth struct {
	Account  string `json:"account"`
	Password string `json:"password"`
}

type BugBody

type BugBody struct {
	BugMeta
	Name           string        `json:"name"`
	ID             int           `json:"id"`
	Project        int           `json:"project"`
	Product        int           `json:"product"`
	Plan           int           `json:"plan"`
	Storyversion   int           `json:"storyVersion"`
	Totask         int           `json:"toTask"`
	Tostory        int           `json:"toStory"`
	Keywords       string        `json:"keywords"`
	Hardware       string        `json:"hardware"`
	Found          string        `json:"found"`
	Status         interface{}   `json:"status,omitempty"` // 列表返回结构体, 详情返回字符串
	Substatus      string        `json:"subStatus"`
	Color          string        `json:"color"`
	Confirmed      int           `json:"confirmed"`
	Activatedcount int           `json:"activatedCount"`
	Entry          string        `json:"entry"`
	Lines          string        `json:"lines"`
	V1             string        `json:"v1"`
	V2             string        `json:"v2"`
	Duplicatebug   int           `json:"duplicateBug"`
	Linkbug        string        `json:"linkBug"`
	Case           int           `json:"case"`
	Caseversion    int           `json:"caseVersion"`
	Result         int           `json:"result"`
	Repo           int           `json:"repo"`
	Repotype       string        `json:"repoType"`
	Testtask       int           `json:"testtask"`
	Deleted        bool          `json:"deleted"`
	Activateddate  time.Time     `json:"activatedDate"`
	Feedbackby     string        `json:"feedbackBy,omitempty"`  // 仅bug接口
	Notifyemail    string        `json:"notifyEmail,omitempty"` // 仅bug接口
	Mailto         []interface{} `json:"mailto"`
	Openedby       UserMeta      `json:"openedBy"`
	Openeddate     time.Time     `json:"openedDate"`
	Openedbuild    string        `json:"openedBuild"`
	Assignedto     UserMeta      `json:"assignedTo"`
	Assigneddate   time.Time     `json:"assignedDate"`
	Resolvedby     interface{}   `json:"resolvedBy"`
	Resolution     string        `json:"resolution"`
	Resolvedbuild  string        `json:"resolvedBuild"`
	Resolveddate   interface{}   `json:"resolvedDate"`
	Closedby       interface{}   `json:"closedBy"`
	Closeddate     time.Time     `json:"closedDate"`
	Lasteditedby   UserMeta      `json:"lastEditedBy"`
	Lastediteddate time.Time     `json:"lastEditedDate"`
	Needconfirm    bool          `json:"needconfirm,omitempty"` // 仅列表返回
}

type BugCreateMeta

type BugCreateMeta struct {
	BugMeta
	Openedbuild []string `json:"openedBuild"`
}

type BugGetMsg

type BugGetMsg struct {
	BugBody
	Executionname      string        `json:"executionName"`
	Storytitle         string        `json:"storyTitle"`
	Storystatus        string        `json:"storyStatus"`
	Lateststoryversion int           `json:"latestStoryVersion"`
	Taskname           interface{}   `json:"taskName"`
	Planname           interface{}   `json:"planName"`
	Projectname        string        `json:"projectName"`
	Tocases            []interface{} `json:"toCases"`
	Files              []interface{} `json:"files"`
}

type BugMeta

type BugMeta struct {
	Branch    int    `json:"branch,omitempty"`
	Module    int    `json:"module,omitempty"`
	Execution int    `json:"execution,omitempty"`
	Os        string `json:"os,omitempty"`
	Browser   string `json:"browser,omitempty"`
	Task      int    `json:"task,omitempty"`
	Story     int    `json:"story,omitempty"`
	Deadline  string `json:"deadline,omitempty"`
	Title     string `json:"title"`
	Severity  int    `json:"severity"`
	Pri       int    `json:"pri"`
	Steps     string `json:"steps"`
	Type      string `json:"type"`
}

type BugsService

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

func (*BugsService) Create

func (s *BugsService) Create(id int, build BugCreateMeta) (*BugGetMsg, *req.Response, error)

Create 创建Bug

func (*BugsService) DeleteByID

func (s *BugsService) DeleteByID(id int) (*CustomResp, *req.Response, error)

DeleteByID 删除Bug

func (*BugsService) GetByID

func (s *BugsService) GetByID(id int) (*BugGetMsg, *req.Response, error)

GetByID 获取Bug详情

func (*BugsService) ListByProducts

func (s *BugsService) ListByProducts(id int64, params map[string]string) (*ListProductsBugsMsg, *req.Response, error)

func (*BugsService) UpdateByID

func (s *BugsService) UpdateByID(id int, exec BugCreateMeta) (*BugGetMsg, *req.Response, error)

UpdateByID 修改Bug

type Builder

type Builder struct {
	Id       int    `json:"id"`
	Account  string `json:"account"`
	Avatar   string `json:"avatar"`
	Realname string `json:"realname"`
}

type BuildsBody

type BuildsBody struct {
	ID        int    `json:"id"`
	Project   int    `json:"project"`
	Product   int    `json:"product"`
	Branch    int    `json:"branch"`
	Execution int    `json:"execution"`
	Name      string `json:"name"`
	Scmpath   string `json:"scmPath"`
	Filepath  string `json:"filePath"`
	Date      string `json:"date"`
	//Stories       []StoriesBody `json:"stories"`
	Stories       []int     `json:"stories"`
	Bugs          []BugBody `json:"bugs"`
	Builder       Builder   `json:"builder"`
	Desc          string    `json:"desc"`
	Deleted       bool      `json:"deleted"`
	Executionname string    `json:"executionName"`
	Productname   string    `json:"productName"`
	Executionid   int       `json:"executionID,omitempty"`
	Branchname    string    `json:"branchName,omitempty"`
}

type BuildsCreateMeta

type BuildsCreateMeta struct {
	Execution int    `json:"execution"`
	Product   int    `json:"product"`
	Name      string `json:"name"`
	Builder   string `json:"builder"`
	Date      string `json:"date"`

	Branch   int    `json:"branch,omitempty"`
	ScmPath  string `json:"scmPath,omitempty"`
	FilePath string `json:"filePath,omitempty"`
	Desc     string `json:"desc,omitempty"`
}

type BuildsCreateMsg

type BuildsCreateMsg struct {
	BuildsBody
	Producttype string        `json:"productType,omitempty"`
	Files       []interface{} `json:"files,omitempty"`
}

type BuildsListMsg

type BuildsListMsg struct {
	Total  int          `json:"total"`
	Builds []BuildsBody `json:"builds"`
}

type BuildsService

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

func (*BuildsService) Create

func (s *BuildsService) Create(id int, build BuildsCreateMeta) (*BuildsCreateMsg, *req.Response, error)

Create 创建版本

func (*BuildsService) DeleteByID

func (s *BuildsService) DeleteByID(id int) (*CustomResp, *req.Response, error)

DeleteByID 删除版本

func (*BuildsService) ExecutionsList

func (s *BuildsService) ExecutionsList(id int) (*BuildsListMsg, *req.Response, error)

ExecutionsList 获取执行版本列表

func (*BuildsService) GetByID

func (s *BuildsService) GetByID(id int) (*BuildsCreateMsg, *req.Response, error)

GetByID 获取版本详情

func (*BuildsService) ProjectsList

func (s *BuildsService) ProjectsList(id int) (*BuildsListMsg, *req.Response, error)

ProjectsList 获取项目版本列表

func (*BuildsService) UpdateByID

func (s *BuildsService) UpdateByID(id int, build BuildsCreateMeta) (*BuildsCreateMsg, *req.Response, error)

UpdateByID 修改版本

type Client

type Client struct {
	Token        *TokenService
	Users        *UsersService
	Executions   *ExecutionsService
	Tasks        *TasksService
	Programs     *ProgramsService
	Products     *ProductsService
	ProductPlans *ProductPlansService
	Releases     *ReleasesService
	Stories      *StoriesService
	Projects     *ProjectsService
	Builds       *BuildsService
	Bugs         *BugsService
	TestCases    *TestCasesService
	TestTasks    *TestTasksService
	FeedBacks    *FeedBacksService
	// contains filtered or unexported fields
}

func NewBasicAuthClient

func NewBasicAuthClient(username, password string, options ...ClientOptionFunc) (*Client, *req.Response, error)

func NewClient

func NewClient(token string, options ...ClientOptionFunc) (*Client, error)

func (*Client) RequestURL

func (c *Client) RequestURL(path string) string

type ClientOptionFunc

type ClientOptionFunc func(*Client) error

func WithBaseURL

func WithBaseURL(urlStr string) ClientOptionFunc

WithBaseURL sets the base URL for API requests to a custom endpoint.

func WithDevMode

func WithDevMode() ClientOptionFunc

func WithDumpAll

func WithDumpAll() ClientOptionFunc

func WithUserAgent

func WithUserAgent(ua string) ClientOptionFunc

func WithoutProxy

func WithoutProxy() ClientOptionFunc

WithoutProxy 禁用代理, 默认情况下会读取HTTP_PROXY/HTTPS_PROXY/http_proxy/https_proxy变量

type CustomResp

type CustomResp struct {
	Message string `json:"message,omitempty"`
	Error   string `json:"error,omitempty"`
}

CustomResp 通用Resp

type Execution

type Execution struct {
	ID         int       `json:"id"`
	Name       string    `json:"name"`
	Project    int       `json:"project"`
	Code       string    `json:"code"`
	Type       string    `json:"type"`
	Parent     int       `json:"parent"`
	Begin      string    `json:"begin"`
	End        string    `json:"end"`
	Status     string    `json:"status"`
	OpenedBy   UserMeta  `json:"openedBy"`
	OpenedDate time.Time `json:"openedDate"`
	Progress   int       `json:"progress"`
}

type ExecutionTasks

type ExecutionTasks struct {
	Page  int    `json:"page"`
	Total int    `json:"total"`
	Limit int    `json:"limit"`
	Tasks []Task `json:"tasks"`
}

type ExecutionsCreateMeta

type ExecutionsCreateMeta struct {
	Project int    `json:"project"`
	Name    string `json:"name"`
	Code    string `json:"code"`
	Begin   string `json:"begin"`
	End     string `json:"end"`
	Days    int    `json:"days"`

	Lifetime string `json:"lifetime,omitempty"`
	P0       string `json:"PO,omitempty"`
	PM       string `json:"PM,omitempty"`
	QD       string `json:"QD,omitempty"`
	RD       string `json:"RD,omitempty"`
}

type ExecutionsCreateMsg

type ExecutionsCreateMsg struct {
	ID             int         `json:"id"`
	Project        int         `json:"project"`
	Model          string      `json:"model"`
	Type           string      `json:"type"`
	Lifetime       string      `json:"lifetime"`
	Budget         string      `json:"budget"`
	Budgetunit     string      `json:"budgetUnit"`
	Attribute      string      `json:"attribute"`
	Percent        int         `json:"percent"`
	Milestone      string      `json:"milestone"`
	Output         string      `json:"output"`
	Auth           string      `json:"auth"`
	Parent         int         `json:"parent"`
	Path           string      `json:"path"`
	Grade          int         `json:"grade"`
	Name           string      `json:"name"`
	Code           string      `json:"code"`
	Begin          string      `json:"begin"`
	End            string      `json:"end"`
	Realbegan      string      `json:"realBegan"`
	Realend        string      `json:"realEnd"`
	Days           int         `json:"days"`
	Status         string      `json:"status"`
	Substatus      string      `json:"subStatus"`
	Pri            string      `json:"pri"`
	Desc           string      `json:"desc"`
	Version        int         `json:"version"`
	Parentversion  int         `json:"parentVersion"`
	Planduration   int         `json:"planDuration"`
	Realduration   int         `json:"realDuration"`
	Openedby       UserMeta    `json:"openedBy"`
	Openeddate     time.Time   `json:"openedDate"`
	Openedversion  string      `json:"openedVersion"`
	Lasteditedby   string      `json:"lastEditedBy"`
	Lastediteddate time.Time   `json:"lastEditedDate"`
	Closedby       string      `json:"closedBy"`
	Closeddate     interface{} `json:"closedDate"`
	Canceledby     string      `json:"canceledBy"`
	Canceleddate   interface{} `json:"canceledDate"`
	Po             string      `json:"PO"`
	Pm             string      `json:"PM"`
	Qd             string      `json:"QD"`
	Rd             string      `json:"RD"`
	Team           string      `json:"team"`
	ACL            string      `json:"acl"`
	Whitelist      string      `json:"whitelist"`
	Order          int         `json:"order"`
	Deleted        string      `json:"deleted"`
	Totalhours     int         `json:"totalHours"`
	Totalestimate  int         `json:"totalEstimate"`
	Totalconsumed  int         `json:"totalConsumed"`
	Totalleft      int         `json:"totalLeft"`
}

type ExecutionsService

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

func (*ExecutionsService) Create

func (s *ExecutionsService) Create(id int, build ExecutionsCreateMeta) (*ExecutionsCreateMsg, *req.Response, error)

Create 创建执行

func (*ExecutionsService) DeleteByID

func (s *ExecutionsService) DeleteByID(id int) (*CustomResp, *req.Response, error)

DeleteByID 删除执行

func (*ExecutionsService) GetByID

func (s *ExecutionsService) GetByID(id int) (*ExecutionsCreateMsg, *req.Response, error)

GetByID 获取执行详情

func (*ExecutionsService) ListByProject

func (s *ExecutionsService) ListByProject(id int64) (*ProjectExecutions, *req.Response, error)

func (*ExecutionsService) UpdateByID

func (s *ExecutionsService) UpdateByID(id int, exec ExecutionsUpdateMeta) (*ExecutionsCreateMsg, *req.Response, error)

UpdateByID 修改执行

type ExecutionsUpdateMeta

type ExecutionsUpdateMeta struct {
	ExecutionsCreateMeta
	TeamMembers []string `json:"teamMembers,omitempty"`
	Desc        string   `json:"desc,omitempty"`
	ACL         string   `json:"acl,omitempty"`
	Whitelist   []string `json:"whitelist,omitempty"`
}

type FeedBacksAssign

type FeedBacksAssign struct {
	Assignedto string `json:"assignedTo"`
	Comment    string `json:"comment,omitempty"`
	Mailto     string `json:"mailto,omitempty"`
}

type FeedBacksClose

type FeedBacksClose struct {
	ClosedReason string `json:"closedReason"`
	Comment      string `json:"comment,omitempty"`
}

type FeedBacksCreateMeta

type FeedBacksCreateMeta struct {
	Product     int    `json:"product"`
	Module      int    `json:"module,omitempty"`
	Public      int    `json:"public,omitempty"`
	Notify      int    `json:"notify,omitempty"`
	Title       string `json:"title"`
	Type        string `json:"type,omitempty"`
	Desc        string `json:"Desc,omitempty"`
	NotifyEmail string `json:"notifyEmail,omitempty"`
	FeedbackBy  string `json:"feedbackBy,omitempty"`
}

type FeedBacksGetMsg

type FeedBacksGetMsg struct {
	ID            int           `json:"id"`
	Product       int           `json:"product"`
	Module        int           `json:"module"`
	Title         string        `json:"title"`
	Type          string        `json:"type"`
	Solution      string        `json:"solution"`
	Desc          string        `json:"desc"`
	Status        string        `json:"status"`
	Substatus     string        `json:"subStatus"`
	Public        string        `json:"public"`
	Notify        string        `json:"notify"`
	Notifyemail   string        `json:"notifyEmail"`
	Likes         string        `json:"likes"`
	Result        int           `json:"result"`
	Faq           int           `json:"faq"`
	Openedby      UserMeta      `json:"openedBy"`
	Openeddate    time.Time     `json:"openedDate"`
	Reviewedby    string        `json:"reviewedBy"`
	Revieweddate  string        `json:"reviewedDate"`
	Processedby   string        `json:"processedBy"`
	Processeddate string        `json:"processedDate"`
	Closedby      interface{}   `json:"closedBy"`
	Closeddate    interface{}   `json:"closedDate"`
	Closedreason  string        `json:"closedReason"`
	Editedby      string        `json:"editedBy"`
	Editeddate    string        `json:"editedDate"`
	Assignedto    interface{}   `json:"assignedTo"`
	Assigneddate  time.Time     `json:"assignedDate"`
	Feedbackby    string        `json:"feedbackBy"`
	Mailto        []interface{} `json:"mailto"`
	Deleted       bool          `json:"deleted"`
	Likescount    int           `json:"likesCount"`
	Files         []interface{} `json:"files"`
	Likeicon      string        `json:"likeIcon"`
	Publicstatus  string        `json:"publicStatus"`
	Productname   string        `json:"productName"`
	Modulename    string        `json:"moduleName"`
	Resulttype    string        `json:"resultType"`
	Actions       []struct {
		ID         int           `json:"id"`
		Objecttype string        `json:"objectType"`
		Objectid   int           `json:"objectID"`
		Product    string        `json:"product"`
		Project    int           `json:"project"`
		Execution  int           `json:"execution"`
		Actor      string        `json:"actor"`
		Action     string        `json:"action"`
		Date       string        `json:"date"`
		Comment    string        `json:"comment"`
		Extra      string        `json:"extra"`
		Read       string        `json:"read"`
		Vision     string        `json:"vision"`
		Efforted   int           `json:"efforted"`
		History    []interface{} `json:"history"`
		Desc       string        `json:"desc"`
	} `json:"actions"`
}

type FeedBacksService

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

func (*FeedBacksService) Assign

func (s *FeedBacksService) Assign(id int, assign FeedBacksAssign) (*BugGetMsg, *req.Response, error)

Assign 指派反馈

func (*FeedBacksService) CloseByID

func (s *FeedBacksService) CloseByID(id int, close FeedBacksClose) (*BugGetMsg, *req.Response, error)

CloseByID 关闭反馈

func (*FeedBacksService) Create

func (s *FeedBacksService) Create(fb FeedBacksCreateMeta) (*FeedBacksGetMsg, *req.Response, error)

Create 创建反馈

func (*FeedBacksService) DeleteByID

func (s *FeedBacksService) DeleteByID(id int) (*CustomResp, *req.Response, error)

DeleteByID 删除反馈

func (*FeedBacksService) GetByID

func (s *FeedBacksService) GetByID(id int) (*FeedBacksGetMsg, *req.Response, error)

GetByID 获取反馈详情

func (*FeedBacksService) List

func (s *FeedBacksService) List(solution, orderBy, page, limit string) (*ListFeedBacksMsg, *req.Response, error)

func (*FeedBacksService) UpdateByID

func (s *FeedBacksService) UpdateByID(id int, exec FeedBacksCreateMeta) (*FeedBacksGetMsg, *req.Response, error)

UpdateByID 修改反馈

type LinkStoriesMsg

type LinkStoriesMsg struct {
	ProductPlanBody
	Stories []StoriesBody `json:"stories"`
	Bugs    []BugBody     `json:"bugs"`
}

type ListFeedBacksMsg

type ListFeedBacksMsg struct {
	Page      int `json:"page"`
	Total     int `json:"total"`
	Limit     int `json:"limit"`
	Feedbacks []struct {
		ID            int           `json:"id"`
		Product       int           `json:"product"`
		Module        int           `json:"module"`
		Title         string        `json:"title"`
		Type          string        `json:"type"`
		Solution      string        `json:"solution"`
		Desc          string        `json:"desc"`
		Status        string        `json:"status"`
		Substatus     string        `json:"subStatus"`
		Public        string        `json:"public"`
		Notify        string        `json:"notify"`
		Notifyemail   string        `json:"notifyEmail"`
		Likes         string        `json:"likes"`
		Result        int           `json:"result"`
		Faq           int           `json:"faq"`
		Openedby      UserMeta      `json:"openedBy"`
		Openeddate    time.Time     `json:"openedDate"`
		Reviewedby    interface{}   `json:"reviewedBy"`
		Revieweddate  interface{}   `json:"reviewedDate"`
		Processedby   interface{}   `json:"processedBy"`
		Processeddate interface{}   `json:"processedDate"`
		Closedby      interface{}   `json:"closedBy"`
		Closeddate    interface{}   `json:"closedDate"`
		Closedreason  string        `json:"closedReason"`
		Editedby      UserMeta      `json:"editedBy"`
		Editeddate    time.Time     `json:"editedDate"`
		Assignedto    interface{}   `json:"assignedTo"`
		Assigneddate  string        `json:"assignedDate"`
		Feedbackby    string        `json:"feedbackBy"`
		Mailto        []interface{} `json:"mailto"`
		Deleted       bool          `json:"deleted"`
		Dept          int           `json:"dept"`
	} `json:"feedbacks"`
}

type ListProductsBugsMsg

type ListProductsBugsMsg struct {
	Page  int       `json:"page"`
	Total int       `json:"total"`
	Limit int       `json:"limit"`
	Bugs  []BugBody `json:"bugs"`
}

type ListProductsTestCasesMsg

type ListProductsTestCasesMsg struct {
	Page      int                 `json:"page"`
	Total     int                 `json:"total"`
	Limit     int                 `json:"limit"`
	Testcases []TestcasesListBody `json:"testcases"`
}

type ListTestTasksMsg

type ListTestTasksMsg struct {
	Page      int             `json:"page"`
	Total     int             `json:"total"`
	Limit     int             `json:"limit"`
	Testtasks []TestTasksBody `json:"testtasks"`
}

type PlansBugIDs

type PlansBugIDs struct {
	Bugs []string `json:"bugs"`
}

type PlansStoriesIDs

type PlansStoriesIDs struct {
	Stories []string `json:"stories"`
}

type ProductPlanBody

type ProductPlanBody struct {
	ID      int    `json:"id"`
	Product int    `json:"product"`
	Order   string `json:"order"`
	Deleted bool   `json:"deleted"`
	ProductPlanMeta
}

type ProductPlanCreateMsg

type ProductPlanCreateMsg struct {
	ProductPlanBody

	Status       string        `json:"status"`
	ClosedReason string        `json:"closedReason"`
	Stories      []StoriesBody `json:"stories"`
	Bugs         []BugBody     `json:"bugs"`
}

type ProductPlanGetMsg

type ProductPlanGetMsg struct {
	ProductPlanBody
	Stories []StoriesBody `json:"stories"`
	Bugs    []BugBody     `json:"bugs"`
}

type ProductPlanListBody

type ProductPlanListBody struct {
	ProductPlanBody
	Status       string `json:"status,omitempty"`
	ClosedReason string `json:"closedReason"`
	Stories      int    `json:"stories"`
	Bugs         int    `json:"bugs"`
	Hour         int    `json:"hour"`
	Project      int    `json:"project"`
	ProjectID    string `json:"projectID"`
	Expired      bool   `json:"expired"`
}

type ProductPlanListMsg

type ProductPlanListMsg struct {
	Page  int                   `json:"page"`
	Total int                   `json:"total"`
	Limit int                   `json:"limit"`
	Plans []ProductPlanListBody `json:"plans"`
}

type ProductPlanMeta

type ProductPlanMeta struct {
	Branch int    `json:"branch,omitempty"`
	Title  string `json:"title"`
	Parent int    `json:"parent,omitempty"`
	Desc   string `json:"desc,omitempty"`
	Begin  string `json:"begin,omitempty"`
	End    string `json:"end,omitempty"`
}

type ProductPlanUpdateMsg

type ProductPlanUpdateMsg struct {
	ProductPlanBody
	Stories []StoriesBody `json:"stories"`
	Bugs    []BugBody     `json:"bugs"`
}

type ProductPlansService

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

func (*ProductPlansService) Create

func (s *ProductPlansService) Create(id int, plan ProductPlanMeta) (*ProductPlanCreateMsg, *req.Response, error)

Create 创建产品计划

func (*ProductPlansService) DeleteByID

func (s *ProductPlansService) DeleteByID(id int) (*CustomResp, *req.Response, error)

DeleteByID 删除计划

func (*ProductPlansService) GetByID

func (s *ProductPlansService) GetByID(id int) (*ProductPlanGetMsg, *req.Response, error)

GetByID 获取计划详情

func (*ProductPlansService) LinkBugs

func (s *ProductPlansService) LinkBugs(id int, bug PlansBugIDs) (*LinkStoriesMsg, *req.Response, error)

LinkBugs 产品计划关联Bug

func (*ProductPlansService) LinkStories

func (s *ProductPlansService) LinkStories(id int, story PlansStoriesIDs) (*LinkStoriesMsg, *req.Response, error)

LinkStories 产品计划关联需求

func (*ProductPlansService) List

func (s *ProductPlansService) List(id int) (*ProductPlanListMsg, *req.Response, error)

List 获取产品计划列表

func (*ProductPlansService) UnLinkBugs

func (s *ProductPlansService) UnLinkBugs(id int, bug PlansBugIDs) (*LinkStoriesMsg, *req.Response, error)

UnLinkBugs 产品计划取消关联Bug

func (*ProductPlansService) UnLinkStories

func (s *ProductPlansService) UnLinkStories(id int, story PlansStoriesIDs) (*LinkStoriesMsg, *req.Response, error)

LinkStories 产品计划关联需求

func (*ProductPlansService) UpdateByID

func (s *ProductPlansService) UpdateByID(id int, plan ProductPlanMeta) (*ProductPlanUpdateMsg, *req.Response, error)

UpdateByID 修改计划

type ProductsBody

type ProductsBody struct {
	ID             int        `json:"id"`
	Program        int        `json:"program"`
	Bind           string     `json:"bind"`
	Line           int        `json:"line"`
	Type           string     `json:"type"`
	Status         string     `json:"status"`
	Substatus      string     `json:"subStatus"`
	Desc           string     `json:"desc"`
	Po             UserMeta   `json:"PO"`
	Qd             UserMeta   `json:"QD"`
	Rd             UserMeta   `json:"RD"`
	ACL            string     `json:"acl"`
	Whitelist      []UserMeta `json:"whitelist"`
	Reviewer       string     `json:"reviewer"`
	Createdby      UserMeta   `json:"createdBy"`
	Createddate    time.Time  `json:"createdDate"`
	Createdversion string     `json:"createdVersion"`
	Order          int        `json:"order"`
	Deleted        string     `json:"deleted"`
}

type ProductsCreateMsg

type ProductsCreateMsg struct {
	ProductsMeta
	ProductsBody
	Feedback string `json:"feedback,omitempty"`
	Vision   string `json:"vision,omitempty"`
}

type ProductsExtMsg

type ProductsExtMsg struct {
	Plans      int  `json:"plans"`
	Releases   int  `json:"releases"`
	Builds     int  `json:"builds"`
	Cases      int  `json:"cases"`
	Projects   int  `json:"projects"`
	Executions int  `json:"executions"`
	Bugs       int  `json:"bugs"`
	Docs       int  `json:"docs"`
	Progress   int  `json:"progress"`
	Casereview bool `json:"caseReview"`
}

type ProductsGetMsg

type ProductsGetMsg struct {
	ProductsMeta
	Feedback string `json:"feedback,omitempty"`
	Vision   string `json:"vision,omitempty"`

	Stories ProductsStories `json:"stories"`
	ProductsExtMsg
}

type ProductsList

type ProductsList struct {
	Total    int                `json:"total"`
	Page     int                `json:"page"`
	Limit    int                `json:"limit"`
	Products []ProductsListBody `json:"products"`
}

type ProductsListBody

type ProductsListBody struct {
	ProductsMeta
	ProductsBody

	Linename     string          `json:"lineName"`
	Programname  string          `json:"programName"`
	Stories      ProductsStories `json:"stories"`
	Requirements ProductsStories `json:"requirements"`
	Plans        int             `json:"plans"`
	Releases     int             `json:"releases"`
	Bugs         int             `json:"bugs"`
	Unresolved   int             `json:"unResolved"`
	Closedbugs   int             `json:"closedBugs"`
	Fixedbugs    int             `json:"fixedBugs"`
	Thisweekbugs int             `json:"thisWeekBugs"`
	Assigntonull int             `json:"assignToNull"`
	Progress     int             `json:"progress"`
}

type ProductsMeta

type ProductsMeta struct {
	Name string `json:"name"`
	Code string `json:"code"`
}

type ProductsService

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

func (*ProductsService) Create

func (s *ProductsService) Create(program ProductsMeta) (*ProductsCreateMsg, *req.Response, error)

Create 创建产品

func (*ProductsService) DeleteByID

func (s *ProductsService) DeleteByID(id int) (*CustomResp, *req.Response, error)

DeleteByID 删除产品

func (*ProductsService) GetByID

func (s *ProductsService) GetByID(id int) (*ProductsGetMsg, *req.Response, error)

GetByID 获取产品详情

func (*ProductsService) List

func (s *ProductsService) List() (*ProductsList, *req.Response, error)

List 获取产品列表

func (*ProductsService) UpdateByID

func (s *ProductsService) UpdateByID(id int, user ProductsMeta) (*ProductsUpdateMsg, *req.Response, error)

UpdateByID 更新产品

type ProductsStories

type ProductsStories struct {
	Num0    string `json:"0,omitempty"`
	Num1    string `json:"1,omitempty"`
	Num2    string `json:"2,omitempty"`
	Num3    string `json:"3,omitempty"`
	Num4    string `json:"4,omitempty"`
	Active  int    `json:"active,omitempty"`
	Draft   int    `json:"draft,omitempty"`
	Unknow  int    `json:",omitempty"` // 空 {"": 0} ???
	Closed  int    `json:"closed,omitempty"`
	Changed int    `json:"changed,omitempty"`
}

type ProductsUpdateMsg

type ProductsUpdateMsg struct {
	ProductsMeta
	ProductsBody

	Stories ProductsStories `json:"stories"`
	ProductsExtMsg
}

type ProgramsBody

type ProgramsBody struct {
	ID             int        `json:"id"`
	Project        int        `json:"project"`
	Model          string     `json:"model"`
	Type           string     `json:"type"`
	Lifetime       string     `json:"lifetime"`
	Budget         string     `json:"budget"`
	Budgetunit     string     `json:"budgetUnit"`
	Attribute      string     `json:"attribute"`
	Percent        int        `json:"percent"`
	Milestone      string     `json:"milestone"`
	Output         string     `json:"output"`
	Auth           string     `json:"auth"`
	Path           string     `json:"path"`
	Grade          int        `json:"grade"`
	Code           string     `json:"code"`
	Realbegan      string     `json:"realBegan"`
	Realend        string     `json:"realEnd"`
	Days           int        `json:"days"`
	Status         string     `json:"status"`
	Substatus      string     `json:"subStatus"`
	Pri            string     `json:"pri"`
	Version        int        `json:"version"`
	Parentversion  int        `json:"parentVersion"`
	Planduration   int        `json:"planDuration"`
	Realduration   int        `json:"realDuration"`
	Openedby       UserMeta   `json:"openedBy"`
	Openeddate     time.Time  `json:"openedDate"`
	Openedversion  string     `json:"openedVersion"`
	Lasteditedby   string     `json:"lastEditedBy"`
	Lastediteddate time.Time  `json:"lastEditedDate"`
	Closedby       UserMeta   `json:"closedBy"`
	Closeddate     time.Time  `json:"closedDate"`
	Canceledby     UserMeta   `json:"canceledBy"`
	Canceleddate   time.Time  `json:"canceledDate"`
	Po             UserMeta   `json:"PO"`
	Pm             UserMeta   `json:"PM"`
	Qd             UserMeta   `json:"QD"`
	Rd             UserMeta   `json:"RD"`
	Team           string     `json:"team"`
	ACL            string     `json:"acl"`
	Whitelist      []UserMeta `json:"whitelist"`
	Order          int        `json:"order"`
	Deleted        bool       `json:"deleted"`
}

type ProgramsList

type ProgramsList struct {
	Programs []ProgramsListBody `json:"programs"`
}

type ProgramsListBody

type ProgramsListBody struct {
	ProgramsMeta
	ProgramsBody
	Progress int `json:"progress"`
}

type ProgramsMeta

type ProgramsMeta struct {
	Name   string `json:"name"`
	Parent int    `json:"parent"`
	Desc   string `json:"desc"`
	Begin  string `json:"begin"`
	End    string `json:"end"`
}

type ProgramsMsg

type ProgramsMsg struct {
	ProgramsMeta
	ProgramsBody
}

type ProgramsService

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

func (*ProgramsService) Create

func (s *ProgramsService) Create(program ProgramsMeta) (*ProgramsMsg, *req.Response, error)

Create 创建项目集

func (*ProgramsService) DeleteByID

func (s *ProgramsService) DeleteByID(id int) (*CustomResp, *req.Response, error)

DeleteByID 删除项目集

func (*ProgramsService) GetByID

func (s *ProgramsService) GetByID(id int) (*ProgramsMsg, *req.Response, error)

GetByID 获取项目集详情

func (*ProgramsService) List

func (s *ProgramsService) List(order string) (*ProgramsList, *req.Response, error)

List 获取项目集列表

func (*ProgramsService) UpdateByID

func (s *ProgramsService) UpdateByID(id int, user ProgramsMeta) (*ProgramsMsg, *req.Response, error)

UpdateByID 更新项目集

type ProjectExecutions

type ProjectExecutions struct {
	Page       int         `json:"page"`
	Total      int         `json:"total"`
	Limit      int         `json:"limit"`
	Executions []Execution `json:"executions"`
}

type ProjectsBody

type ProjectsBody struct {
	ID         int       `json:"id"`
	Name       string    `json:"name"`
	Code       string    `json:"code"`
	Model      string    `json:"model"`
	Type       string    `json:"type"`
	Budget     string    `json:"budget"`
	Budgetunit string    `json:"budgetUnit"`
	Parent     int       `json:"parent"`
	Begin      string    `json:"begin"`
	End        string    `json:"end"`
	Status     string    `json:"status"`
	Openedby   UserMeta  `json:"openedBy"`
	Openeddate time.Time `json:"openedDate"`
	Pm         UserMeta  `json:"PM"`
	Progress   int       `json:"progress,omitempty"`
}

type ProjectsCreateMeta

type ProjectsCreateMeta struct {
	Name     string `json:"name"`
	Code     string `json:"code"`
	Begin    string `json:"begin"`            // 计划开始时间
	End      string `json:"end"`              // 计划结束时间
	Products []int  `json:"products"`         // 关联产品
	Model    string `json:"model,omitempty"`  // 项目模型, 默认为scrum
	Parent   int    `json:"parent,omitempty"` // 所属项目集, 默认为0
}

type ProjectsCreateMsg

type ProjectsCreateMsg struct {
	ProjectsBody
	Lifetime       string      `json:"lifetime"`
	Attribute      string      `json:"attribute"`
	Percent        int         `json:"percent"`
	Milestone      string      `json:"milestone"`
	Output         string      `json:"output"`
	Auth           string      `json:"auth"`
	Path           string      `json:"path"`
	Grade          int         `json:"grade"`
	Realbegan      string      `json:"realBegan"`
	Realend        string      `json:"realEnd"`
	Days           int         `json:"days"`
	Substatus      string      `json:"subStatus"`
	Pri            string      `json:"pri"`
	Desc           string      `json:"desc"`
	Version        int         `json:"version"`
	Parentversion  int         `json:"parentVersion"`
	Planduration   int         `json:"planDuration"`
	Realduration   int         `json:"realDuration"`
	Openedversion  string      `json:"openedVersion"`
	Lasteditedby   UserMeta    `json:"lastEditedBy"`
	Lastediteddate time.Time   `json:"lastEditedDate"`
	Closedby       UserMeta    `json:"closedBy"`
	Closeddate     time.Time   `json:"closedDate"`
	Canceledby     UserMeta    `json:"canceledBy"`
	Canceleddate   time.Time   `json:"canceledDate"`
	Po             interface{} `json:"PO"`
	Qd             interface{} `json:"QD"`
	Rd             interface{} `json:"RD"`
	Team           string      `json:"team"`
	ACL            string      `json:"acl"`
	Whitelist      []UserMeta  `json:"whitelist"`
	Order          int         `json:"order"`
	Deleted        bool        `json:"deleted"`
}

type ProjectsListMsg

type ProjectsListMsg struct {
	Page     int            `json:"page"`
	Total    int            `json:"total"`
	Limit    int            `json:"limit"`
	Projects []ProjectsBody `json:"projects"`
}

type ProjectsService

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

func (*ProjectsService) Create

func (s *ProjectsService) Create(program ProjectsCreateMeta) (*ProjectsCreateMsg, *req.Response, error)

Create 创建项目

func (*ProjectsService) DeleteByID

func (s *ProjectsService) DeleteByID(id int) (*CustomResp, *req.Response, error)

DeleteByID 删除项目

func (*ProjectsService) GetByID

func (s *ProjectsService) GetByID(id int) (*ProjectsCreateMsg, *req.Response, error)

GetByID 获取项目详情

func (*ProjectsService) List

func (s *ProjectsService) List(limit, page string) (*ProjectsListMsg, *req.Response, error)

List 获取项目列表

func (*ProjectsService) UpdateByID

func (s *ProjectsService) UpdateByID(id int, pum ProjectsUpdateMeta) (*ProjectsCreateMsg, *req.Response, error)

UpdateByID 修改项目

type ProjectsUpdateMeta

type ProjectsUpdateMeta struct {
	Name      string   `json:"name,omitempty"`
	Code      string   `json:"code,omitempty"`
	Parent    int      `json:"parent,omitempty"`
	Days      int      `json:"days,omitempty"`
	Desc      string   `json:"desc,omitempty"`
	ACL       string   `json:"acl,omitempty"`
	Auth      string   `json:"auth,omitempty"`
	Whitelist []string `json:"whitelist,omitempty"`
}

type Releases

type Releases struct {
	ID          int         `json:"id"`
	Project     int         `json:"project"`
	Product     int         `json:"product"`
	Branch      int         `json:"branch"`
	Build       int         `json:"build"`
	Name        string      `json:"name"`
	Marker      string      `json:"marker"`
	Date        string      `json:"date"`
	Stories     string      `json:"stories"`
	Bugs        string      `json:"bugs"`
	Leftbugs    string      `json:"leftBugs"`
	Desc        string      `json:"desc"`
	Mailto      string      `json:"mailto"`
	Notify      interface{} `json:"notify"`
	Status      string      `json:"status"`
	Substatus   string      `json:"subStatus"`
	Deleted     bool        `json:"deleted"`
	Productname string      `json:"productName"`
	Buildid     int         `json:"buildID"`
	Buildname   string      `json:"buildName"`
	Projectname string      `json:"projectName"`
}

type ReleasesMsg

type ReleasesMsg struct {
	Total    int        `json:"total"`
	Releases []Releases `json:"releases"`
}

type ReleasesService

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

func (*ReleasesService) ProductsList

func (s *ReleasesService) ProductsList(id int) (*ReleasesMsg, *req.Response, error)

List 获取产品发布列表

func (*ReleasesService) ProjectsList

func (s *ReleasesService) ProjectsList(id int) (*ReleasesMsg, *req.Response, error)

List 获取项目发布列表

type SelfMsg

type SelfMsg struct {
	Profile UserProfile `json:"profile"`
}

type StoriesBody

type StoriesBody struct {
	StoriesExtMeta
	ID             int         `json:"id"`
	Parent         int         `json:"parent"`
	Product        int         `json:"product"`
	Branch         int         `json:"branch"`
	Module         int         `json:"module"`
	Plan           string      `json:"plan"`
	Frombug        int         `json:"fromBug"`
	Title          string      `json:"title"`
	Type           string      `json:"type"`
	Status         string      `json:"status"`
	Substatus      string      `json:"subStatus"`
	Color          string      `json:"color"`
	Stage          string      `json:"stage"`
	Stagedby       string      `json:"stagedBy"`
	Mailto         string      `json:"mailto"`
	Openedby       UserMeta    `json:"openedBy"`
	Openeddate     time.Time   `json:"openedDate"`
	Assignedto     string      `json:"assignedTo"`
	Assigneddate   interface{} `json:"assignedDate"`
	Lasteditedby   string      `json:"lastEditedBy"`
	Lastediteddate time.Time   `json:"lastEditedDate"`
	Reviewedby     string      `json:"reviewedBy"`
	Revieweddate   interface{} `json:"reviewedDate"`
	Closedby       string      `json:"closedBy"`
	Closeddate     interface{} `json:"closedDate"`
	Closedreason   string      `json:"closedReason"`
	Tobug          int         `json:"toBug"`
	Childstories   string      `json:"childStories"`
	Linkstories    string      `json:"linkStories"`
	Duplicatestory int         `json:"duplicateStory"`
	Version        int         `json:"version"`
	Urchanged      string      `json:"URChanged"`
	Deleted        string      `json:"deleted"`
	Plantitle      string      `json:"planTitle,omitempty"`
}

type StoriesCreateMeta

type StoriesCreateMeta struct {
	StoriesMeta
	StoriesExtMeta
	Product int `json:"product"`
}

type StoriesExtMeta

type StoriesExtMeta struct {
	Source     string  `json:"source,omitempty"`
	SourceNote string  `json:"sourceNote,omitempty"`
	Pri        int     `json:"pri,omitempty"`
	Category   string  `json:"category,omitempty"`
	Estimate   float64 `json:"estimate,omitempty"`
	Keywords   string  `json:"keywords,omitempty"`
}

type StoriesListMeta

type StoriesListMeta struct {
	Page    int           `json:"page"`
	Total   int           `json:"total"`
	Limit   int           `json:"limit"`
	Stories []StoriesBody `json:"stories"`
}

type StoriesMeta

type StoriesMeta struct {
	Title  string `json:"title,omitempty"`
	Spec   string `json:"spec,omitempty"`
	Verify string `json:"verify,omitempty"`
}

type StoriesMsg

type StoriesMsg struct {
	StoriesBody
	Spec       string        `json:"spec"`
	Verify     string        `json:"verify"`
	Executions []interface{} `json:"executions"`
	Tasks      []interface{} `json:"tasks"`
	Stages     []interface{} `json:"stages"`
	Children   []interface{} `json:"children"`
}

type StoriesService

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

func (*StoriesService) Create

func (s *StoriesService) Create(story StoriesCreateMeta) (*StoriesMsg, *req.Response, error)

Create 创建需求

func (*StoriesService) DeleteByID

func (s *StoriesService) DeleteByID(id int) (*CustomResp, *req.Response, error)

DeleteByID 删除需求

func (*StoriesService) ExecutionsList

func (s *StoriesService) ExecutionsList(id int) (*StoriesListMeta, *req.Response, error)

ExecutionsList 获取执行需求列表

func (*StoriesService) GetByID

func (s *StoriesService) GetByID(id int) (*StoriesMsg, *req.Response, error)

GetByID 获取需求详情

func (*StoriesService) ProductsList

func (s *StoriesService) ProductsList(id int) (*StoriesListMeta, *req.Response, error)

ProductsList 获取产品需求列表

func (*StoriesService) ProjectsList

func (s *StoriesService) ProjectsList(id int) (*StoriesListMeta, *req.Response, error)

ProjectsList 获取项目需求列表

func (*StoriesService) UpdateByID

func (s *StoriesService) UpdateByID(id int, story StoriesMeta) (*StoriesMsg, *req.Response, error)

UpdateByID 变更需求

func (*StoriesService) UpdateFieldByID

func (s *StoriesService) UpdateFieldByID(id int, uf StoriesUpdateFieldMeta) (*StoriesMsg, *req.Response, error)

UpdateFieldByID 修改需求其他字段

type StoriesUpdateFieldMeta

type StoriesUpdateFieldMeta struct {
	StoriesExtMeta
	Module int `json:"module,omitempty"`
}

type Task

type Task struct {
	TaskBody
	StoryVersion       int         `json:"storyVersion"`
	DesignVersion      int         `json:"designVersion"`
	FromBug            int         `json:"fromBug"`
	SubStatus          string      `json:"subStatus"`
	OpenedBy           UserMeta    `json:"openedBy"`
	OpenedDate         time.Time   `json:"openedDate"`
	AssignedTo         UserMeta    `json:"assignedTo"`
	AssignedDate       time.Time   `json:"assignedDate"`
	EstStarted         string      `json:"estStarted"`
	RealStarted        time.Time   `json:"realStarted"`
	FinishedBy         UserMeta    `json:"finishedBy"`
	FinishedDate       time.Time   `json:"finishedDate"`
	FinishedList       string      `json:"finishedList"`
	CanceledBy         interface{} `json:"canceledBy"`
	CanceledDate       interface{} `json:"canceledDate"`
	ClosedBy           interface{} `json:"closedBy"`
	ClosedDate         interface{} `json:"closedDate"`
	PlanDuration       int         `json:"planDuration"`
	RealDuration       int         `json:"realDuration"`
	ClosedReason       string      `json:"closedReason"`
	LastEditedBy       UserMeta    `json:"lastEditedBy"`
	LastEditedDate     time.Time   `json:"lastEditedDate"`
	ActivatedDate      string      `json:"activatedDate"`
	StoryID            interface{} `json:"storyID"`
	StoryTitle         interface{} `json:"storyTitle"`
	Product            interface{} `json:"product"`
	Branch             interface{} `json:"branch"`
	LatestStoryVersion interface{} `json:"latestStoryVersion"`
	StoryStatus        interface{} `json:"storyStatus"`
	AssignedToRealName string      `json:"assignedToRealName"`
	NeedConfirm        bool        `json:"needConfirm"`
}

type TaskBody

type TaskBody struct {
	ID        int         `json:"id"`
	Project   int         `json:"project"`
	Parent    int         `json:"parent"`
	Execution int         `json:"execution"`
	Module    int         `json:"module"`
	Design    int         `json:"design"`
	Story     int         `json:"story"`
	Name      string      `json:"name"`
	Type      string      `json:"type"`
	Pri       int         `json:"pri"`
	Estimate  int         `json:"estimate"`
	Consumed  int         `json:"consumed"`
	Left      int         `json:"left"`
	Deadline  string      `json:"deadline"`
	Status    string      `json:"status"`
	Color     string      `json:"color"`
	Mailto    interface{} `json:"mailto"`
	Desc      string      `json:"desc"`
	Version   int         `json:"version"`
	Deleted   bool        `json:"deleted"`
	Progress  int         `json:"progress"`
}

type TaskCreateMeta

type TaskCreateMeta struct {
	Module     int      `json:"module,omitempty"`
	Story      int      `json:"story,omitempty"`
	FromBug    int      `json:"fromBug,omitempty"`
	Pri        int      `json:"pri,omitempty"`
	Estimate   float64  `json:"estimate,omitempty"`
	Name       string   `json:"name"`
	Assignedto []string `json:"assignedTo"`
	Type       string   `json:"type"`
	Eststarted string   `json:"estStarted"`
	Deadline   string   `json:"deadline"`
}

type TaskCreateMsg

type TaskCreateMsg struct {
	Task
	Children []interface{} `json:"children,omitempty"`
	Team     []interface{} `json:"team,omitempty"`
	Files    []interface{} `json:"files,omitempty"`
}

type TaskGetMsg

type TaskGetMsg struct {
	TaskCreateMsg
	Storyspec     string        `json:"storySpec"`
	Storyverify   string        `json:"storyVerify"`
	Storyfiles    []interface{} `json:"storyFiles"`
	Executionname string        `json:"executionName"`
	Moduletitle   string        `json:"moduleTitle"`
	Actions       []ActionMeta  `json:"actions"`
	Preandnext    struct {
		Pre  string `json:"pre"`
		Next string `json:"next"`
	} `json:"preAndNext"`
}

type TasksService

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

func (*TasksService) Create

func (s *TasksService) Create(id int, build TaskCreateMeta) (*TaskCreateMsg, *req.Response, error)

Create 创建任务

func (*TasksService) DeleteByID

func (s *TasksService) DeleteByID(id int) (*CustomResp, *req.Response, error)

DeleteByID 删除任务

func (*TasksService) GetByID

func (s *TasksService) GetByID(id int) (*TaskGetMsg, *req.Response, error)

GetByID 获取任务详情

func (*TasksService) ListByExecution

func (s *TasksService) ListByExecution(id int64) (*ExecutionTasks, *req.Response, error)

func (*TasksService) UpdateByID

func (s *TasksService) UpdateByID(id int, exec TaskCreateMeta) (*TaskCreateMsg, *req.Response, error)

UpdateByID 修改任务

type TeamMeta

type TeamMeta struct {
	UserMeta
	Root     int    `json:"root"`
	Type     string `json:"type"`
	Limited  string `json:"limited"`
	Join     string `json:"join"`
	Days     int    `json:"days"`
	Hours    int    `json:"hours"`
	Estimate int    `json:"estimate"`
	Consumed int    `json:"consumed"`
	Left     int    `json:"left"`
	Order    int    `json:"order"`
	Progress int    `json:"progress"`
}

type TestCasesCreateMeta

type TestCasesCreateMeta struct {
	Branch       int             `json:"branch,omitempty"`
	Module       int             `json:"module,omitempty"`
	Story        int             `json:"story,omitempty"`
	Stage        string          `json:"stage,omitempty"`
	Precondition string          `json:"precondition,omitempty"`
	Title        string          `json:"title"`
	Keywords     string          `json:"keywords,omitempty"`
	Pri          int             `json:"pri,omitempty"`
	Steps        []TestCasesStep `json:"steps"`
	Type         string          `json:"type"`
}

type TestCasesCreateMsg

type TestCasesCreateMsg struct {
	TestCasesMeta
	Lib             int             `json:"lib"`
	Path            int             `json:"path"`
	Precondition    string          `json:"precondition"`
	Auto            string          `json:"auto"`
	Frame           string          `json:"frame"`
	Stage           string          `json:"stage"`
	Howrun          string          `json:"howRun"`
	Scriptedby      string          `json:"scriptedBy"`
	Scripteddate    interface{}     `json:"scriptedDate"`
	Scriptstatus    string          `json:"scriptStatus"`
	Scriptlocation  string          `json:"scriptLocation"`
	Frequency       string          `json:"frequency"`
	Order           int             `json:"order"`
	Reviewedby      string          `json:"reviewedBy"`
	Revieweddate    interface{}     `json:"reviewedDate"`
	Version         int             `json:"version"`
	Linkcase        string          `json:"linkCase"`
	Frombug         int             `json:"fromBug"`
	Fromcaseid      int             `json:"fromCaseID"`
	Fromcaseversion int             `json:"fromCaseVersion"`
	Lastrunner      string          `json:"lastRunner"`
	Lastrundate     interface{}     `json:"lastRunDate"`
	Lastrunresult   string          `json:"lastRunResult"`
	Tobugs          []interface{}   `json:"toBugs"`
	Steps           []TestCasesStep `json:"steps"`
	Files           []interface{}   `json:"files"`
	Currentversion  int             `json:"currentVersion"`
}

type TestCasesGetMsg

type TestCasesGetMsg struct {
	TestCasesMeta
	Plan               int           `json:"plan"`
	Task               int           `json:"task"`
	Totask             int           `json:"toTask"`
	Tostory            int           `json:"toStory"`
	Severity           int           `json:"severity"`
	Os                 string        `json:"os"`
	Browser            string        `json:"browser"`
	Hardware           string        `json:"hardware"`
	Found              string        `json:"found"`
	Steps              string        `json:"steps"`
	Confirmed          int           `json:"confirmed"`
	Activatedcount     int           `json:"activatedCount"`
	Activateddate      time.Time     `json:"activatedDate"`
	Feedbackby         string        `json:"feedbackBy"`
	Notifyemail        string        `json:"notifyEmail"`
	Mailto             []interface{} `json:"mailto"`
	Openedbuild        string        `json:"openedBuild"`
	Assignedto         UserMeta      `json:"assignedTo"`
	Assigneddate       time.Time     `json:"assignedDate"`
	Deadline           interface{}   `json:"deadline"`
	Resolvedby         UserMeta      `json:"resolvedBy"`
	Resolution         string        `json:"resolution"`
	Resolvedbuild      string        `json:"resolvedBuild"`
	Resolveddate       interface{}   `json:"resolvedDate"`
	Closedby           UserMeta      `json:"closedBy"`
	Closeddate         time.Time     `json:"closedDate"`
	Duplicatebug       int           `json:"duplicateBug"`
	Linkbug            string        `json:"linkBug"`
	Case               int           `json:"case"`
	Caseversion        int           `json:"caseVersion"`
	Result             int           `json:"result"`
	Repo               int           `json:"repo"`
	Entry              string        `json:"entry"`
	Lines              string        `json:"lines"`
	V1                 string        `json:"v1"`
	V2                 string        `json:"v2"`
	Repotype           string        `json:"repoType"`
	Testtask           int           `json:"testtask"`
	Executionname      string        `json:"executionName"`
	Storystatus        string        `json:"storyStatus"`
	Lateststoryversion int           `json:"latestStoryVersion"`
	Taskname           interface{}   `json:"taskName"`
	Planname           interface{}   `json:"planName"`
	Projectname        string        `json:"projectName"`
	Tocases            []interface{} `json:"toCases"`
	Files              []interface{} `json:"files"`
}

type TestCasesMeta

type TestCasesMeta struct {
	ID             int         `json:"id"`
	Project        int         `json:"project"`
	Product        int         `json:"product"`
	Execution      int         `json:"execution"`
	Branch         int         `json:"branch"`
	Module         int         `json:"module"`
	Story          int         `json:"story"`
	Storyversion   int         `json:"storyVersion"`
	Title          string      `json:"title"`
	Keywords       string      `json:"keywords"`
	Pri            int         `json:"pri"`
	Type           string      `json:"type"`
	Status         string      `json:"status"`
	Substatus      string      `json:"subStatus"`
	Color          string      `json:"color"`
	Openedby       UserMeta    `json:"openedBy"`
	Openeddate     time.Time   `json:"openedDate"`
	Lasteditedby   interface{} `json:"lastEditedBy"`
	Lastediteddate interface{} `json:"lastEditedDate"`
	Deleted        bool        `json:"deleted"`
	Storytitle     interface{} `json:"storyTitle,omitempty"`
}

type TestCasesService

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

func (*TestCasesService) Create

func (s *TestCasesService) Create(id int, build TestCasesCreateMeta) (*TestCasesCreateMsg, *req.Response, error)

Create 创建用例

func (*TestCasesService) DeleteByID

func (s *TestCasesService) DeleteByID(id int) (*CustomResp, *req.Response, error)

DeleteByID 删除用例

func (*TestCasesService) GetByID

func (s *TestCasesService) GetByID(id int) (*TestCasesCreateMsg, *req.Response, error)

GetByID 获取用例详情

func (*TestCasesService) ListByProducts

func (s *TestCasesService) ListByProducts(id int64) (*ListProductsTestCasesMsg, *req.Response, error)

func (*TestCasesService) UpdateByID

func (s *TestCasesService) UpdateByID(id int, tc TestCasesCreateMeta) (*TestCasesCreateMsg, *req.Response, error)

UpdateByID 修改用例

type TestCasesStep

type TestCasesStep struct {
	ID      int    `json:"id"`
	Parent  int    `json:"parent"`
	Case    int    `json:"case"`
	Version int    `json:"version"`
	Type    string `json:"type"`
	Desc    string `json:"desc"`
	Expect  string `json:"expect"`
}

type TestTaskCreateMeta

type TestTaskCreateMeta struct {
	Execution  int    `json:"execution"`
	Product    int    `json:"product"`
	Name       string `json:"name"`
	Build      string `json:"build"`
	Owner      string `json:"owner"`
	Pri        int    `json:"pri"`
	Begin      string `json:"begin"`
	End        string `json:"end"`
	Desc       string `json:"desc"`
	Status     string `json:"status"`
	Testreport int    `json:"testreport"`
}

type TestTasksBody

type TestTasksBody struct {
	ID               int           `json:"id"`
	Project          int           `json:"project"`
	Product          int           `json:"product"`
	Name             string        `json:"name"`
	Execution        int           `json:"execution"`
	Build            string        `json:"build"`
	Type             string        `json:"type"`
	Owner            UserMeta      `json:"owner"`
	Pri              int           `json:"pri"`
	Begin            string        `json:"begin"`
	End              string        `json:"end"`
	Realfinisheddate interface{}   `json:"realFinishedDate"`
	Mailto           []UserMeta    `json:"mailto"`
	Desc             string        `json:"desc"`
	Report           string        `json:"report"`
	Status           string        `json:"status"`
	Testreport       int           `json:"testreport"`
	Auto             string        `json:"auto"`
	Substatus        string        `json:"subStatus"`
	Deleted          string        `json:"deleted"`
	Productname      string        `json:"productName"`
	Executionname    string        `json:"executionName"`
	Buildname        string        `json:"buildName"`
	Branch           int           `json:"branch"`
	CreatedBy        string        `json:"createdBy"`
	CreatedDate      string        `json:"createdDate"`
	Files            []interface{} `json:"files,omitempty"`

	Testcases []TestcasesListBody `json:"testcases,omitempty"`
}

type TestTasksMsg

type TestTasksMsg struct {
	ID               int         `json:"id"`
	Project          int         `json:"project"`
	Product          int         `json:"product"`
	Name             string      `json:"name"`
	Execution        int         `json:"execution"`
	Build            string      `json:"build"`
	Type             string      `json:"type"`
	Owner            string      `json:"owner"`
	Pri              int         `json:"pri"`
	Begin            string      `json:"begin"`
	End              string      `json:"end"`
	Realfinisheddate interface{} `json:"realFinishedDate"`
	Mailto           string      `json:"mailto"`
	Desc             string      `json:"desc"`
	Report           string      `json:"report"`
	Status           string      `json:"status"`
	Testreport       int         `json:"testreport"`
	Auto             string      `json:"auto"`
	Substatus        string      `json:"subStatus"`
	Deleted          string      `json:"deleted"`
	Productname      string      `json:"productName"`
	Executionname    string      `json:"executionName"`
	Buildname        string      `json:"buildName"`
	Branch           int         `json:"branch"`
	CreatedBy        string      `json:"createdBy"`
	CreatedDate      string      `json:"createdDate"`
}

type TestTasksService

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

func (*TestTasksService) Create

func (s *TestTasksService) Create(testtask TestTaskCreateMeta) (*TestTasksMsg, *req.Response, error)

Create 创建测试单

func (*TestTasksService) DeleteByID

func (s *TestTasksService) DeleteByID(id int) (*CustomResp, *req.Response, error)

DeleteByID 删除测试单

func (*TestTasksService) GetByID

func (s *TestTasksService) GetByID(id int) (*TestTasksBody, *req.Response, error)

func (*TestTasksService) List

func (s *TestTasksService) List(page, limit, order, product, branch string) (*ListTestTasksMsg, *req.Response, error)

List 获取测试单列表

func (*TestTasksService) ListByProjects

func (s *TestTasksService) ListByProjects(id int64) (*ListTestTasksMsg, *req.Response, error)

func (*TestTasksService) UpdateByID

func (s *TestTasksService) UpdateByID(id int, testtask TestTaskCreateMeta) (*TestTasksMsg, *req.Response, error)

UpdateByID 修改测试单

type TestcasesListBody

type TestcasesListBody struct {
	TestCasesMeta
	Lib             int         `json:"lib"`
	Path            int         `json:"path"`
	Precondition    string      `json:"precondition"`
	Auto            string      `json:"auto"`
	Frame           string      `json:"frame"`
	Stage           string      `json:"stage"`
	Howrun          string      `json:"howRun"`
	Scriptedby      string      `json:"scriptedBy"`
	Scripteddate    interface{} `json:"scriptedDate"`
	Scriptstatus    string      `json:"scriptStatus"`
	Scriptlocation  string      `json:"scriptLocation"`
	Frequency       string      `json:"frequency"`
	Order           int         `json:"order"`
	Reviewedby      interface{} `json:"reviewedBy"`
	Revieweddate    interface{} `json:"reviewedDate"`
	Version         int         `json:"version"`
	Linkcase        string      `json:"linkCase"`
	Frombug         int         `json:"fromBug"`
	Fromcaseid      int         `json:"fromCaseID"`
	Fromcaseversion int         `json:"fromCaseVersion"`
	Lastrunner      string      `json:"lastRunner"`
	Lastrundate     interface{} `json:"lastRunDate"`
	Lastrunresult   string      `json:"lastRunResult"`
	Needconfirm     bool        `json:"needconfirm"`
	Bugs            int         `json:"bugs"`
	Results         int         `json:"results"`
	Casefails       int         `json:"caseFails"`
	Stepnumber      int         `json:"stepNumber"`
	Statusname      string      `json:"statusName"`
}

type TokenService

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

func (*TokenService) GetAccessToken

func (s *TokenService) GetAccessToken() (*AccessToken, *req.Response, error)

type UserCreateMeta

type UserCreateMeta struct {
	Account  string `json:"account"`
	Password string `json:"password"`
	Realname string `json:"realname,omitempty"`
	Visions  string `json:"visions,omitempty"`
}

type UserGender

type UserGender string
var (
	ManGender   UserGender = "m" // 男
	WomanGender UserGender = "f" // 女
)

type UserList

type UserList struct {
	Page  int        `json:"page"`
	Total int        `json:"total"`
	Limit int        `json:"limit"`
	Users []UserMeta `json:"users"`
}

type UserMeta

type UserMeta struct {
	ID       int         `json:"id"`
	Dept     int         `json:"dept,omitempty"`
	Account  string      `json:"account"`
	Realname string      `json:"realname"`
	Role     interface{} `json:"role,omitempty"` // Role这个字段比较特殊
	Email    string      `json:"email,omitempty"`
	Avatar   string      `json:"avatar,omitempty"`
}

type UserProfile

type UserProfile struct {
	UserMeta
	UserSocial
	Admin        bool   `json:"admin,omitempty"`
	Pinyin       string `json:"pinyin,omitempty"`
	Visions      string `json:"visions,omitempty"`
	Feedback     string `json:"feedback,omitempty"`
	Ldap         string `json:"ldap,omitempty"`
	Clientstatus string `json:"clientStatus,omitempty"`
	Clientlang   string `json:"clientLang,omitempty"`
}

type UserSocial

type UserSocial struct {
	Score      int        `json:"score"`
	Scorelevel int        `json:"scoreLevel"`
	Deleted    string     `json:"deleted"`
	Ranzhi     string     `json:"ranzhi"`
	Last       string     `json:"last"`
	Fails      int        `json:"fails"`
	Locked     string     `json:"locked"`
	Join       string     `json:"join"`
	Visits     int        `json:"visits"`
	IP         string     `json:"ip"`
	Company    int        `json:"company"`
	Type       UserType   `json:"type"`
	Nickname   string     `json:"nickname"`
	Commiter   string     `json:"commiter"`
	Birthday   string     `json:"birthday"`
	Address    string     `json:"address"`
	Zipcode    string     `json:"zipcode"`
	Nature     string     `json:"nature"`
	Analysis   string     `json:"analysis"`
	Strategy   string     `json:"strategy"`
	Gender     UserGender `json:"gender"`
	Skype      string     `json:"skype"`
	Qq         string     `json:"qq"`
	Mobile     string     `json:"mobile"`
	Phone      string     `json:"phone"`
	Weixin     string     `json:"weixin"`
	Dingding   string     `json:"dingding"`
	Slack      string     `json:"slack"`
	Whatsapp   string     `json:"whatsapp"`
}

type UserType

type UserType string

UserType 用户类型

var (
	InSideUser  UserType = "inside"  // 内部用户
	OutSideUser UserType = "outside" // 外部用户
)

type UserUpdateMeta

type UserUpdateMeta struct {
	Dept     int    `json:"dept,omitempty"`
	Role     string `json:"role,omitempty"`
	Mobile   string `json:"mobile,omitempty"`
	Realname string `json:"realname,omitempty"`
	Email    string `json:"email,omitempty"`
	Phone    string `json:"phone,omitempty"`
}

type UsersService

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

func (*UsersService) Create

func (s *UsersService) Create(user UserCreateMeta) (*UserProfile, *req.Response, error)

Create 创建用户

func (*UsersService) DeleteByID

func (s *UsersService) DeleteByID(id int) (*CustomResp, *req.Response, error)

DeleteByID 删除用户

func (*UsersService) GetByID

func (s *UsersService) GetByID(id int) (*UserProfile, *req.Response, error)

GetByID 获取用户信息

func (*UsersService) List

func (s *UsersService) List(limit, page string) (*UserList, *req.Response, error)

List 获取用户列表

func (*UsersService) Self

func (s *UsersService) Self() (*SelfMsg, *req.Response, error)

Self 获取我的个人信息

func (*UsersService) UpdateByID

func (s *UsersService) UpdateByID(id int, user UserUpdateMeta) (*UserProfile, *req.Response, error)

UpdateByID 更新用户

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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