redmine

package module
v4.5.0 Latest Latest
Warning

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

Go to latest
Published: Oct 26, 2023 License: MIT Imports: 12 Imported by: 0

README

nxs-go-redmine

Introduction

Go client library for Redmine

Features
Who can use the tool

Developer teams or sysadmins who need to automate a business processes that works around Redmine.

Quickstart

Import
import "github.com/nixys/nxs-go-redmine/v4"
Initialize

To initialize this library you need to do:

  • Declare variable redmine.Context
  • Set a Redmine endpoint via method (r *Context) SetEndpoint(endpoint string)
  • Set a Redmine API key via method (r *Context) SetAPIKey(apiKey string)

After thar you be able to use all available methods to interact with Redmine API.

Example

In the example below will be printed a names for all active projects from Redmine

package main

import (
	"fmt"
	"os"

	"github.com/nixys/nxs-go-redmine/v4"
)

func main() {

	var r redmine.Context

	// Get variables from environment for connect to Redmine server 
	rdmnHost := os.Getenv("REDMINE_HOST")
	rdmnAPIKey := os.Getenv("REDMINE_API_KEY")
	if rdmnHost == "" || rdmnAPIKey == "" {
		fmt.Println("Init error: make sure environment variables `REDMINE_HOST` and `REDMINE_API_KEY` are defined")
		os.Exit(1)
	}

	// Init Redmine ctx 
	r.SetEndpoint(rdmnHost)
	r.SetAPIKey(rdmnAPIKey)

	fmt.Println("Init: success")

	// Get all projects 
	p, _, err := r.ProjectAllGet(redmine.ProjectAllGetRequest{
		Includes: []string{"trackers", "issue_categories", "enabled_modules"},
		Filters: redmine.ProjectGetRequestFilters{
			Status: redmine.ProjectStatusActive,
		},
	})
	if err != nil {
		fmt.Println("Projects get error:", err)
		os.Exit(1)
	}

	fmt.Println("Projects:")
	for _, e := range p.Projects {
		fmt.Println("-", e.Name)
	}
}

Run:

REDMINE_HOST="https://redmine.yourdomain.com" REDMINE_API_KEY="YOUR_API_KEY" go run main.go

For more examples see apps based on this library:

Feedback

For support and feedback please contact me:

License

nxs-go-redmine is released under the MIT License.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AttachmentObject

type AttachmentObject struct {
	ID          int    `json:"id"`
	FileName    string `json:"filename"`
	FileSize    string `json:"filesize"`
	ContentType string `json:"content_type"`
	Description string `json:"description"`
	ContentURL  string `json:"content_url"`
	Author      IDName `json:"author"`
	CreatedOn   string `json:"created_on"`
}

AttachmentObject struct used for attachments get operations

type AttachmentUploadObject

type AttachmentUploadObject struct {
	ID          int    `json:"id,omitempty"`
	Token       string `json:"token"`
	Filename    string `json:"filename"`     // This field fills in AttachmentUpload() function, not by Redmine. User can redefine this value manually
	ContentType string `json:"content_type"` // This field fills in AttachmentUpload() function, not by Redmine. User can redefine this value manually
}

AttachmentUploadObject struct used for attachments upload operations

type Context

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

Context struct used for store settings to communicate with Redmine API

func (*Context) AttachmentDownload

func (r *Context) AttachmentDownload(id int, dstPath string) (AttachmentObject, int, error)

func (*Context) AttachmentDownloadStream

func (r *Context) AttachmentDownloadStream(id int) (io.ReadCloser, AttachmentObject, int, error)

func (*Context) AttachmentSingleGet

func (r *Context) AttachmentSingleGet(id int) (AttachmentObject, int, error)

AttachmentSingleGet gets single attachment info

see: http://www.redmine.org/projects/redmine/wiki/Rest_Attachments#GET

func (*Context) AttachmentUpload

func (r *Context) AttachmentUpload(filePath string) (AttachmentUploadObject, int, error)

AttachmentUpload uploads file

see: http://www.redmine.org/projects/redmine/wiki/Rest_api#Attaching-files

func (*Context) AttachmentUploadStream

func (r *Context) AttachmentUploadStream(f io.Reader, fileName string) (AttachmentUploadObject, int, error)

AttachmentUploadStream uploads file as a stream.

func (*Context) CustomFieldAllGet

func (r *Context) CustomFieldAllGet() ([]CustomFieldObject, int, error)

CustomFieldAllGet gets info for all custom fields

see: http://www.redmine.org/projects/redmine/wiki/Rest_CustomFields#GET

func (*Context) Del

func (r *Context) Del(in interface{}, out interface{}, uri url.URL, statusExpected int) (int, error)

func (*Context) EnumerationDocumentCategoriesAllGet

func (r *Context) EnumerationDocumentCategoriesAllGet() ([]EnumerationDocumentCategoryObject, int, error)

EnumerationDocumentCategoriesAllGet gets info for all document category enumerations

see: https://www.redmine.org/projects/redmine/wiki/Rest_Enumerations#GET-3

func (*Context) EnumerationPrioritiesAllGet

func (r *Context) EnumerationPrioritiesAllGet() ([]EnumerationPriorityObject, int, error)

EnumerationPrioritiesAllGet gets info for all priority enumerations

see: https://www.redmine.org/projects/redmine/wiki/Rest_Enumerations#GET

