taigo

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

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

Go to latest
Published: Apr 12, 2019 License: Apache-2.0 Imports: 11 Imported by: 0

README

Taiga API client written in Go

This library doesn't cover all the API, so contributions are welcome.

Generate auth token

Run the script gen_token.sh to get e fresh auth token from your credentials.

Usage

Like many other Go API clients, this library follows the same pattern as go-github:

// Create a client
client := taigo.NewClient("YOUR-TAIGA-API-URL", "YOUR-AUTH-TOKEN")

// Get a project for its slug name
project, _, err := client.Project.GetBySlug("user-project")

// List userstories of the project
opts := taigo.UserStoryListOptions{ ProjectID: &project.ID }
userstories, _, err := client.UserStory.List(opts)

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Bool

func Bool(v bool) *bool

func Int

func Int(v int) *int

func IsErrNotFound

func IsErrNotFound(err error) bool

func String

func String(v string) *string

Types

type Client

type Client struct {
	URL *url.URL

	Project         *ProjectService
	UserStory       *UserStoryService
	UserStoryStatus *UserStoryStatusService
	Issue           *IssueService
	IssueStatus     *IssueStatusService
	Task            *TaskService
	TaskStatus      *TaskStatusService
	// contains filtered or unexported fields
}

func NewClient

func NewClient(URL, authToken string) *Client

func (*Client) Do

func (c *Client) Do(req *http.Request, v interface{}) (*Response, error)

Do performs the request, the json received in the response is decoded and stored in the value pointed by v. Do can be used to perform the request created with NewRequest, which should be used only for API requests not implemented in this library.

func (*Client) NewRequest

func (c *Client) NewRequest(method, urlStr string, opt interface{}, body interface{}) (*http.Request, error)

NewRequest creates an API request. This method can be used to performs API request not implemented in this library. Otherwise it should not be be used directly. Relative URLs should always be specified without a preceding slash.

type Issue

type Issue struct {
	AssignedTo          int `json:"assigned_to"`
	AssignedToExtraInfo struct {
		BigPhoto        interface{} `json:"big_photo"`
		FullNameDisplay string      `json:"full_name_display"`
		GravatarID      string      `json:"gravatar_id"`
		ID              int         `json:"id"`
		IsActive        bool        `json:"is_active"`
		Photo           interface{} `json:"photo"`
		Username        string      `json:"username"`
	} `json:"assigned_to_extra_info"`
	BlockedNote          string      `json:"blocked_note"`
	BlockedNoteHTML      string      `json:"blocked_note_html"`
	Comment              string      `json:"comment"`
	CreatedDate          time.Time   `json:"created_date"`
	Description          string      `json:"description"`
	DescriptionHTML      string      `json:"description_html"`
	ExternalReference    interface{} `json:"external_reference"`
	FinishedDate         interface{} `json:"finished_date"`
	GeneratedUserStories interface{} `json:"generated_user_stories"`
	ID                   int         `json:"id"`
	IsBlocked            bool        `json:"is_blocked"`
	IsClosed             bool        `json:"is_closed"`
	IsVoter              bool        `json:"is_voter"`
	IsWatcher            bool        `json:"is_watcher"`
	Milestone            interface{} `json:"milestone"`
	ModifiedDate         time.Time   `json:"modified_date"`
	Neighbors            struct {
		Next struct {
			ID      int    `json:"id"`
			Ref     int    `json:"ref"`
			Subject string `json:"subject"`
		} `json:"next"`
		Previous struct {
			ID      int    `json:"id"`
			Ref     int    `json:"ref"`
			Subject string `json:"subject"`
		} `json:"previous"`
	} `json:"neighbors"`
	Owner          int `json:"owner"`
	OwnerExtraInfo struct {
		BigPhoto        interface{} `json:"big_photo"`
		FullNameDisplay string      `json:"full_name_display"`
		GravatarID      string      `json:"gravatar_id"`
		ID              int         `json:"id"`
		IsActive        bool        `json:"is_active"`
		Photo           interface{} `json:"photo"`
		Username        string      `json:"username"`
	} `json:"owner_extra_info"`
	Priority         int `json:"priority"`
	Project          int `json:"project"`
	ProjectExtraInfo struct {
		ID           int         `json:"id"`
		LogoSmallURL interface{} `json:"logo_small_url"`
		Name         string      `json:"name"`
		Slug         string      `json:"slug"`
	} `json:"project_extra_info"`
	Ref             int `json:"ref"`
	Severity        int `json:"severity"`
	Status          int `json:"status"`
	StatusExtraInfo struct {
		Color    string `json:"color"`
		IsClosed bool   `json:"is_closed"`
		Name     string `json:"name"`
	} `json:"status_extra_info"`
	Subject       string          `json:"subject"`
	Tags          [][]interface{} `json:"tags"`
	TotalVoters   int             `json:"total_voters"`
	TotalWatchers int             `json:"total_watchers"`
	Type          int             `json:"type"`
	Version       int             `json:"version"`
	Watchers      []int           `json:"watchers"`
}

type IssueListEntry

