modified cloud to support both subdomains (*.atlassian.net) or actual domains (e.g. ame.jira.com)

instead of introducing a potential breaking change, this will support both cases
This commit is contained in:
elias-AD 2024-11-28 09:29:50 -05:00
parent 090b5472c5
commit a59824adbb
2 changed files with 14 additions and 4 deletions

View File

@ -27,13 +27,17 @@ jobs:
Uses basic auth for the rest api. Uses basic auth for the rest api.
- `cloudUrl`: The URL (without https://) of your confluence instance. E.g: `acme.atlassian.net/...` or `acme.jira.com` - `cloud`: Can be either:
- A subdomain (e.g., `acme` for Atlassian hosted instances)
- A full URL (e.g., `https://mycompany.com` for self-hosted instances)
- `user`: The user that generated the access token - `user`: The user that generated the access token
- `token`: You can generate the token [here](https://id.atlassian.com/manage-profile/security/api-tokens). Link to [Docs](https://confluence.atlassian.com/cloud/api-tokens-938839638.html) - `token`: You can generate the token [here](https://id.atlassian.com/manage-profile/security/api-tokens). Link to [Docs](https://confluence.atlassian.com/cloud/api-tokens-938839638.html)
- `to`: The page ID can be found by simply navigating to the page where you want the content to be postet to and looke at the url. It will look something like this: `https://<cloudUrl>/wiki/spaces/<space>/pages/<page-id>/<title>` - `to`: The page ID can be found by simply navigating to the page where you want the content to be posted to and look at the url. It will look something like this:
- For Atlassian hosted: `https://<subdomain>.atlassian.net/wiki/spaces/<space>/pages/<page-id>/<title>`
- For self-hosted: `https://<your-url>/wiki/spaces/<space>/pages/<page-id>/<title>`
### Using secrets ### Using secrets

View File

@ -15,7 +15,7 @@ if not workspace:
exit(1) exit(1)
envs: Dict[str, str] = {} envs: Dict[str, str] = {}
for key in ['from', 'to', 'cloudUrl', 'user', 'token']: for key in ['from', 'to', 'cloud', 'user', 'token']:
value = environ.get(f'INPUT_{key.upper()}') value = environ.get(f'INPUT_{key.upper()}')
if not value: if not value:
print(f'Missing value for {key}') print(f'Missing value for {key}')
@ -25,7 +25,13 @@ for key in ['from', 'to', 'cloudUrl', 'user', 'token']:
with open(join(workspace, envs['from'])) as f: with open(join(workspace, envs['from'])) as f:
md = f.read() md = f.read()
url = f"https://{envs['cloudUrl']}/wiki/rest/api/content/{envs['to']}" base_url = envs['cloud']
if '://' in base_url: # It's a full URL
# Remove trailing slash if present
base_url = base_url.rstrip('/')
url = f"{base_url}/wiki/rest/api/content/{envs['to']}"
else: # It's a subdomain
url = f"https://{base_url}.atlassian.net/wiki/rest/api/content/{envs['to']}"
current = requests.get(url, auth=(envs['user'], envs['token'])).json() current = requests.get(url, auth=(envs['user'], envs['token'])).json()