func (*Context) EnumerationTimeEntryActivitiesAllGet

func (r *Context) EnumerationTimeEntryActivitiesAllGet() ([]EnumerationTimeEntryActivityObject, int, error)

EnumerationTimeEntryActivitiesAllGet gets info for all time entry activity enumerations

see: https://www.redmine.org/projects/redmine/wiki/Rest_Enumerations#GET-2

func (*Context) Get

func (r *Context) Get(out interface{}, uri url.URL, statusExpected int) (int, error)

func (*Context) GroupAddUser

func (r *Context) GroupAddUser(id int, group GroupAddUserObject) (int, error)

GroupAddUser adds new user into group with specified ID

see: http://www.redmine.org/projects/redmine/wiki/Rest_Groups#POST-2

func (*Context) GroupAllGet

func (r *Context) GroupAllGet() (GroupResult, int, error)

GroupAllGet gets info for all groups

see: http://www.redmine.org/projects/redmine/wiki/Rest_Groups#GET

func (*Context) GroupCreate

func (r *Context) GroupCreate(group GroupCreateObject) (GroupObject, int, error)

GroupCreate creates new group

see: http://www.redmine.org/projects/redmine/wiki/Rest_Groups#POST

func (*Context) GroupDelete

func (r *Context) GroupDelete(id int) (int, error)

GroupDelete deletes group with specified ID

see: http://www.redmine.org/projects/redmine/wiki/Rest_Groups#DELETE

func (*Context) GroupDeleteUser

func (r *Context) GroupDeleteUser(id int, userID int) (int, error)

GroupDeleteUser deletes user from group with specified ID

see: http://www.redmine.org/projects/redmine/wiki/Rest_Groups#DELETE-2

func (*Context) GroupMultiGet

func (r *Context) GroupMultiGet(request GroupMultiGetRequest) (GroupResult, int, error)

GroupMultiGet gets info for multiple groups

see: http://www.redmine.org/projects/redmine/wiki/Rest_Groups#GET

func (*Context) GroupSingleGet

func (r *Context) GroupSingleGet(id int, request GroupSingleGetRequest) (GroupObject, int, error)

GroupSingleGet gets single group info by specific ID

see: http://www.redmine.org/projects/redmine/wiki/Rest_Groups#GET-2

Available includes: * users * memberships

func (*Context) GroupUpdate

func (r *Context) GroupUpdate(id int, group GroupUpdateObject) (int, error)

GroupUpdate updates group with specified ID

see: http://www.redmine.org/projects/redmine/wiki/Rest_Groups#PUT

func (*Context) IssueCreate

func (r *Context) IssueCreate(issue IssueCreateObject) (IssueObject, int, error)

IssueCreate creates new issue

see: http://www.redmine.org/projects/redmine/wiki/Rest_Issues#Creating-an-issue

func (*Context) IssueDelete

func (r *Context) IssueDelete(id int) (int, error)

IssueDelete deletes issue with specified ID

see: http://www.redmine.org/projects/redmine/wiki/Rest_Issues#Deleting-an-issue

func (*Context) IssueSingleGet

func (r *Context) IssueSingleGet(id int, request IssueSingleGetRequest) (IssueObject, int, error)

IssueSingleGet gets single issue info

see: http://www.redmine.org/projects/redmine/wiki/Rest_Issues#Showing-an-issue

Available includes: * children * attachments * relations * changesets * journals * watchers - Since 2.3.0

func (*Context) IssueStatusAllGet

func (r *Context) IssueStatusAllGet() ([]IssueStatusObject, int, error)

IssueStatusAllGet gets info for all issue statuses

see: http://www.redmine.org/projects/redmine/wiki/Rest_IssueStatuses#GET

func (*Context) IssueUpdate

func (r *Context) IssueUpdate(id int, issue IssueUpdateObject) (int, error)

IssueUpdate updates issue with specified ID

see: http://www.redmine.org/projects/redmine/wiki/Rest_Projects#Updating-a-project

func (*Context) IssueWatcherAdd

func (r *Context) IssueWatcherAdd(id int, userID int) (int, error)

IssueWatcherAdd adds watcher into issue with specified ID

see: http://www.redmine.org/projects/redmine/wiki/Rest_Issues#Adding-a-watcher

func (*Context) IssueWatcherDelete

func (r *Context) IssueWatcherDelete(id int, userID int) (int, error)

IssueWatcherDelete deletes watcher from issue with specified ID

see: http://www.redmine.org/projects/redmine/wiki/Rest_Issues#Removing-a-watcher

func (*Context) IssuesAllGet

func (r *Context) IssuesAllGet(request IssueAllGetRequest) (IssueResult, int, error)

IssuesAllGet gets info for all issues satisfying specified filters

see: http://www.redmine.org/projects/redmine/wiki/Rest_Issues#Listing-issues

Available includes: * attachments - Since 3.4.0 * relations * journals * children

func (*Context) IssuesMultiGet

func (r *Context) IssuesMultiGet(request IssueMultiGetRequest) (IssueResult, int, error)

IssuesMultiGet gets info for multiple issues satisfying specified filters

see: http://www.redmine.org/projects/redmine/wiki/Rest_Issues#Listing-issues

Available includes: * attachments - Since 3.4.0 * relations * journals * children

func (*Context) MembershipAdd