type IssueListEntry struct {
	AssignedTo          interface{} `json:"assigned_to"`
	AssignedToExtraInfo interface{} `json:"assigned_to_extra_info"`
	BlockedNote         string      `json:"blocked_note"`
	CreatedDate         time.Time   `json:"created_date"`
	ExternalReference   interface{} `json:"external_reference"`
	FinishedDate        interface{} `json:"finished_date"`
	ID                  int         `json:"id"`
	IsBlocked           bool        `json:"is_blocked"`
	IsClosed            bool        `json:"is_closed"`
	IsVoter             bool        `json:"is_voter"`
	IsWatcher           bool        `json:"is_watcher"`
	Milestone           interface{} `json:"milestone"`
	ModifiedDate        time.Time   `json:"modified_date"`
	Owner               int         `json:"owner"`
	OwnerExtraInfo      struct {
		BigPhoto        interface{} `json:"big_photo"`
		FullNameDisplay string      `json:"full_name_display"`
		GravatarID      string      `json:"gravatar_id"`
		ID              int         `json:"id"`
		IsActive        bool        `json:"is_active"`
		Photo           interface{} `json:"photo"`
		Username        string      `json:"username"`
	} `json:"owner_extra_info"`
	Priority         int `json:"priority"`
	Project          int `json:"project"`
	ProjectExtraInfo struct {
		ID           int         `json:"id"`
		LogoSmallURL interface{} `json:"logo_small_url"`
		Name         string      `json:"name"`
		Slug         string      `json:"slug"`
	} `json:"project_extra_info"`
	Ref             int `json:"ref"`
	Severity        int `json:"severity"`
	Status          int `json:"status"`
	StatusExtraInfo struct {
		Color    string `json:"color"`
		IsClosed bool   `json:"is_closed"`
		Name     string `json:"name"`
	} `json:"status_extra_info"`
	Subject       string          `json:"subject"`
	Tags          [][]interface{} `json:"tags"`
	TotalVoters   int             `json:"total_voters"`
	TotalWatchers int             `json:"total_watchers"`
	Type          int             `json:"type"`
	Version       int             `json:"version"`
	Watchers      []int           `json:"watchers"`
}

type IssueListOptions

type IssueListOptions struct {
	Project        *int  `url:"project,omitempty"`
	Status         *int  `url:"status,omitempty"`
	Severity       *int  `json:"severity"`
	Priority       *int  `json:"priority"`
	Owner          *int  `json:"owner"`
	Type           *int  `json:"type"`
	Watchers       *int  `url:"watchers,omitempty"`
	AssignedTo     *int  `url:"assigned_to,omitempty"`
	StatusIsClosed *bool `url:"status__is_closed,omitempty"`
}

type IssueRequest

type IssueRequest struct {
	Version         int       `json:"version"`
	Status          *int      `json:"status,omitempty"`
	Project         *int      `json:"project,omitempty"`
	Subject         *string   `json:"subject,omitempty"`
	Description     *string   `json:"description,omitempty"`
	AssignedTo      *int      `json:"assigned_to,omitempty"`
	BlockedNote     *string   `json:"blocked_note,omitempty"`
	IsBlocked       *bool     `json:"is_blocked,omitempty"`
	IsClosed        *bool     `json:"is_closed,omitempty"`
	KanbanOrder     *int      `json:"kanban_order,omitempty"`
	Milestone       *int      `json:"milestone,omitempty"`
	Severity        *int      `json:"severity,omitempty"`
	Priority        *int      `json:"priority,omitempty"`
	Type            *int      `json:"type,omitempty"`
	Tags            *[]string `json:"tags,omitempty"`
	TeamRequirement *bool     `json:"team_requirement,omitempty"`
	Watchers        *[]int    `json:"watchers,omitempty"`
}

type IssueService

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

func (*IssueService) Create

func (s *IssueService) Create(body *IssueRequest) (*Issue, *Response, error)

func (*IssueService) Edit

func (s *IssueService) Edit(ID int, body *IssueRequest) (*Issue, *Response, error)

func (*IssueService) Get

func (s *IssueService) Get(ID int) (*Issue, *Response, error)

func (*IssueService) GetByRef

func (s *IssueService) GetByRef(project interface{}, ref int) (*Issue, *Response, error)

func (*IssueService) List

type IssueStatus

type IssueStatus struct {
	Color      string      `json:"color"`
	ID         int         `json:"id"`
	IsArchived bool        `json:"is_archived"`
	IsClosed   bool        `json:"is_closed"`
	Name       string      `json:"name"`
	Order      int         `json:"order"`
	Project    int         `json:"project"`
	Slug       string      `json:"slug"`
	WipLimit   interface{} `json:"wip_limit"`
}

type IssueStatusListOptions

type IssueStatusListOptions struct {
	ProjectID *int `url:"project,omitempty"`
}

type IssueStatusService

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

func (*IssueStatusService) List

type Project

