Documentation
¶
Index ¶
- type CustomFieldValue
- type Enumeration
- type Group
- type GroupCreate
- type GroupFilter
- type GroupUpdate
- type IDName
- type IDRef
- type Issue
- type IssueCategory
- type IssueCreate
- type IssueFilter
- type IssueStatus
- type IssueUpdate
- type Journal
- type JournalDetail
- type Membership
- type Project
- type ProjectCreate
- type ProjectUpdate
- type SearchResponse
- type SearchResult
- type TimeEntry
- type TimeEntryCreate
- type TimeEntryFilter
- type TimeEntryUpdate
- type Tracker
- type User
- type UserCreate
- type UserFilter
- type UserUpdate
- type Version
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CustomFieldValue ¶
type CustomFieldValue struct {
ID int `json:"id"`
Name string `json:"name"`
Value interface{} `json:"value"`
Multiple bool `json:"multiple,omitempty"`
}
CustomFieldValue represents a custom field value on a resource.
type Enumeration ¶
type Enumeration struct {
ID int `json:"id"`
Name string `json:"name"`
IsDefault bool `json:"is_default"`
Active bool `json:"active"`
}
Enumeration represents a Redmine enumeration (activity, priority, etc.).
type Group ¶
type Group struct {
ID int `json:"id"`
Name string `json:"name"`
Users []IDName `json:"users,omitempty"`
Memberships []IDName `json:"memberships,omitempty"`
}
Group represents a Redmine group.
type GroupCreate ¶
GroupCreate defines fields for creating a group.
type GroupFilter ¶
GroupFilter defines parameters for listing groups.
type GroupUpdate ¶
type GroupUpdate struct {
Name *string `json:"name,omitempty"`
UserIDs *[]int `json:"user_ids,omitempty"`
}
GroupUpdate defines fields for updating a group.
type IDRef ¶
type IDRef struct {
ID int `json:"id"`
}
IDRef is a simple id-only reference (e.g., parent issue).
type Issue ¶
type Issue 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,omitempty"`
Category *IDName `json:"category,omitempty"`
FixedVersion *IDName `json:"fixed_version,omitempty"`
Parent *IDRef `json:"parent,omitempty"`
Subject string `json:"subject"`
Description string `json:"description"`
DoneRatio int `json:"done_ratio"`
CreatedOn string `json:"created_on"`
UpdatedOn string `json:"updated_on"`
StartDate string `json:"start_date,omitempty"`
DueDate string `json:"due_date,omitempty"`
EstimatedHours *float64 `json:"estimated_hours,omitempty"`
CustomFields []CustomFieldValue `json:"custom_fields,omitempty"`
Journals []Journal `json:"journals,omitempty"`
Children []IDRef `json:"children,omitempty"`
}
Issue represents a Redmine issue.
type IssueCategory ¶
type IssueCategory struct {
ID int `json:"id"`
Name string `json:"name"`
Project IDName `json:"project"`
AssignedTo *IDName `json:"assigned_to,omitempty"`
}
IssueCategory represents a Redmine issue category.
type IssueCreate ¶
type IssueCreate 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"`
AssignedToID int `json:"assigned_to_id,omitempty"`
ParentIssueID int `json:"parent_issue_id,omitempty"`
CategoryID int `json:"category_id,omitempty"`
FixedVersionID int `json:"fixed_version_id,omitempty"`
EstimatedHours float64 `json:"estimated_hours,omitempty"`
IsPrivate *bool `json:"is_private,omitempty"`
}
IssueCreate defines fields for creating a new issue.
type IssueFilter ¶
type IssueFilter struct {
ProjectID string
TrackerID int
StatusID string // "open", "closed", "*", or numeric ID
AssignedToID string // numeric ID or "me"
FixedVersionID int
Sort string // e.g., "updated_on:desc"
Limit int
Offset int
}
IssueFilter defines parameters for listing issues.
type IssueStatus ¶
type IssueStatus struct {
ID int `json:"id"`
Name string `json:"name"`
IsClosed bool `json:"is_closed"`
}
IssueStatus represents a Redmine issue status.
type IssueUpdate ¶
type IssueUpdate struct {
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"`
AssignedToID *int `json:"assigned_to_id,omitempty"`
DoneRatio *int `json:"done_ratio,omitempty"`
Notes *string `json:"notes,omitempty"`
DueDate *string `json:"due_date,omitempty"`
ParentIssueID *int `json:"parent_issue_id,omitempty"`
CategoryID *int `json:"category_id,omitempty"`
FixedVersionID *int `json:"fixed_version_id,omitempty"`
EstimatedHours *float64 `json:"estimated_hours,omitempty"`
IsPrivate *bool `json:"is_private,omitempty"`
}
IssueUpdate defines fields for updating an issue. Nil fields are not sent.
type Journal ¶
type Journal struct {
ID int `json:"id"`
User IDName `json:"user"`
Notes string `json:"notes"`
CreatedOn string `json:"created_on"`
Details []JournalDetail `json:"details,omitempty"`
}
Journal represents an issue history entry.
type JournalDetail ¶
type JournalDetail struct {
Property string `json:"property"`
Name string `json:"name"`
OldValue string `json:"old_value"`
NewValue string `json:"new_value"`
}
JournalDetail represents a single change in a journal entry.
type Membership ¶
type Membership struct {
ID int `json:"id"`
Project IDName `json:"project"`
User *IDName `json:"user,omitempty"`
Group *IDName `json:"group,omitempty"`
Roles []IDName `json:"roles"`
}
Membership represents a project membership.
type Project ¶
type Project struct {
ID int `json:"id"`
Name string `json:"name"`
Identifier string `json:"identifier"`
Description string `json:"description"`
Status int `json:"status"`
IsPublic bool `json:"is_public"`
Parent *IDName `json:"parent,omitempty"`
CreatedOn string `json:"created_on"`
UpdatedOn string `json:"updated_on"`
Trackers []IDName `json:"trackers,omitempty"`
}
Project represents a Redmine project.
type ProjectCreate ¶
type ProjectCreate struct {
Name string `json:"name"`
Identifier string `json:"identifier"`
Description string `json:"description,omitempty"`
IsPublic *bool `json:"is_public,omitempty"`
ParentID int `json:"parent_id,omitempty"`
InheritMembers bool `json:"inherit_members,omitempty"`
}
ProjectCreate defines fields for creating a project.
type ProjectUpdate ¶
type ProjectUpdate struct {
Name *string `json:"name,omitempty"`
Description *string `json:"description,omitempty"`
IsPublic *bool `json:"is_public,omitempty"`
}
ProjectUpdate defines fields for updating a project.
type SearchResponse ¶
type SearchResponse struct {
Results []SearchResult `json:"results"`
TotalCount int `json:"total_count"`
Offset int `json:"offset"`
Limit int `json:"limit"`
}
SearchResponse represents the full response from the Redmine search API.
type SearchResult ¶
type SearchResult struct {
ID int `json:"id"`
Title string `json:"title"`
Type string `json:"type"`
URL string `json:"url"`
Description string `json:"description"`
DateTime string `json:"datetime"`
}
SearchResult represents a single result from the Redmine search API.
type TimeEntry ¶
type TimeEntry struct {
ID int `json:"id"`
Project IDName `json:"project"`
Issue *IDRef `json:"issue,omitempty"`
User IDName `json:"user"`
Activity IDName `json:"activity"`
Hours float64 `json:"hours"`
Comments string `json:"comments"`
SpentOn string `json:"spent_on"`
CreatedOn string `json:"created_on"`
UpdatedOn string `json:"updated_on"`
}
TimeEntry represents a Redmine time entry.
type TimeEntryCreate ¶
type TimeEntryCreate struct {
IssueID int `json:"issue_id,omitempty"`
ProjectID string `json:"project_id,omitempty"`
Hours float64 `json:"hours"`
ActivityID int `json:"activity_id,omitempty"`
SpentOn string `json:"spent_on,omitempty"`
Comments string `json:"comments,omitempty"`
}
TimeEntryCreate defines fields for creating a time entry.
type TimeEntryFilter ¶
type TimeEntryFilter struct {
ProjectID string
UserID string
IssueID int
From string
To string
ActivityID int
Limit int
Offset int
}
TimeEntryFilter defines parameters for listing time entries.
type TimeEntryUpdate ¶
type TimeEntryUpdate struct {
Hours *float64 `json:"hours,omitempty"`
ActivityID *int `json:"activity_id,omitempty"`
SpentOn *string `json:"spent_on,omitempty"`
Comments *string `json:"comments,omitempty"`
}
TimeEntryUpdate defines fields for updating a time entry.
type Tracker ¶
type Tracker struct {
ID int `json:"id"`
Name string `json:"name"`
Description string `json:"description"`
}
Tracker represents a Redmine tracker (e.g., Bug, Feature, Support).
type User ¶
type User struct {
ID int `json:"id"`
Login string `json:"login"`
Admin bool `json:"admin"`
FirstName string `json:"firstname"`
LastName string `json:"lastname"`
Mail string `json:"mail"`
CreatedOn string `json:"created_on"`
UpdatedOn string `json:"updated_on,omitempty"`
LastLoginOn string `json:"last_login_on,omitempty"`
Status int `json:"status"`
Memberships []IDName `json:"memberships,omitempty"`
}
User represents a Redmine user.
type UserCreate ¶
type UserCreate struct {
Login string `json:"login"`
Password string `json:"password"`
FirstName string `json:"firstname"`
LastName string `json:"lastname"`
Mail string `json:"mail"`
Admin bool `json:"admin,omitempty"`
}
UserCreate defines fields for creating a user.
type UserFilter ¶
type UserFilter struct {
Status string // "active", "registered", "locked"
Name string // filter by name
GroupID int
Limit int
Offset int
}
UserFilter defines parameters for listing users.
type UserUpdate ¶
type UserUpdate struct {
FirstName *string `json:"firstname,omitempty"`
LastName *string `json:"lastname,omitempty"`
Mail *string `json:"mail,omitempty"`
Admin *bool `json:"admin,omitempty"`
Status *int `json:"status,omitempty"`
}
UserUpdate defines fields for updating a user.
type Version ¶
type Version struct {
ID int `json:"id"`
Project IDName `json:"project"`
Name string `json:"name"`
Description string `json:"description"`
Status string `json:"status"` // "open", "locked", "closed"
DueDate string `json:"due_date,omitempty"`
Sharing string `json:"sharing"`
CreatedOn string `json:"created_on"`
UpdatedOn string `json:"updated_on"`
}
Version represents a Redmine project version (milestone).