func (r *Context) MembershipAdd(projectID string, membership MembershipAddObject) (MembershipObject, int, error)

MembershipAdd adds new member to project with specified ID

see: http://www.redmine.org/projects/redmine/wiki/Rest_Memberships#POST

func (*Context) MembershipAllGet

func (r *Context) MembershipAllGet(projectID string) (MembershipResult, int, error)

MembershipAllGet gets info for all memberships for project with specified ID

see: http://www.redmine.org/projects/redmine/wiki/Rest_Memberships#GET

func (*Context) MembershipDelete

func (r *Context) MembershipDelete(membershipID int) (int, error)

MembershipDelete deletes project membership with specified ID

see: http://www.redmine.org/projects/redmine/wiki/Rest_Memberships#DELETE

func (*Context) MembershipMultiGet

func (r *Context) MembershipMultiGet(projectID string, request MembershipMultiGetRequest) (MembershipResult, int, error)

MembershipMultiGet gets info for multiple memberships for project with specified ID

see: http://www.redmine.org/projects/redmine/wiki/Rest_Memberships#GET

func (*Context) MembershipSingleGet

func (r *Context) MembershipSingleGet(membershipID int) (MembershipObject, int, error)

MembershipSingleGet gets single project membership info with specified ID

see: http://www.redmine.org/projects/redmine/wiki/Rest_Memberships#GET-2

func (*Context) MembershipUpdate

func (r *Context) MembershipUpdate(membershipID int, membership MembershipUpdateObject) (int, error)

MembershipUpdate updates project membership with specified ID

see: http://www.redmine.org/projects/redmine/wiki/Rest_Memberships#PUT

func (*Context) Post

func (r *Context) Post(in interface{}, out interface{}, uri url.URL, statusExpected int) (int, error)

func (*Context) ProjectAllGet

func (r *Context) ProjectAllGet(request ProjectAllGetRequest) (ProjectResult, int, error)

ProjectAllGet gets info for all projects

see: http://www.redmine.org/projects/redmine/wiki/Rest_Projects#Listing-projects

Available includes: * trackers * issue_categories * enabled_modules

func (*Context) ProjectCreate

func (r *Context) ProjectCreate(project ProjectCreateObject) (ProjectObject, int, error)

ProjectCreate creates new project

see: http://www.redmine.org/projects/redmine/wiki/Rest_Projects#Creating-a-project

func (*Context) ProjectDelete

func (r *Context) ProjectDelete(id string) (int, error)

ProjectDelete deletes project with specified ID

see: http://www.redmine.org/projects/redmine/wiki/Rest_Projects#Deleting-a-project

func (*Context) ProjectMultiGet

func (r *Context) ProjectMultiGet(request ProjectMultiGetRequest) (ProjectResult, int, error)

ProjectMultiGet gets info for multiple projects

see: http://www.redmine.org/projects/redmine/wiki/Rest_Projects#Listing-projects

Available includes: * trackers * issue_categories * enabled_modules

func (*Context) ProjectSingleGet

func (r *Context) ProjectSingleGet(id string, request ProjectSingleGetRequest) (ProjectObject, int, error)

ProjectSingleGet gets single project info with specified ID

see: http://www.redmine.org/projects/redmine/wiki/Rest_Projects#Showing-a-project

Available includes: * trackers * issue_categories * enabled_modules * time_entry_activities (since 3.4.0)

func (*Context) ProjectUpdate

func (r *Context) ProjectUpdate(id string, project ProjectUpdateObject) (int, error)

ProjectUpdate updates project with specified ID

see: http://www.redmine.org/projects/redmine/wiki/Rest_Projects#Updating-a-project

func (*Context) Put

func (r *Context) Put(in interface{}, out interface{}, uri url.URL, statusExpected int) (int, error)

func (*Context) SetAPIKey

func (r *Context) SetAPIKey(apiKey string)

SetAPIKey is used to set Redmine API key

func (*Context) SetEndpoint

func (r *Context) SetEndpoint(endpoint string)

SetEndpoint is used to set Redmine endpoint

func (*Context) TrackerAllGet

func (r *Context) TrackerAllGet() ([]TrackerObject, int, error)

TrackerAllGet gets info for all trackers

see: http://www.redmine.org/projects/redmine/wiki/Rest_Trackers#GET

func (*Context) UserAllGet

func (r *Context) UserAllGet(request UserAllGetRequest) (UserResult, int, error)

UserAllGet gets info for all users satisfying specified filters

see: http://www.redmine.org/projects/redmine/wiki/Rest_Users#GET

* If `statusFilter` == 0 default users status filter will be used (show active users only) * Use `groupIDFilter` == 0 to disable this filter

func (*Context) UserCreate

func (r *Context) UserCreate(user UserCreateObject) (UserObject, int, error)

UserCreate creates new user

see: http://www.redmine.org/projects/redmine/wiki/Rest_Users#POST

func (*Context) UserCurrentGet

func (r *Context) UserCurrentGet(request UserCurrentGetRequest) (UserObject, int, error)

UserCurrentGet gets current user info

see: http://www.redmine.org/projects/redmine/wiki/Rest_Users#GET-2

Available includes: * groups * memberships

func (*Context) UserDelete

func (r *Context) UserDelete(id int) (int, error)

UserDelete deletes user with specified ID

see: http://www.redmine.org/projects/redmine/wiki/Rest_Users#DELETE