type Project struct {
	ID                   int       `json:"id"`
	Name                 string    `json:"name"`
	CreatedDate          time.Time `json:"created_date"`
	ModifiedDate         time.Time `json:"modified_date"`
	Description          string    `json:"description"`
	MyPermissions        []string  `json:"my_permissions"`
	EpicCustomAttributes []struct {
		CreatedDate  time.Time `json:"created_date"`
		Description  string    `json:"description"`
		ID           int       `json:"id"`
		ModifiedDate time.Time `json:"modified_date"`
		Name         string    `json:"name"`
		Order        int       `json:"order"`
		ProjectID    int       `json:"project_id"`
		Type         string    `json:"type"`
	} `json:"epic_custom_attributes"`
	EpicStatuses []struct {
		Color     string `json:"color"`
		ID        int    `json:"id"`
		IsClosed  bool   `json:"is_closed"`
		Name      string `json:"name"`
		Order     int    `json:"order"`
		ProjectID int    `json:"project_id"`
		Slug      string `json:"slug"`
	} `json:"epic_statuses"`
	IAmAdmin           bool `json:"i_am_admin"`
	IAmMember          bool `json:"i_am_member"`
	IAmOwner           bool `json:"i_am_owner"`
	IsBacklogActivated bool `json:"is_backlog_activated"`
	IsContactActivated bool `json:"is_contact_activated"`
	IsEpicsActivated   bool `json:"is_epics_activated"`
	IsFan              bool `json:"is_fan"`
	IsFeatured         bool `json:"is_featured"`
	IsIssuesActivated  bool `json:"is_issues_activated"`
	IsKanbanActivated  bool `json:"is_kanban_activated"`
	IsLookingForPeople bool `json:"is_looking_for_people"`
	IsOutOfOwnerLimits bool `json:"is_out_of_owner_limits"`
	IsPrivate          bool `json:"is_private"`
	IsPrivateExtraInfo struct {
		CanBeUpdated bool        `json:"can_be_updated"`
		Reason       interface{} `json:"reason"`
	} `json:"is_private_extra_info"`
	IsWatcher             bool `json:"is_watcher"`
	IsWikiActivated       bool `json:"is_wiki_activated"`
	IssueCustomAttributes []struct {
		CreatedDate  time.Time `json:"created_date"`
		Description  string    `json:"description"`
		ID           int       `json:"id"`
		ModifiedDate time.Time `json:"modified_date"`
		Name         string    `json:"name"`
		Order        int       `json:"order"`
		ProjectID    int       `json:"project_id"`
		Type         string    `json:"type"`
	} `json:"issue_custom_attributes"`
	IssueStatuses []struct {
		Color     string `json:"color"`
		ID        int    `json:"id"`
		IsClosed  bool   `json:"is_closed"`
		Name      string `json:"name"`
		Order     int    `json:"order"`
		ProjectID int    `json:"project_id"`
		Slug      string `json:"slug"`
	} `json:"issue_statuses"`
	IssueTypes []struct {
		Color     string `json:"color"`
		ID        int    `json:"id"`
		Name      string `json:"name"`
		Order     int    `json:"order"`
		ProjectID int    `json:"project_id"`
	} `json:"issue_types"`
	IssuesCsvUUID        interface{} `json:"issues_csv_uuid"`
	LogoBigURL           string      `json:"logo_big_url"`
	LogoSmallURL         string      `json:"logo_small_url"`
	LookingForPeopleNote string      `json:"looking_for_people_note"`
	MaxMemberships       interface{} `json:"max_memberships"`
	Members              []struct {
		Color           string      `json:"color"`
		FullName        string      `json:"full_name"`
		FullNameDisplay string      `json:"full_name_display"`
		GravatarID      string      `json:"gravatar_id"`
		ID              int         `json:"id"`
		IsActive        bool        `json:"is_active"`
		Photo           interface{} `json:"photo"`
		Role            int         `json:"role"`
		RoleName        string      `json:"role_name"`
		Username        string      `json:"username"`
	} `json:"members"`
	Milestones []struct {
		Closed bool   `json:"closed"`
		ID     int    `json:"id"`
		Name   string `json:"name"`
		Slug   string `json:"slug"`
	} `json:"milestones"`
	NotifyLevel int `json:"notify_level"`
	Owner       struct {
		BigPhoto        interface{} `json:"big_photo"`
		FullNameDisplay string      `json:"full_name_display"`
		GravatarID      string      `json:"gravatar_id"`
		ID              int         `json:"id"`
		IsActive        bool        `json:"is_active"`
		Photo           interface{} `json:"photo"`
		Username        string      `json:"username"`
	} `json:"owner"`
	Points []struct {
		ID        int         `json:"id"`
		Name      string      `json:"name"`
		Order     int         `json:"order"`
		ProjectID int         `json:"project_id"`
		Value     interface{} `json:"value"`
	} `json:"points"`
	Priorities []struct {
		Color     string `json:"color"`
		ID        int    `json:"id"`
		Name      string `json:"name"`
		Order     int    `json:"order"`
		ProjectID int    `json:"project_id"`
	} `json:"priorities"`
	PublicPermissions []interface{} `json:"public_permissions"`
	Roles             []struct {
		Computable  bool     `json:"computable"`
		ID          int      `json:"id"`
		Name        string   `json:"name"`
		Order       int      `json:"order"`
		Permissions []string `json:"permissions"`
		ProjectID   int      `json:"project_id"`
		Slug        string   `json:"slug"`
	} `json:"roles"`
	Severities []struct {
		Color     string `json:"color"`
		ID        int    `json:"id"`
		Name      string `json:"name"`
		Order     int    `json:"order"`
		ProjectID int    `json:"project_id"`
	} `json:"severities"`
	Slug       string        `json:"slug"`
	Tags       []interface{} `json:"tags"`
	TagsColors struct {
	} `json:"tags_colors"`
	TaskCustomAttributes []struct {
		CreatedDate  time.Time `json:"created_date"`
		Description  string    `json:"description"`
		ID           int       `json:"id"`
		ModifiedDate time.Time `json:"modified_date"`
		Name         string    `json:"name"`
		Order        int       `json:"order"`
		ProjectID    int       `json:"project_id"`
		Type         string    `json:"type"`
	} `json:"task_custom_attributes"`
	TaskStatuses []struct {
		Color     string `json:"color"`
		ID        int    `json:"id"`
		IsClosed  bool   `json:"is_closed"`
		Name      string `json:"name"`
		Order     int    `json:"order"`
		ProjectID int    `json:"project_id"`
		Slug      string `json:"slug"`
	} `json:"task_statuses"`
	TasksCsvUUID           interface{} `json:"tasks_csv_uuid"`
	TotalActivity          int         `json:"total_activity"`
	TotalActivityLastMonth int         `json:"total_activity_last_month"`
	TotalActivityLastWeek  int         `json:"total_activity_last_week"`
	TotalActivityLastYear  int         `json:"total_activity_last_year"`
	TotalClosedMilestones  int         `json:"total_closed_milestones"`
	TotalFans              int         `json:"total_fans"`
	TotalFansLastMonth     int         `json:"total_fans_last_month"`
	TotalFansLastWeek      int         `json:"total_fans_last_week"`
	TotalFansLastYear      int         `json:"total_fans_last_year"`
	TotalMemberships       int         `json:"total_memberships"`
	TotalMilestones        int         `json:"total_milestones"`
	TotalStoryPoints       float64     `json:"total_story_points"`
	TotalWatchers          int         `json:"total_watchers"`
	TotalsUpdatedDatetime  time.Time   `json:"totals_updated_datetime"`
	TransferToken          string      `json:"transfer_token"`
	UsStatuses             []struct {
		Color      string      `json:"color"`
		ID         int         `json:"id"`
		IsArchived bool        `json:"is_archived"`
		IsClosed   bool        `json:"is_closed"`
		Name       string      `json:"name"`
		Order      int         `json:"order"`
		ProjectID  int         `json:"project_id"`
		Slug       string      `json:"slug"`
		WipLimit   interface{} `json:"wip_limit"`
	} `json:"us_statuses"`
	UserstoriesCsvUUID        interface{} `json:"userstories_csv_uuid"`
	UserstoryCustomAttributes []struct {
		CreatedDate  time.Time `json:"created_date"`
		Description  string    `json:"description"`
		ID           int       `json:"id"`
		ModifiedDate time.Time `json:"modified_date"`
		Name         string    `json:"name"`
		Order        int       `json:"order"`
		ProjectID    int       `json:"project_id"`
		Type         string    `json:"type"`
	} `json:"userstory_custom_attributes"`
	Videoconferences          interface{} `json:"videoconferences"`
	VideoconferencesExtraData interface{} `json:"videoconferences_extra_data"`
}

