Documentation
¶
Overview ¶
Package goconfluence implementing atlassian's Confluence API
Simple example:
//Initialize a new API instance
api, err := goconfluence.NewAPI(
"https://<your-domain>.atlassian.net/wiki/rest/api",
"<username>",
"<api-token>",
)
if err != nil {
log.Fatal(err)
}
// get current user information
currentUser, err := api.CurrentUser()
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", currentUser)
supported features:
- get user information
- create, update, delete content
- get comments, attachments, history, watchers and children of content objects
- get, add, delete labels
- search using CQL
see https://github.com/virtomize/confluence-go-api/tree/master/examples for more information and usage examples
Index ¶
- Variables
- func Debug(msg interface{})
- func SetDebug(state bool)
- type API
- func (a *API) AddLabels(id string, labels *[]Label) (*Labels, error)
- func (a *API) AnonymousUser() (*User, error)
- func (a *API) Auth(req *http.Request)
- func (a *API) CreateContent(c *Content) (*Content, error)
- func (a *API) CurrentUser() (*User, error)
- func (a *API) DelContent(id string) (*Content, error)
- func (a *API) DeleteLabel(id string, name string) (*Labels, error)
- func (a *API) GetAllSpaces(query AllSpacesQuery) (*AllSpaces, error)
- func (a *API) GetAttachmentById(id string) (*Attachment, error)
- func (a *API) GetAttachments(id string) (*Search, error)
- func (a *API) GetBlueprintTemplates(query TemplateQuery) (*TemplateSearch, error)
- func (a *API) GetChildPages(id string) (*Search, error)
- func (a *API) GetComments(id string) (*Search, error)
- func (a *API) GetContent(query ContentQuery) (*ContentSearch, error)
- func (a *API) GetContentByID(id string, query ContentQuery) (*Content, error)
- func (a *API) GetContentTemplates(query TemplateQuery) (*TemplateSearch, error)
- func (a *API) GetContentVersion(id string) (*ContentVersionResult, error)
- func (a *API) GetHistory(id string) (*History, error)
- func (a *API) GetLabels(id string) (*Labels, error)
- func (a *API) GetWatchers(id string) (*Watchers, error)
- func (a *API) Request(req *http.Request) ([]byte, error)
- func (a *API) Search(query SearchQuery) (*Search, error)
- func (a *API) SearchWithNext(query SearchQuery, next string) (*Search, error)
- func (a *API) SendAllSpacesRequest(ep *url.URL, method string) (*AllSpaces, error)
- func (a *API) SendContentAttachmentRequest(ep *url.URL, attachmentName string, attachment io.Reader, ...) (*Search, error)
- func (a *API) SendContentRequest(ep *url.URL, method string, c *Content) (*Content, error)
- func (a *API) SendContentVersionRequest(ep *url.URL, method string) (*ContentVersionResult, error)
- func (a *API) SendHistoryRequest(ep *url.URL, method string) (*History, error)
- func (a *API) SendLabelRequest(ep *url.URL, method string, labels *[]Label) (*Labels, error)
- func (a *API) SendSearchRequest(ep *url.URL, method string) (*Search, error)
- func (a *API) SendUserRequest(ep *url.URL, method string) (*User, error)
- func (a *API) SendWatcherRequest(ep *url.URL, method string) (*Watchers, error)
- func (a *API) UpdateAttachment(id string, attachmentName string, attachmentID string, attachment io.Reader) (*Search, error)
- func (a *API) UpdateContent(c *Content) (*Content, error)
- func (a *API) UploadAttachment(id string, attachmentName string, attachment io.Reader) (*Search, error)
- func (a *API) User(query string) (*User, error)
- func (a *API) VerifyTLS(set bool)
- type AllSpaces
- type AllSpacesQuery
- type Ancestor
- type Attachment
- type Body
- type BodyExportView
- type Content
- type ContentAppearanceDraft
- type ContentAppearancePublished
- type ContentQuery
- type ContentSearch
- type ContentVersionResult
- type Editor
- type History
- type Label
- type Labels
- type LastUpdated
- type Links
- type Metadata
- type Properties
- type Results
- type Search
- type SearchLinks
- type SearchQuery
- type Space
- type Storage
- type Template
- type TemplateQuery
- type TemplateSearch
- type User
- type Version
- type Watcher
- type Watchers
Constants ¶
This section is empty.
Variables ¶
var DebugFlag = false
DebugFlag is the global debugging variable
Functions ¶
Types ¶
type API ¶
API is the main api data structure
func NewAPIWithClient ¶
NewAPIWithClient creates a new API instance using an existing HTTP client. Useful when using oauth or other authentication methods.
func (*API) AnonymousUser ¶
AnonymousUser return user information for anonymous user
func (*API) CreateContent ¶
CreateContent creates content
func (*API) CurrentUser ¶
CurrentUser return current user information
func (*API) DelContent ¶
DelContent deletes content by id
func (*API) DeleteLabel ¶
DeleteLabel removes a label by name from content identified by id
func (*API) GetAllSpaces ¶
func (a *API) GetAllSpaces(query AllSpacesQuery) (*AllSpaces, error)
GetAllSpaces queries content using a query parameters
func (*API) GetAttachmentById ¶ added in v1.5.0
func (a *API) GetAttachmentById(id string) (*Attachment, error)
Get info on specific attachment by id
func (*API) GetAttachments ¶
GetAttachments returns a list of attachments belonging to id
func (*API) GetBlueprintTemplates ¶ added in v1.2.7
func (a *API) GetBlueprintTemplates(query TemplateQuery) (*TemplateSearch, error)
GetBlueprintTemplates querys for content blueprints defined by TemplateQuery parameters
func (*API) GetChildPages ¶
GetChildPages returns a content list of child page objects
func (*API) GetComments ¶
GetComments returns a list of comments belonging to id
func (*API) GetContent ¶
func (a *API) GetContent(query ContentQuery) (*ContentSearch, error)
GetContent querys content using a query parameters
func (*API) GetContentByID ¶
func (a *API) GetContentByID(id string, query ContentQuery) (*Content, error)
GetContentByID querys content by id
func (*API) GetContentTemplates ¶ added in v1.2.7
func (a *API) GetContentTemplates(query TemplateQuery) (*TemplateSearch, error)
GetContentTemplates querys for content templates
func (*API) GetContentVersion ¶ added in v1.2.7
func (a *API) GetContentVersion(id string) (*ContentVersionResult, error)
GetContentVersion gets all versions of this content
func (*API) GetHistory ¶
GetHistory returns history information
func (*API) GetWatchers ¶
GetWatchers returns a list of watchers
func (*API) Search ¶
func (a *API) Search(query SearchQuery) (*Search, error)
Search querys confluence using CQL
func (*API) SearchWithNext ¶ added in v1.5.1
func (a *API) SearchWithNext(query SearchQuery, next string) (*Search, error)
Search querys confluence using CQL, with the ability to pass in the Next header Empty Next header will run search like normal
func (*API) SendAllSpacesRequest ¶
SendAllSpacesRequest sends a request for all spaces
func (*API) SendContentAttachmentRequest ¶
func (a *API) SendContentAttachmentRequest(ep *url.URL, attachmentName string, attachment io.Reader, params map[string]string) (*Search, error)
SendContentAttachmentRequest sends a multipart/form-data attachment create/update request to a content
func (*API) SendContentRequest ¶
SendContentRequest sends content related requests this function is used for getting, updating and deleting content
func (*API) SendContentVersionRequest ¶ added in v1.2.7
SendContentVersionRequest requests a version of a specific content
func (*API) SendHistoryRequest ¶
SendHistoryRequest requests history
func (*API) SendLabelRequest ¶
SendLabelRequest requests history
func (*API) SendSearchRequest ¶
SendSearchRequest sends search related requests
func (*API) SendUserRequest ¶
SendUserRequest sends user related requests
func (*API) SendWatcherRequest ¶
SendWatcherRequest requests watchers
func (*API) UpdateAttachment ¶
func (a *API) UpdateAttachment(id string, attachmentName string, attachmentID string, attachment io.Reader) (*Search, error)
UpdateAttachment update the attachment with an attachmentID on a page with an id to a new version
func (*API) UpdateContent ¶
UpdateContent updates content
func (*API) UploadAttachment ¶
func (a *API) UploadAttachment(id string, attachmentName string, attachment io.Reader) (*Search, error)
UploadAttachment uploaded the given reader as an attachment to the page with the given id. The existing attachment won't be updated with a new version number
type AllSpaces ¶
type AllSpaces struct {
Results []Space `json:"results"`
Start int `json:"start,omitempty"`
Limit int `json:"limit,omitempty"`
Size int `json:"size,omitempty"`
}
AllSpaces results
type AllSpacesQuery ¶
type AllSpacesQuery struct {
Expand []string
Favourite bool // Filter the results to the favourite spaces of the user specified by favouriteUserKey
FavouriteUserKey string // The userKey of the user, whose favourite spaces are used to filter the results when using the favourite parameter. Leave blank for the current user
Limit int // page limit
SpaceKey string
Start int // page start
Status string // current, archived
Type string // global, personal
}
AllSpacesQuery defines the query parameters Query parameter values https://developer.atlassian.com/cloud/confluence/rest/#api-space-get
type Ancestor ¶
type Ancestor struct {
ID string `json:"id"`
}
Ancestor defines ancestors to create sub pages
type Attachment ¶ added in v1.5.0
type Attachment struct {
MediaTypeDescription string `json:"mediaTypeDescription"`
WebuiLink string `json:"webuiLink"`
DownloadLink string `json:"downloadLink"`
CreatedAt interface{} `json:"createdAt"`
ID string `json:"id"`
Comment string `json:"comment"`
Version struct {
Number int `json:"number"`
Message string `json:"message"`
MinorEdit bool `json:"minorEdit"`
AuthorID string `json:"authorId"`
CreatedAt time.Time `json:"createdAt"`
} `json:"version"`
Title string `json:"title"`
FileSize int `json:"fileSize"`
Status string `json:"status"`
PageID string `json:"pageId"`
FileID string `json:"fileId"`
MediaType string `json:"mediaType"`
Links struct {
Download string `json:"download"`
Webui string `json:"webui"`
} `json:"_links"`
}
type BodyExportView ¶ added in v1.2.8
type BodyExportView struct {
ExportView *Storage `json:"export_view"`
View *Storage `json:"view,omitempty"`
}
BodyExportView holds the export_view information
type Content ¶
type Content struct {
ID string `json:"id,omitempty"`
Type string `json:"type"`
Status string `json:"status,omitempty"`
Title string `json:"title"`
Ancestors []Ancestor `json:"ancestors,omitempty"`
Body Body `json:"body"`
Version *Version `json:"version,omitempty"`
Space *Space `json:"space"`
History *History `json:"history,omitempty"`
Links *Links `json:"_links,omitempty"`
Metadata *Metadata `json:"metadata,omitempty"`
}
Content specifies content properties
type ContentAppearanceDraft ¶ added in v1.4.0
type ContentAppearanceDraft struct {
Value string `json:"value"`
}
ContentAppearanceDraft sets the appearance of the content in draft form
type ContentAppearancePublished ¶ added in v1.4.0
type ContentAppearancePublished struct {
Value string `json:"value"`
}
ContentAppearancePublished sets the appearance of the content in published form
type ContentQuery ¶
type ContentQuery struct {
Expand []string
Limit int // page limit
OrderBy string // fieldpath asc/desc e.g: "history.createdDate desc"
PostingDay string // required for blogpost type Format: yyyy-mm-dd
SpaceKey string
Start int // page start
Status string // current, trashed, draft, any
Title string // required for page
Trigger string // viewed
Type string // page, blogpost
Version int //version number when not lastest
}
ContentQuery defines the query parameters used for content related searching Query parameter values https://developer.atlassian.com/cloud/confluence/rest/#api-content-get
type ContentSearch ¶
type ContentSearch struct {
Results []Content `json:"results"`
Start int `json:"start,omitempty"`
Limit int `json:"limit,omitempty"`
Size int `json:"size,omitempty"`
}
ContentSearch results
type ContentVersionResult ¶ added in v1.2.7
type ContentVersionResult struct {
Result []Version `json:"results"`
}
ContentVersionResult contains the version results
type History ¶
type History struct {
LastUpdated LastUpdated `json:"lastUpdated"`
Latest bool `json:"latest"`
CreatedBy User `json:"createdBy"`
CreatedDate string `json:"createdDate"`
}
History contains object history information
type Label ¶
type Label struct {
Prefix string `json:"prefix"`
Name string `json:"name"`
ID string `json:"id,omitempty"`
Label string `json:"label,omitempty"`
}
Label contains label information
type Labels ¶
type Labels struct {
Labels []Label `json:"results"`
Start int `json:"start,omitempty"`
Limit int `json:"limit,omitempty"`
Size int `json:"size,omitempty"`
}
Labels is the label containter type
type LastUpdated ¶
type LastUpdated struct {
By User `json:"by"`
When string `json:"when"`
FriendlyWhen string `json:"friendlyWhen"`
Message string `json:"message"`
Number int `json:"number"`
MinorEdit bool `json:"minorEdit"`
SyncRev string `json:"syncRev"`
ConfRev string `json:"confRev"`
}
LastUpdated contains information about the last update
type Links ¶ added in v1.2.7
type Links struct {
Base string `json:"base"`
TinyUI string `json:"tinyui"`
WebUI string `json:"webui"`
Download string `json:"download"`
}
Links contains link information
type Metadata ¶ added in v1.4.0
type Metadata struct {
Properties *Properties `json:"properties"`
}
Metadata specifies metadata properties
type Properties ¶ added in v1.4.0
type Properties struct {
Editor *Editor `json:"editor,omitempty"`
ContentAppearanceDraft *ContentAppearanceDraft `json:"content-appearance-draft"`
ContentAppearancePublished *ContentAppearancePublished `json:"content-appearance-published"`
}
Properties defines properties of the editor
type Results ¶
type Results struct {
ID string `json:"id,omitempty"`
Type string `json:"type,omitempty"`
Status string `json:"status,omitempty"`
Content Content `json:"content"`
Excerpt string `json:"excerpt,omitempty"`
Title string `json:"title,omitempty"`
URL string `json:"url,omitempty"`
}
Results array
type Search ¶
type Search struct {
Results []Results `json:"results"`
Start int `json:"start,omitempty"`
Limit int `json:"limit,omitempty"`
Size int `json:"size,omitempty"`
TotalSize int `json:"totalSize,omitempty"`
Links SearchLinks `json:"_links,omitempty"`
}
Search results
type SearchLinks ¶ added in v1.5.1
type SearchLinks struct {
Base string `json:"base,omitempty"`
Context string `json:"content,omitempty"`
Next string `json:"next,omitempty"`
Self string `json:"self,omitempty"`
}
Parsing out the _links section to allow paging etc.
type SearchQuery ¶
type SearchQuery struct {
CQL string
CQLContext string
IncludeArchivedSpaces bool
Limit int
Start int
Expand []string
}
SearchQuery defines query parameters used for searchng Query parameter values https://developer.atlassian.com/cloud/confluence/rest/#api-search-get
type Space ¶
type Space struct {
ID int `json:"id,omitempty"`
Key string `json:"key,omitempty"`
Name string `json:"name,omitempty"`
Type string `json:"type,omitempty"`
Status string `json:"status,omitempty"`
}
Space holds the Space information of a Content Page
type Template ¶ added in v1.2.7
type Template struct {
ID string `json:"templateId,omitempty"`
Name string `json:"name,omitempty"`
Type string `json:"templateType,omitempty"`
Description string `json:"description"`
Body Body `json:"body"`
Space Space `json:"space"`
}
Template contains blueprint data
type TemplateQuery ¶ added in v1.2.7
type TemplateQuery struct {
SpaceKey string
Start int // page start
Limit int // page limit
Expand []string
}
TemplateQuery defines the query parameters
type TemplateSearch ¶ added in v1.2.7
type TemplateSearch struct {
Results []Template `json:"results"`
Start int `json:"start,omitempty"`
Limit int `json:"limit,omitempty"`
Size int `json:"size,omitempty"`
}
TemplateSearch contains blueprint search results
type User ¶
type User struct {
Type string `json:"type"`
Username string `json:"username"`
UserKey string `json:"userKey"`
AccountID string `json:"accountId"`
DisplayName string `json:"displayName"`
}
User defines user informations
type Version ¶
type Version struct {
Number int `json:"number"`
MinorEdit bool `json:"minorEdit"`
Message string `json:"message,omitempty"`
By *User `json:"by,omitempty"`
When string `json:"when,omitempty"`
}
Version defines the content version number the version number is used for updating content