func (*Context) UserMultiGet

func (r *Context) UserMultiGet(request UserMultiGetRequest) (UserResult, int, error)

UserMultiGet gets info for multiple users satisfying specified filters

see: http://www.redmine.org/projects/redmine/wiki/Rest_Users#GET

* If `statusFilter` == 0 default users status filter will be used (show active users only) * Use `groupIDFilter` == 0 to disable this filter

func (*Context) UserSingleGet

func (r *Context) UserSingleGet(id int, request UserSingleGetRequest) (UserObject, int, error)

UserSingleGet gets single user info by specific ID

see: http://www.redmine.org/projects/redmine/wiki/Rest_Users#GET-2

Available includes: * groups * memberships

func (*Context) UserUpdate

func (r *Context) UserUpdate(id int, user UserUpdateObject) (int, error)

UserUpdate updates user with specified ID

see: http://www.redmine.org/projects/redmine/wiki/Rest_Users#PUT

func (*Context) WikiAllGet

func (r *Context) WikiAllGet(projectID string) ([]WikiMultiObject, int, error)

WikiAllGet gets info for all wikies for project with specified ID

see: https://www.redmine.org/projects/redmine/wiki/Rest_WikiPages#Getting-the-pages-list-of-a-wiki

func (*Context) WikiCreate

func (r *Context) WikiCreate(projectID, wikiTitle string, wiki WikiCreateObject) (WikiObject, int, error)

WikiCreate creates new wiki

see: https://www.redmine.org/projects/redmine/wiki/Rest_WikiPages#Creating-or-updating-a-wiki-page

func (*Context) WikiDelete

func (r *Context) WikiDelete(projectID, wikiTitle string) (int, error)

WikiDelete deletes wiki with specified project ID and title

see: https://www.redmine.org/projects/redmine/wiki/Rest_WikiPages#Deleting-a-wiki-page

func (*Context) WikiSingleGet

func (r *Context) WikiSingleGet(projectID, wikiTitle string, request WikiSingleGetRequest) (WikiObject, int, error)

WikiSingleGet gets single wiki info by specific project ID and wiki title

see: https://www.redmine.org/projects/redmine/wiki/Rest_WikiPages#Getting-a-wiki-page

Available includes: * attachments

func (*Context) WikiSingleVersionGet

func (r *Context) WikiSingleVersionGet(projectID, wikiTitle string, version int, request WikiSingleGetRequest) (WikiObject, int, error)

WikiSingleVersionGet gets single wiki info by specific project ID, wiki title and version

see: https://www.redmine.org/projects/redmine/wiki/Rest_WikiPages#Getting-an-old-version-of-a-wiki-page

Available includes: * attachments

func (*Context) WikiUpdate

func (r *Context) WikiUpdate(projectID, wikiTitle string, wiki WikiUpdateObject) (int, error)

WikiUpdate updates wiki page

see: https://www.redmine.org/projects/redmine/wiki/Rest_WikiPages#Creating-or-updating-a-wiki-page

type CustomFieldGetObject

type CustomFieldGetObject struct {
	ID       int      `json:"id"`
	Name     string   `json:"name"`
	Multiple bool     `json:"multiple"`
	Value    []string `json:"value"`
}

CustomFieldGetObject struct used for custom fields get operations in other methods

type CustomFieldObject

type CustomFieldObject struct {
	ID             int                              `json:"id"`
	Name           string                           `json:"name"`
	CustomizedType string                           `json:"customized_type"`
	FieldFormat    string                           `json:"field_format"`
	Regexp         string                           `json:"regexp"`
	MinLength      int                              `json:"min_length"`
	MaxLength      int                              `json:"max_length"`
	IsRequired     bool                             `json:"is_required"`
	IsFilter       bool                             `json:"is_filter"`
	Searchable     bool                             `json:"searchable"`
	Multiple       bool                             `json:"multiple"`
	DefaultValue   string                           `json:"default_value"`
	Visible        bool                             `json:"visible"`
	PossibleValues []CustomFieldPossibleValueObject `json:"possible_values"`
	Trackers       []IDName                         `json:"trackers"`
	Roles          []IDName                         `json:"roles"`
}

CustomFieldObject struct used for custom fields get operations

type CustomFieldPossibleValueObject

type CustomFieldPossibleValueObject struct {
	Value string `json:"value"`
}

CustomFieldPossibleValueObject struct used for custom fields get operations

type CustomFieldUpdateObject

type CustomFieldUpdateObject struct {
	ID    int         `json:"id"`
	Value interface{} `json:"value"` // can be a string or strings slice
}

CustomFieldUpdateObject struct used for custom fields insert and update operations in other methods

type EnumerationDocumentCategoryObject

type EnumerationDocumentCategoryObject struct {
	ID        int    `json:"id"`
	Name      string `json:"name"`
	IsDefault bool   `json:"is_default"`
}

EnumerationDocumentCategoryObject struct used for document categories get operations

type EnumerationPriorityObject

type EnumerationPriorityObject struct {
	ID        int    `json:"id"`
	Name      string `json:"name"`
	IsDefault bool   `json:"is_default"`
}

EnumerationPriorityObject struct used for priorities get operations

type EnumerationTimeEntryActivityObject

type EnumerationTimeEntryActivityObject struct {
	ID        int    `json:"id"`
	Name      string `json:"name"`
	IsDefault bool   `json:"is_default"`
}