type ProjectListEntry

type ProjectListEntry struct {
	ID                   int           `json:"id"`
	AnonPermissions      []interface{} `json:"anon_permissions"`
	BlockedCode          interface{}   `json:"blocked_code"`
	CreatedDate          time.Time     `json:"created_date"`
	CreationTemplate     int           `json:"creation_template"`
	DefaultEpicStatus    int           `json:"default_epic_status"`
	DefaultIssueStatus   int           `json:"default_issue_status"`
	DefaultIssueType     int           `json:"default_issue_type"`
	DefaultPoints        int           `json:"default_points"`
	DefaultPriority      int           `json:"default_priority"`
	DefaultSeverity      int           `json:"default_severity"`
	DefaultTaskStatus    int           `json:"default_task_status"`
	DefaultUsStatus      int           `json:"default_us_status"`
	Description          string        `json:"description"`
	IAmAdmin             bool          `json:"i_am_admin"`
	IAmMember            bool          `json:"i_am_member"`
	IAmOwner             bool          `json:"i_am_owner"`
	IsBacklogActivated   bool          `json:"is_backlog_activated"`
	IsContactActivated   bool          `json:"is_contact_activated"`
	IsEpicsActivated     bool          `json:"is_epics_activated"`
	IsFan                bool          `json:"is_fan"`
	IsFeatured           bool          `json:"is_featured"`
	IsIssuesActivated    bool          `json:"is_issues_activated"`
	IsKanbanActivated    bool          `json:"is_kanban_activated"`
	IsLookingForPeople   bool          `json:"is_looking_for_people"`
	IsPrivate            bool          `json:"is_private"`
	IsWatcher            bool          `json:"is_watcher"`
	IsWikiActivated      bool          `json:"is_wiki_activated"`
	LogoBigURL           interface{}   `json:"logo_big_url"`
	LogoSmallURL         interface{}   `json:"logo_small_url"`
	LookingForPeopleNote string        `json:"looking_for_people_note"`
	Members              []int         `json:"members"`
	ModifiedDate         time.Time     `json:"modified_date"`
	MyPermissions        []string      `json:"my_permissions"`
	Name                 string        `json:"name"`
	NotifyLevel          int           `json:"notify_level"`
	Owner                struct {
		BigPhoto        interface{} `json:"big_photo"`
		FullNameDisplay string      `json:"full_name_display"`
		GravatarID      string      `json:"gravatar_id"`
		ID              int         `json:"id"`
		IsActive        bool        `json:"is_active"`
		Photo           interface{} `json:"photo"`
		Username        string      `json:"username"`
	} `json:"owner"`
	PublicPermissions []interface{} `json:"public_permissions"`
	Slug              string        `json:"slug"`
	Tags              []interface{} `json:"tags"`
	TagsColors        struct {
	} `json:"tags_colors"`
	TotalActivity             int         `json:"total_activity"`
	TotalActivityLastMonth    int         `json:"total_activity_last_month"`
	TotalActivityLastWeek     int         `json:"total_activity_last_week"`
	TotalActivityLastYear     int         `json:"total_activity_last_year"`
	TotalClosedMilestones     int         `json:"total_closed_milestones"`
	TotalFans                 int         `json:"total_fans"`
	TotalFansLastMonth        int         `json:"total_fans_last_month"`
	TotalFansLastWeek         int         `json:"total_fans_last_week"`
	TotalFansLastYear         int         `json:"total_fans_last_year"`
	TotalMilestones           interface{} `json:"total_milestones"`
	TotalStoryPoints          interface{} `json:"total_story_points"`
	TotalWatchers             int         `json:"total_watchers"`
	TotalsUpdatedDatetime     time.Time   `json:"totals_updated_datetime"`
	Videoconferences          interface{} `json:"videoconferences"`
	VideoconferencesExtraData interface{} `json:"videoconferences_extra_data"`
}

