feat: Add support of confluence server. (#154)

This commit is contained in:
Pommier Vincent 2022-02-02 11:01:26 +01:00 committed by GitHub
parent 49eb97b434
commit c8709eecd1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 23 additions and 10 deletions

View File

@ -31,12 +31,6 @@ func GetCredentials(
if username == "" {
username = config.Username
if username == "" {
return nil, errors.New(
"Confluence username should be specified using -u " +
"flag or be stored in configuration file",
)
}
}
if password == "" {

View File

@ -39,7 +39,7 @@ type Flags struct {
}
const (
version = "7.0"
version = "7.1"
usage = `mark - a tool for updating Atlassian Confluence pages from markdown.
Docs: https://github.com/kovetskiy/mark
@ -53,7 +53,9 @@ Usage:
Options:
-u <username> Use specified username for updating Confluence page.
-p <token> Use specified token for updating Confluence page.
Specify - as password to read password from stdin.
Specify - as password to read password from stdin, or your Personal access token.
Username is not mandatory if personal access token is provided.
For more info please see: https://developer.atlassian.com/server/confluence/confluence-server-rest-api/#authentication.
-l <url> Edit specified Confluence page.
If -l is not specified, file should contain metadata (see
above).

View File

@ -88,9 +88,18 @@ func (tracer *tracer) Printf(format string, args ...interface{}) {
}
func NewAPI(baseURL string, username string, password string) *API {
auth := &gopencils.BasicAuth{username, password}
var auth *gopencils.BasicAuth
if username != "" {
auth = &gopencils.BasicAuth{username, password}
}
rest := gopencils.Api(baseURL+"/rest/api", auth)
if username == "" {
if rest.Headers == nil {
rest.Headers = http.Header{}
}
rest.SetHeader("Authorization", fmt.Sprintf("Bearer %s", password))
}
json := gopencils.Api(
baseURL+"/rpc/json-rpc/confluenceservice-v2",
auth,
@ -218,7 +227,11 @@ func (api *API) CreateAttachment(
)
resource.Payload = form.buffer
oldHeaders := resource.Headers.Clone()
resource.Headers = http.Header{}
if resource.Api.BasicAuth == nil {
resource.Headers.Set("Authorization", oldHeaders.Get("Authorization"))
}
resource.SetHeader("Content-Type", form.writer.FormDataContentType())
resource.SetHeader("X-Atlassian-Token", "no-check")
@ -284,7 +297,11 @@ func (api *API) UpdateAttachment(
)
resource.Payload = form.buffer
oldHeaders := resource.Headers.Clone()
resource.Headers = http.Header{}
if resource.Api.BasicAuth == nil {
resource.Headers.Set("Authorization", oldHeaders.Get("Authorization"))
}
resource.SetHeader("Content-Type", form.writer.FormDataContentType())
resource.SetHeader("X-Atlassian-Token", "no-check")