EnumerationTimeEntryActivityObject struct used for time entry activities get operations

type GroupAddUserObject

type GroupAddUserObject struct {
	UserID int `json:"user_id"`
}

GroupAddUserObject struct used for add new user into group

type GroupCreateObject

type GroupCreateObject struct {
	Name    string `json:"name"`
	UserIDs []int  `json:"user_ids,omitempty"`
}

GroupCreateObject struct used for groups create operations

type GroupMembershipObject

type GroupMembershipObject struct {
	ID      int      `json:"id"`
	Project IDName   `json:"project"`
	Roles   []IDName `json:"roles"`
}

GroupMembershipObject struct used for groups get operations

type GroupMultiGetRequest

type GroupMultiGetRequest struct {
	Offset int
	Limit  int
}

GroupMultiGetRequest contains data for making request to get limited groups count

type GroupObject

type GroupObject struct {
	ID          int                     `json:"id"`
	Name        string                  `json:"name"`
	Users       []IDName                `json:"users"`       // used only: get single user
	Memberships []GroupMembershipObject `json:"memberships"` // used only: get single user
}

GroupObject struct used for groups get operations

type GroupResult

type GroupResult struct {
	Groups     []GroupObject `json:"groups"`
	TotalCount int           `json:"total_count"`
	Offset     int           `json:"offset"`
	Limit      int           `json:"limit"`
}

GroupResult stores groups requests processing result

type GroupSingleGetRequest

type GroupSingleGetRequest struct {
	Includes []string
}

GroupSingleGetRequest contains data for making request to get specified group

type GroupUpdateObject

type GroupUpdateObject struct {
	Name    string `json:"name,omitempty"`
	UserIDs []int  `json:"user_ids,omitempty"`
}

GroupUpdateObject struct used for groups update operations

type IDName

type IDName struct {
	ID   int    `json:"id"`
	Name string `json:"name"`
}

IDName used as embedded struct for other structs within package

type IssueAllGetRequest

type IssueAllGetRequest struct {
	Includes []string
	Filters  IssueGetRequestFilters
}

IssueAllGetRequest contains data for making request to get all issues satisfying specified filters

type IssueChangesetObject

type IssueChangesetObject struct {
	Revision    string `json:"revision"`
	User        IDName `json:"user"`
	Comments    string `json:"comments"`
	CommittedOn string `json:"committed_on"`
}

IssueChangesetObject struct used for issues get operations

type IssueChildrenObject

type IssueChildrenObject struct {
	ID       int                   `json:"id"`
	Tracker  IDName                `json:"tracker"`
	Subject  string                `json:"subject"`
	Children []IssueChildrenObject `json:"children"`
}

IssueChildrenObject struct used for issues get operations

type IssueCreateObject

type IssueCreateObject struct {
	ProjectID      int                       `json:"project_id"`
	TrackerID      int                       `json:"tracker_id,omitempty"`
	StatusID       int                       `json:"status_id,omitempty"`
	PriorityID     int                       `json:"priority_id,omitempty"`
	Subject        string                    `json:"subject"`
	Description    string                    `json:"description,omitempty"`
	StartDate      string                    `json:"start_date,omitempty"`
	DueDate        string                    `json:"due_date,omitempty"`
	CategoryID     int                       `json:"category_id,omitempty"`
	FixedVersionID int                       `json:"fixed_version_id,omitempty"`
	AssignedToID   int                       `json:"assigned_to_id,omitempty"`
	ParentIssueID  int                       `json:"parent_issue_id,omitempty"`
	WatcherUserIDs []int                     `json:"watcher_user_ids,omitempty"`
	IsPrivate      bool                      `json:"is_private,omitempty"`
	EstimatedHours float64                   `json:"estimated_hours,omitempty"`
	CustomFields   []CustomFieldUpdateObject `json:"custom_fields,omitempty"`
	Uploads        []AttachmentUploadObject  `json:"uploads,omitempty"`
}

IssueCreateObject struct used for issues create operations

type IssueGetRequestFilters

type IssueGetRequestFilters struct {
	Fields map[string][]string
	Cf     []IssueGetRequestFiltersCf
}

IssueGetRequestFilters contains data for making issues get request

type IssueGetRequestFiltersCf

type IssueGetRequestFiltersCf struct {
	ID    int
	Value string
}

IssueGetRequestFiltersCf contains data for making issues get request

type IssueJournalDetailObject

type IssueJournalDetailObject struct {
	Property string `json:"property"`
	Name     string `json:"name"`
	OldValue string `json:"old_value"`
	NewValue string `json:"new_value"`
}

IssueJournalDetailObject struct used for issues get operations

type IssueJournalObject

type IssueJournalObject struct {
	ID           int                        `json:"id"`
	User         IDName                     `json:"user"`
	Notes        string                     `json:"notes"`
	CreatedOn    string                     `json:"created_on"`
	PrivateNotes bool                       `json:"private_notes"`
	Details      []IssueJournalDetailObject `json:"details"`
}

IssueJournalObject struct used for issues get operations

type IssueMultiGetRequest

type IssueMultiGetRequest struct {
	Includes []string
	Filters  IssueGetRequestFilters
	Offset   int
	Limit    int
}

IssueMultiGetRequest contains data for making request to get limited issues count satisfying specified filters

type IssueObject