type ProjectService

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

func (*ProjectService) Get

func (s *ProjectService) Get(id int) (*Project, *Response, error)

func (*ProjectService) GetBySlug

func (s *ProjectService) GetBySlug(slug string) (*Project, *Response, error)

func (*ProjectService) List

func (s *ProjectService) List() ([]ProjectListEntry, *Response, error)

type Response

type Response struct {
	*http.Response

	// Paginated indicates if pagination is being used for the request
	Paginated bool
	// PaginatedBy holds the number of results per page
	PaginatedBy int
	// PaginationCount holds total number of results
	PaginationCount int
	// PaginationCurrent holds the current page
	PaginationCurrent int
	// PaginationNext holds the next results
	PaginationNext int
	// PaginationPrev holds the previous results
	PaginationPrev int
}

type ResponseError

type ResponseError struct {
	Status  int
	Message string `json:"_error_message"`
}

func (ResponseError) Error

func (e ResponseError) Error() string

type Task

type Task struct {
	AssignedTo           int             `json:"assigned_to"`
	Attachments          []interface{}   `json:"attachments"`
	BlockedNote          string          `json:"blocked_note"`
	BlockedNoteHTML      string          `json:"blocked_note_html"`
	Comment              string          `json:"comment"`
	CreatedDate          time.Time       `json:"created_date"`
	Description          string          `json:"description"`
	DescriptionHTML      string          `json:"description_html"`
	DueDate              interface{}     `json:"due_date"`
	DueDateReason        string          `json:"due_date_reason"`
	DueDateStatus        string          `json:"due_date_status"`
	ExternalReference    interface{}     `json:"external_reference"`
	FinishedDate         time.Time       `json:"finished_date"`
	GeneratedUserStories interface{}     `json:"generated_user_stories"`
	ID                   int             `json:"id"`
	IsBlocked            bool            `json:"is_blocked"`
	IsClosed             bool            `json:"is_closed"`
	IsIocaine            bool            `json:"is_iocaine"`
	IsVoter              bool            `json:"is_voter"`
	IsWatcher            bool            `json:"is_watcher"`
	Milestone            int             `json:"milestone"`
	MilestoneSlug        string          `json:"milestone_slug"`
	ModifiedDate         time.Time       `json:"modified_date"`
	Owner                int             `json:"owner"`
	Project              int             `json:"project"`
	Ref                  int             `json:"ref"`
	Status               int             `json:"status"`
	Subject              string          `json:"subject"`
	Tags                 [][]interface{} `json:"tags"`
	TaskboardOrder       int64           `json:"taskboard_order"`
	TotalComments        int             `json:"total_comments"`
	TotalVoters          int             `json:"total_voters"`
	TotalWatchers        int             `json:"total_watchers"`
	UsOrder              int64           `json:"us_order"`
	UserStory            int             `json:"user_story"`
	Version              int             `json:"version"`
	Watchers             []int           `json:"watchers"`
}

