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) 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) 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 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 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) GetAttachments ¶
GetAttachments returns a list of attachments belonging to id
func (*API) GetBlueprintTemplates ¶
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 ¶
func (a *API) GetContentTemplates(query TemplateQuery) (*TemplateSearch, error)
GetContentTemplates querys for content templates
func (*API) GetContentVersion ¶
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) 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 ¶
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 BodyExportView ¶
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"` }
Content specifies content properties
type ContentAppearanceDraft ¶
type ContentAppearanceDraft struct {
Value string `json:"value"`
}
ContentAppearanceDraft sets the appearance of the content in draft form
type ContentAppearancePublished ¶
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 ¶
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 ¶
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 ¶
type Metadata struct {
Properties *Properties `json:"properties"`
}
Metadata specifies metadata properties
type Properties ¶
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"` }
Search results
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 ¶
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 ¶
type TemplateQuery struct { SpaceKey string Start int // page start Limit int // page limit Expand []string }
TemplateQuery defines the query parameters
type TemplateSearch ¶
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