type IssueObject struct {
	ID             int                    `json:"id"`
	Project        IDName                 `json:"project"`
	Tracker        IDName                 `json:"tracker"`
	Status         IDName                 `json:"status"`
	Priority       IDName                 `json:"priority"`
	Author         IDName                 `json:"author"`
	AssignedTo     IDName                 `json:"assigned_to"`
	Category       IDName                 `json:"category"`
	FixedVersion   IDName                 `json:"fixed_version"`
	Parent         IssueParentObject      `json:"parent"`
	Subject        string                 `json:"subject"`
	Description    string                 `json:"description"`
	StartDate      string                 `json:"start_date"`
	DueDate        string                 `json:"due_date"`
	DoneRatio      int                    `json:"done_ratio"`
	IsPrivate      int                    `json:"is_private"`
	EstimatedHours float64                `json:"estimated_hours"`
	SpentHours     float64                `json:"spent_hours"` // used only: get single issue
	CustomFields   []CustomFieldGetObject `json:"custom_fields"`
	CreatedOn      string                 `json:"created_on"`
	UpdatedOn      string                 `json:"updated_on"`
	ClosedOn       string                 `json:"closed_on"`
	Children       []IssueChildrenObject  `json:"children"`
	Attachments    []AttachmentObject     `json:"attachments"` // used only: get single issue
	Relations      []IssueRelationObject  `json:"relations"`
	Changesets     []IssueChangesetObject `json:"changesets"` // used only: get single issue
	Journals       []IssueJournalObject   `json:"journals"`   // used only: get single issue
	Watchers       []IDName               `json:"watchers"`   // used only: get single issue
}

IssueObject struct used for issues get operations

type IssueParentObject

type IssueParentObject struct {
	ID int `json:"id"`
}

IssueParentObject struct used for issues get operations

type IssueRelationObject

type IssueRelationObject struct {
	ID           int    `json:"id"`
	IssueID      int    `json:"issue_id"`
	IssueToID    int    `json:"issue_to_id"`
	RelationType string `json:"relation_type"`
	Delay        int    `json:"delay"`
}

IssueRelationObject struct used for issues get operations

type IssueResult

type IssueResult struct {
	Issues     []IssueObject `json:"issues"`
	TotalCount int           `json:"total_count"`
	Offset     int           `json:"offset"`
	Limit      int           `json:"limit"`
}

IssueResult stores issues requests processing result

type IssueSingleGetRequest

type IssueSingleGetRequest struct {
	Includes []string
}

IssueSingleGetRequest contains data for making request to get specified issue

type IssueStatusObject

type IssueStatusObject struct {
	ID        int    `json:"id"`
	Name      string `json:"name"`
	IsDefault bool   `json:"is_default"`
	IsClosed  bool   `json:"is_closed"`
}

IssueStatusObject struct used for issue_statuses get operations

type IssueUpdateObject

type IssueUpdateObject struct {
	ProjectID      int                       `json:"project_id,omitempty"`
	TrackerID      int                       `json:"tracker_id,omitempty"`
	StatusID       int                       `json:"status_id,omitempty"`
	PriorityID     int                       `json:"priority_id,omitempty"`
	Subject        string                    `json:"subject,omitempty"`
	Description    string                    `json:"description,omitempty"`
	StartDate      *string                   `json:"start_date,omitempty"`
	DueDate        *string                   `json:"due_date,omitempty"`
	CategoryID     int                       `json:"category_id,omitempty"`
	FixedVersionID int                       `json:"fixed_version_id,omitempty"`
	AssignedToID   int                       `json:"assigned_to_id,omitempty"`
	ParentIssueID  int                       `json:"parent_issue_id,omitempty"`
	IsPrivate      bool                      `json:"is_private,omitempty"`
	EstimatedHours float64                   `json:"estimated_hours,omitempty"`
	CustomFields   []CustomFieldUpdateObject `json:"custom_fields,omitempty"`
	Uploads        []AttachmentUploadObject  `json:"uploads,omitempty"`
	Notes          string                    `json:"notes,omitempty"`
	PrivateNotes   bool                      `json:"private_notes,omitempty"`
}

IssueUpdateObject struct used for issues update operations

type MembershipAddObject

type MembershipAddObject struct {
	UserID  int   `json:"user_id"`
	RoleIDs []int `json:"role_ids"`
}

MembershipAddObject struct used for project memberships add operations

type MembershipMultiGetRequest

type MembershipMultiGetRequest struct {
	Offset int
	Limit  int
}

MembershipMultiGetRequest contains data for making request to get limited memberships count

type MembershipObject

type MembershipObject struct {
	ID      int                    `json:"id"`
	Project IDName                 `json:"project"`
	User    IDName                 `json:"user"`
	Group   IDName                 `json:"group"`
	Roles   []MembershipRoleObject `json:"roles"`
}

MembershipObject struct used for project memberships get operations

type MembershipResult

type MembershipResult struct {
	Memberships []MembershipObject `json:"memberships"`
	TotalCount  int                `json:"total_count"`
	Offset      int                `json:"offset"`
	Limit       int                `json:"limit"`
}

MembershipResult stores project memberships requests processing result

type MembershipRoleObject

type MembershipRoleObject struct {
	ID        int    `json:"id"`
	Name      string `json:"name"`
	Inherited bool   `json:"inherited"`
}