type TaskListEntry

type TaskListEntry struct {
	AssignedTo        int             `json:"assigned_to"`
	Attachments       []interface{}   `json:"attachments"`
	BlockedNote       string          `json:"blocked_note"`
	CreatedDate       time.Time       `json:"created_date"`
	DueDate           interface{}     `json:"due_date"`
	DueDateReason     string          `json:"due_date_reason"`
	DueDateStatus     string          `json:"due_date_status"`
	ExternalReference interface{}     `json:"external_reference"`
	FinishedDate      time.Time       `json:"finished_date"`
	ID                int             `json:"id"`
	IsBlocked         bool            `json:"is_blocked"`
	IsClosed          bool            `json:"is_closed"`
	IsIocaine         bool            `json:"is_iocaine"`
	IsVoter           bool            `json:"is_voter"`
	IsWatcher         bool            `json:"is_watcher"`
	Milestone         int             `json:"milestone"`
	MilestoneSlug     string          `json:"milestone_slug"`
	ModifiedDate      time.Time       `json:"modified_date"`
	Owner             int             `json:"owner"`
	Project           int             `json:"project"`
	Ref               int             `json:"ref"`
	Status            int             `json:"status"`
	Subject           string          `json:"subject"`
	Tags              [][]interface{} `json:"tags"`
	TaskboardOrder    int64           `json:"taskboard_order"`
	TotalComments     int             `json:"total_comments"`
	TotalVoters       int             `json:"total_voters"`
	TotalWatchers     int             `json:"total_watchers"`
	UsOrder           int64           `json:"us_order"`
	UserStory         int             `json:"user_story"`
	Version           int             `json:"version"`
	Watchers          []int           `json:"watchers"`
}

type TaskListOptions

type TaskListOptions struct {
	Project        *int  `url:"project,omitempty"`
	Status         *int  `url:"status,omitempty"`
	Owner          *int  `json:"owner"`
	Type           *int  `json:"type"`
	Watchers       *int  `url:"watchers,omitempty"`
	AssignedTo     *int  `url:"assigned_to,omitempty"`
	StatusIsClosed *bool `url:"status__is_closed,omitempty"`
}

type TaskRequest

type TaskRequest struct {
	Version           int          `json:"version"`
	BlockedNote       *string      `json:"blocked_note,omitempty"`
	Description       *string      `json:"description,omitempty"`
	ExternalReference *interface{} `json:"external_reference,omitempty"`
	IsBlocked         *bool        `json:"is_blocked,omitempty"`
	IsClosed          *bool        `json:"is_closed,omitempty"`
	IsIocaine         *bool        `json:"is_iocaine,omitempty"`
	Milestone         *int         `json:"milestone,omitempty"`
	Project           *int         `json:"project,omitempty"`
	Status            *int         `json:"status,omitempty"`
	Subject           *string      `json:"subject,omitempty"`
	Tags              *[]string    `json:"tags,omitempty"`
	TaskboardOrder    *int         `json:"taskboard_order,omitempty"`
	UsOrder           *int         `json:"us_order,omitempty"`
	UserStory         *int         `json:"user_story,omitempty"`
}

type TaskService

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

func (*TaskService) Create

func (s *TaskService) Create(body *TaskRequest) (*Task, *Response, error)

func (*TaskService) Edit

func (s *TaskService) Edit(ID int, body *TaskRequest) (*Task, *Response, error)

func (*TaskService) Get

func (s *TaskService) Get(ID int) (*Task, *Response, error)

func (*TaskService) GetByRef

func (s *TaskService) GetByRef(project interface{}, ref int) (*Task, *Response, error)

func (*TaskService) List

func (s *TaskService) List(opts *TaskListOptions) ([]TaskListEntry, *Response, error)

type TaskStatus

type TaskStatus struct {
	Color      string      `json:"color"`
	ID         int         `json:"id"`
	IsArchived bool        `json:"is_archived"`
	IsClosed   bool        `json:"is_closed"`
	Name       string      `json:"name"`
	Order      int         `json:"order"`
	Project    int         `json:"project"`
	Slug       string      `json:"slug"`
	WipLimit   interface{} `json:"wip_limit"`
}

type TaskStatusListOptions

type TaskStatusListOptions struct {
	ProjectID *int `url:"project,omitempty"`
}

type TaskStatusService

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

func (*TaskStatusService) List

type UserStory

