Skip to content

Commit

Permalink
feat: Add support of confluence server. (#154)
Browse files Browse the repository at this point in the history
  • Loading branch information
vpommier committed Feb 2, 2022
1 parent 49eb97b commit c8709ee
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 10 deletions.
6 changes: 0 additions & 6 deletions auth.go
Original file line number Diff line number Diff line change
Expand Up @@ -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 == "" {
Expand Down
6 changes: 4 additions & 2 deletions main.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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).
Expand Down
21 changes: 19 additions & 2 deletions pkg/confluence/api.go
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -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")
Expand Down Expand Up @@ -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")
Expand Down

0 comments on commit c8709ee

Please sign in to comment.