MembershipRoleObject struct used for project memberships get operations

type MembershipUpdateObject

type MembershipUpdateObject struct {
	RoleIDs []int `json:"role_ids"`
}

MembershipUpdateObject struct used for project memberships update operations

type ProjectAllGetRequest

type ProjectAllGetRequest struct {
	Includes []string
	Filters  ProjectGetRequestFilters
}

ProjectAllGetRequest contains data for making request to get all projects satisfying specified filters

type ProjectCreateObject

type ProjectCreateObject struct {
	Name                string                    `json:"name"`
	Identifier          string                    `json:"identifier"`
	Description         string                    `json:"description,omitempty"`
	Homepage            string                    `json:"homepage,omitempty"`
	IsPublic            bool                      `json:"is_public,omitempty"`
	ParentID            int                       `json:"parent_id,omitempty"`
	InheritMembers      bool                      `json:"inherit_members,omitempty"`
	TrackerIDs          []int                     `json:"tracker_ids,omitempty"`
	EnabledModuleNames  []string                  `json:"enabled_module_names,omitempty"`
	IssueCustomFieldIDs []int                     `json:"issue_custom_field_ids,omitempty"`
	CustomFields        []CustomFieldUpdateObject `json:"custom_fields,omitempty"`
}

ProjectCreateObject struct used for projects create operations

type ProjectGetRequestFilters

type ProjectGetRequestFilters struct {
	Status ProjectStatus
}

ProjectGetRequestFilters contains data for making projects get request

type ProjectMultiGetRequest

type ProjectMultiGetRequest struct {
	Includes []string
	Filters  ProjectGetRequestFilters
	Offset   int
	Limit    int
}

ProjectMultiGetRequest contains data for making request to get limited projects count satisfying specified filters

type ProjectObject

type ProjectObject struct {
	ID              int                    `json:"id"`
	Name            string                 `json:"name"`
	Identifier      string                 `json:"identifier"`
	Description     string                 `json:"description"`
	Homepage        string                 `json:"homepage"` // used only: get single project
	Parent          IDName                 `json:"parent"`
	Status          ProjectStatus          `json:"status"`
	CustomFields    []CustomFieldGetObject `json:"custom_fields"`
	Trackers        []IDName               `json:"trackers"`
	IssueCategories []IDName               `json:"issue_categories"`
	EnabledModules  []IDName               `json:"enabled_modules"`
	CreatedOn       string                 `json:"created_on"`
	UpdatedOn       string                 `json:"updated_on"`
}

ProjectObject struct used for projects get operations

type ProjectResult

type ProjectResult struct {
	Projects   []ProjectObject `json:"projects"`
	TotalCount int             `json:"total_count"`
	Offset     int             `json:"offset"`
	Limit      int             `json:"limit"`
}

ProjectResult stores projects requests processing result

type ProjectSingleGetRequest

type ProjectSingleGetRequest struct {
	Includes []string
}

ProjectSingleGetRequest contains data for making request to get specified project

type ProjectStatus

type ProjectStatus int

ProjectStatus defines project status type

const (
	ProjectStatusActive   ProjectStatus = 1
	ProjectStatusClosed   ProjectStatus = 5
	ProjectStatusArchived ProjectStatus = 9
)

ProjectStatus const

func (ProjectStatus) String

func (p ProjectStatus) String() string

type ProjectUpdateObject

type ProjectUpdateObject struct {
	Name                string                    `json:"name,omitempty"`
	Description         string                    `json:"description,omitempty"`
	Homepage            string                    `json:"homepage,omitempty"`
	IsPublic            bool                      `json:"is_public,omitempty"`
	ParentID            int                       `json:"parent_id,omitempty"`
	InheritMembers      bool                      `json:"inherit_members,omitempty"`
	TrackerIDs          []int                     `json:"tracker_ids,omitempty"`
	EnabledModuleNames  []string                  `json:"enabled_module_names,omitempty"`
	IssueCustomFieldIDs []int                     `json:"issue_custom_field_ids,omitempty"`
	CustomFields        []CustomFieldUpdateObject `json:"custom_fields,omitempty"`
}

ProjectUpdateObject struct used for projects update operations

type TrackerObject

type TrackerObject struct {
	ID            int    `json:"id"`
	Name          string `json:"name"`
	DefaultStatus IDName `json:"default_status"` // Since 3.0
}

TrackerObject struct used for trackers get operations

type UserAllGetRequest

type UserAllGetRequest struct {
	Filters UserGetRequestFilters
}

UserAllGetRequest contains data for making request to get all users satisfying specified filters

type UserCreateObject

type UserCreateObject struct {
	Login            string                    `json:"login"`
	FirstName        string                    `json:"firstname"`
	LastName         string                    `json:"lastname"`
	Mail             string                    `json:"mail"`
	Password         string                    `json:"password,omitempty"`
	AuthSourceID     int                       `json:"auth_source_id,omitempty"`
	MailNotification string                    `json:"mail_notification,omitempty"`
	MustChangePasswd bool                      `json:"must_change_passwd,omitempty"`
	GeneratePassword bool                      `json:"generate_password,omitempty"`
	SendInformation  bool                      `json:"send_information,omitempty"`
	CustomFields     []CustomFieldUpdateObject `json:"custom_fields,omitempty"`
}

UserCreateObject struct used for users create operations

type UserCurrentGetRequest