type UserStory struct {
	AssignedTo          int `json:"assigned_to"`
	AssignedToExtraInfo struct {
		BigPhoto        interface{} `json:"big_photo"`
		FullNameDisplay string      `json:"full_name_display"`
		GravatarID      string      `json:"gravatar_id"`
		ID              int         `json:"id"`
		IsActive        bool        `json:"is_active"`
		Photo           interface{} `json:"photo"`
		Username        string      `json:"username"`
	} `json:"assigned_to_extra_info"`
	Attachments       []interface{} `json:"attachments"`
	BacklogOrder      int64         `json:"backlog_order"`
	BlockedNote       string        `json:"blocked_note"`
	BlockedNoteHTML   string        `json:"blocked_note_html"`
	ClientRequirement bool          `json:"client_requirement"`
	Comment           string        `json:"comment"`
	CreatedDate       time.Time     `json:"created_date"`
	Description       string        `json:"description"`
	DescriptionHTML   string        `json:"description_html"`
	EpicOrder         interface{}   `json:"epic_order"`
	Epics             []struct {
		Color   string `json:"color"`
		ID      int    `json:"id"`
		Project struct {
			ID   int    `json:"id"`
			Name string `json:"name"`
			Slug string `json:"slug"`
		} `json:"project"`
		Ref     int    `json:"ref"`
		Subject string `json:"subject"`
	} `json:"epics"`
	ExternalReference  interface{} `json:"external_reference"`
	FinishDate         time.Time   `json:"finish_date"`
	GeneratedFromIssue interface{} `json:"generated_from_issue"`
	ID                 int         `json:"id"`
	IsBlocked          bool        `json:"is_blocked"`
	IsClosed           bool        `json:"is_closed"`
	IsVoter            bool        `json:"is_voter"`
	IsWatcher          bool        `json:"is_watcher"`
	KanbanOrder        int64       `json:"kanban_order"`
	Milestone          int         `json:"milestone"`
	MilestoneName      string      `json:"milestone_name"`
	MilestoneSlug      string      `json:"milestone_slug"`
	ModifiedDate       time.Time   `json:"modified_date"`
	Neighbors          struct {
		Next struct {
			ID      int    `json:"id"`
			Ref     int    `json:"ref"`
			Subject string `json:"subject"`
		} `json:"next"`
		Previous struct {
			ID      int    `json:"id"`
			Ref     int    `json:"ref"`
			Subject string `json:"subject"`
		} `json:"previous"`
	} `json:"neighbors"`
	OriginIssue    interface{} `json:"origin_issue"`
	Owner          int         `json:"owner"`
	OwnerExtraInfo struct {
		BigPhoto        interface{} `json:"big_photo"`
		FullNameDisplay string      `json:"full_name_display"`
		GravatarID      string      `json:"gravatar_id"`
		ID              int         `json:"id"`
		IsActive        bool        `json:"is_active"`
		Photo           interface{} `json:"photo"`
		Username        string      `json:"username"`
	} `json:"owner_extra_info"`
	Points struct {
		Num1 int `json:"1"`
		Num2 int `json:"2"`
		Num3 int `json:"3"`
		Num4 int `json:"4"`
	} `json:"points"`
	Project          int `json:"project"`
	ProjectExtraInfo struct {
		ID           int         `json:"id"`
		LogoSmallURL interface{} `json:"logo_small_url"`
		Name         string      `json:"name"`
		Slug         string      `json:"slug"`
	} `json:"project_extra_info"`
	Ref             int `json:"ref"`
	SprintOrder     int `json:"sprint_order"`
	Status          int `json:"status"`
	StatusExtraInfo struct {
		Color    string `json:"color"`
		IsClosed bool   `json:"is_closed"`
		Name     string `json:"name"`
	} `json:"status_extra_info"`
	Subject         string        `json:"subject"`
	Tags            [][]string    `json:"tags"`
	Tasks           []interface{} `json:"tasks"`
	TeamRequirement bool          `json:"team_requirement"`
	TotalComments   int           `json:"total_comments"`
	TotalPoints     float64       `json:"total_points"`
	TotalVoters     int           `json:"total_voters"`
	TotalWatchers   int           `json:"total_watchers"`
	TribeGig        interface{}   `json:"tribe_gig"`
	Version         int           `json:"version"`
	Watchers        []interface{} `json:"watchers"`
}

type UserStoryListEntry

type UserStoryListEntry struct {
	AssignedTo          interface{}   `json:"assigned_to"`
	AssignedToExtraInfo interface{}   `json:"assigned_to_extra_info"`
	Attachments         []interface{} `json:"attachments"`
	BacklogOrder        int           `json:"backlog_order"`
	BlockedNote         string        `json:"blocked_note"`
	ClientRequirement   bool          `json:"client_requirement"`
	Comment             string        `json:"comment"`
	CreatedDate         time.Time     `json:"created_date"`
	EpicOrder           interface{}   `json:"epic_order"`
	Epics               interface{}   `json:"epics"`
	ExternalReference   interface{}   `json:"external_reference"`
	FinishDate          interface{}   `json:"finish_date"`
	GeneratedFromIssue  interface{}   `json:"generated_from_issue"`
	ID                  int           `json:"id"`
	IsBlocked           bool          `json:"is_blocked"`
	IsClosed            bool          `json:"is_closed"`
	IsVoter             bool          `json:"is_voter"`
	IsWatcher           bool          `json:"is_watcher"`
	KanbanOrder         int           `json:"kanban_order"`
	Milestone           interface{}   `json:"milestone"`
	MilestoneName       interface{}   `json:"milestone_name"`
	MilestoneSlug       interface{}   `json:"milestone_slug"`
	ModifiedDate        time.Time     `json:"modified_date"`
	OriginIssue         interface{}   `json:"origin_issue"`
	Owner               int           `json:"owner"`
	OwnerExtraInfo      struct {
		BigPhoto        interface{} `json:"big_photo"`
		FullNameDisplay string      `json:"full_name_display"`
		GravatarID      string      `json:"gravatar_id"`
		ID              int         `json:"id"`
		IsActive        bool        `json:"is_active"`
		Photo           interface{} `json:"photo"`
		Username        string      `json:"username"`
	} `json:"owner_extra_info"`
	Points struct {
		Num1 int `json:"1"`
		Num2 int `json:"2"`
		Num3 int `json:"3"`
		Num4 int `json:"4"`
	} `json:"points"`
	Project          int `json:"project"`
	ProjectExtraInfo struct {
		ID           int         `json:"id"`
		LogoSmallURL interface{} `json:"logo_small_url"`
		Name         string      `json:"name"`
		Slug         string      `json:"slug"`
	} `json:"project_extra_info"`
	Ref             int `json:"ref"`
	SprintOrder     int `json:"sprint_order"`
	Status          int `json:"status"`
	StatusExtraInfo struct {
		Color    string `json:"color"`
		IsClosed bool   `json:"is_closed"`
		Name     string `json:"name"`
	} `json:"status_extra_info"`
	Subject         string          `json:"subject"`
	Tags            [][]interface{} `json:"tags"`
	Tasks           []interface{}   `json:"tasks"`
	TeamRequirement bool            `json:"team_requirement"`
	TotalComments   int             `json:"total_comments"`
	TotalPoints     float64         `json:"total_points"`
	TotalVoters     int             `json:"total_voters"`
	TotalWatchers   int             `json:"total_watchers"`
	TribeGig        interface{}     `json:"tribe_gig"`
	Version         int             `json:"version"`
	Watchers        []interface{}   `json:"watchers"`
}

type UserStoryListOptions

type UserStoryListOptions struct {
	Project          *int  `url:"project,omitempty"`
	Milestone        *int  `url:"milestone,omitempty"`
	MilestoneIsNull  *bool `url:"milestone__isnull,omitempty"`
	Status           *int  `url:"status,omitempty"`
	StatusIsArchived *bool `url:"status__is_archived,omitempty"`
	Watchers         *int  `url:"watchers,omitempty"`
	AssignedTo       *int  `url:"assigned_to,omitempty"`
	StatusIsClosed   *bool `url:"status__is_closed,omitempty"`
}

type UserStoryRequest

type UserStoryRequest struct {
	Version           int         `json:"version"`
	Status            *int        `json:"status,omitempty"`
	Project           *int        `json:"project,omitempty"`
	Subject           *string     `json:"subject,omitempty"`
	Description       *string     `json:"description,omitempty"`
	AssignedTo        *int        `json:"assigned_to,omitempty"`
	BacklogOrder      *int        `json:"backlog_order,omitempty"`
	BlockedNote       *string     `json:"blocked_note,omitempty"`
	ClientRequirement *bool       `json:"client_requirement,omitempty"`
	IsBlocked         *bool       `json:"is_blocked,omitempty"`
	IsClosed          *bool       `json:"is_closed,omitempty"`
	KanbanOrder       *int        `json:"kanban_order,omitempty"`
	Milestone         *int        `json:"milestone,omitempty"`
	Points            interface{} `json:"points,omitempty"`
	SprintOrder       *int        `json:"sprint_order,omitempty"`
	Tags              *[]string   `json:"tags,omitempty"`
	TeamRequirement   *bool       `json:"team_requirement,omitempty"`
	Watchers          *[]int      `json:"watchers,omitempty"`
}

type UserStoryService

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

func (*UserStoryService) Create

func (s *UserStoryService) Create(body *UserStoryRequest) (*UserStory, *Response, error)

func (*UserStoryService) Edit

func (s *UserStoryService) Edit(ID int, body *UserStoryRequest) (*UserStory, *Response, error)

func (*UserStoryService) Get

func (s *UserStoryService) Get(ID int) (*UserStory, *Response, error)

func (*UserStoryService) GetByRef

func (s *UserStoryService) GetByRef(project interface{}, ref int) (*UserStory, *Response, error)

func (*UserStoryService) List

type UserStoryStatus

type UserStoryStatus struct {
	Color      string      `json:"color"`
	ID         int         `json:"id"`
	IsArchived bool        `json:"is_archived"`
	IsClosed   bool        `json:"is_closed"`
	Name       string      `json:"name"`
	Order      int         `json:"order"`
	Project    int         `json:"project"`
	Slug       string      `json:"slug"`
	WipLimit   interface{} `json:"wip_limit"`
}

type UserStoryStatusListOptions

type UserStoryStatusListOptions struct {
	ProjectID *int `url:"project,omitempty"`
}

type UserStoryStatusService

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

func (*UserStoryStatusService) List

Jump to

Keyboard shortcuts

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