type UserCurrentGetRequest struct {
	Includes []string
}

UserCurrentGetRequest contains data for making request to get current user

type UserGetRequestFilters

type UserGetRequestFilters struct {
	Status  UserStatus
	Name    string
	GroupID int
}

UserGetRequestFilters contains data for making users get request

type UserMembershipObject

type UserMembershipObject struct {
	ID      int      `json:"id"`
	Project IDName   `json:"project"`
	Roles   []IDName `json:"roles"`
}

UserMembershipObject struct used for users get operations

type UserMultiGetRequest

type UserMultiGetRequest struct {
	Filters UserGetRequestFilters
	Offset  int
	Limit   int
}

UserMultiGetRequest contains data for making request to get limited users count satisfying specified filters

type UserNotification

type UserNotification string

UserNotification defines user notification type

const (
	UserNotificationAll          UserNotification = "all"
	UserNotificationSelected     UserNotification = "selected"
	UserNotificationOnlyMyEvents UserNotification = "only_my_events"
	UserNotificationOnlyAssigned UserNotification = "only_assigned"
	UserNotificationOnlyOwner    UserNotification = "only_owner"
	UserNotificationOnlyNone     UserNotification = "none"
)

UserNotification const

func (UserNotification) String

func (u UserNotification) String() string

type UserObject

type UserObject struct {
	ID           int                    `json:"id"`
	Login        string                 `json:"login"`
	FirstName    string                 `json:"firstname"`
	LastName     string                 `json:"lastname"`
	Mail         string                 `json:"mail"`
	CreatedOn    string                 `json:"created_on"`
	LastLoginOn  string                 `json:"last_login_on"`
	APIKey       string                 `json:"api_key"` // used only: get single user
	Status       UserStatus             `json:"status"`  // used only: get single user
	CustomFields []CustomFieldGetObject `json:"custom_fields"`
	Groups       []IDName               `json:"groups"`      // used only: get single user
	Memberships  []UserMembershipObject `json:"memberships"` // used only: get single user
}

UserObject struct used for users get operations

type UserResult

type UserResult struct {
	Users      []UserObject `json:"users"`
	TotalCount int          `json:"total_count"`
	Offset     int          `json:"offset"`
	Limit      int          `json:"limit"`
}

UserResult stores users requests processing result

type UserSingleGetRequest

type UserSingleGetRequest struct {
	Includes []string
}

UserSingleGetRequest contains data for making request to get specified user

type UserStatus

type UserStatus int

UserStatus defines user status type

const (
	UserStatusAnonymous  UserStatus = 0
	UserStatusActive     UserStatus = 1
	UserStatusRegistered UserStatus = 2
	UserStatusLocked     UserStatus = 3
)

UserStatus const

func (UserStatus) String

func (u UserStatus) String() string

type UserUpdateObject

type UserUpdateObject struct {
	Login            string                    `json:"login,omitempty"`
	FirstName        string                    `json:"firstname,omitempty"`
	LastName         string                    `json:"lastname,omitempty"`
	Mail             string                    `json:"mail,omitempty"`
	Password         string                    `json:"password,omitempty"`
	AuthSourceID     int                       `json:"auth_source_id,omitempty"`
	MailNotification string                    `json:"mail_notification,omitempty"`
	MustChangePasswd bool                      `json:"must_change_passwd,omitempty"`
	GeneratePassword bool                      `json:"generate_password,omitempty"`
	SendInformation  bool                      `json:"send_information,omitempty"`
	CustomFields     []CustomFieldUpdateObject `json:"custom_fields,omitempty"`
}

UserUpdateObject struct used for users update operations

type WikiCreateObject

type WikiCreateObject struct {
	Text     string                   `json:"text"`
	Comments string                   `json:"comments,omitempty"`
	Uploads  []AttachmentUploadObject `json:"uploads,omitempty"`
}

WikiCreateObject struct used for wiki create operations

type WikiMultiObject

type WikiMultiObject struct {
	Title     string            `json:"title"`
	Parent    *WikiParentObject `json:"parent"`
	Version   int               `json:"version"`
	CreatedOn string            `json:"created_on"`
	UpdatedOn string            `json:"updated_on"`
}

WikiMultiObject struct used for wikies all get operations

type WikiObject

type WikiObject struct {
	Title       string              `json:"title"`
	Parent      *WikiParentObject   `json:"parent"`
	Text        string              `json:"text"`
	Version     int                 `json:"version"`
	Author      IDName              `json:"author"`
	Comments    string              `json:"comments"`
	CreatedOn   string              `json:"created_on"`
	UpdatedOn   string              `json:"updated_on"`
	Attachments *[]AttachmentObject `json:"attachments"`
}

WikiObject struct used for wiki get operations

type WikiParentObject

type WikiParentObject struct {
	Title string `json:"title"`
}

WikiParentObject struct used for wikies get operations

type WikiSingleGetRequest

type WikiSingleGetRequest struct {
	Includes []string
}

WikiSingleGetRequest contains data for making request to get specified wiki

type WikiUpdateObject

type WikiUpdateObject struct {
	Text     string                   `json:"text"`
	Comments string                   `json:"comments,omitempty"`
	Version  int                      `json:"version,omitempty"`
	Uploads  []AttachmentUploadObject `json:"uploads,omitempty"`
}

WikiUpdateObject struct used for wiki update operations

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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