diff --git a/scripts/confluence_get_page_content.py b/scripts/confluence_get_page_content.py new file mode 100755 index 0000000000000000000000000000000000000000..c618b846e19e2ce0d86ce4c3cb3a6eaf6a80e3a6 --- /dev/null +++ b/scripts/confluence_get_page_content.py @@ -0,0 +1,73 @@ +#!/usr/bin/env python3 + +import argparse + +import requests +from atlassian import Confluence + +import common + + +def main(): + # Create parser and add possible command line arguments + parser = argparse.ArgumentParser() + + parser.add_argument( + "--confluence-url", + help="""URL to the Confluence instance""", + dest="confluence_url", + default=common.CONFLUENCE_URL, + ) + parser.add_argument( + "--username", + help="""Username for the Confluence API""", + dest="username", + required=True, + ) + + parser.add_argument( + "--token", + help="""Token for the Confluence API""", + dest="token", + required=True, + ) + + parser.add_argument( + "--space-id", + help="""Confluence space ID or name""", + dest="space_id", + required=True, + ) + + parser.add_argument( + "--page-name", + help="""Name of the page""", + dest="page_name", + required=True, + ) + + # Parse command line arguments + args, _ = parser.parse_known_args() + + # Connect to confluence + confluence = Confluence( + url=args.confluence_url, + username=args.username, + password=args.token, + ) + + try: + # Get page including its content. See for reference: + # https://community.atlassian.com/t5/Confluence-questions/how-to-get-full-content-body-html-using-confluence-REST-API/qaq-p/710532 + page = confluence.get_page_by_title( + args.space_id, args.page_name, expand="body.storage" + ) + + except requests.exceptions.HTTPError as e: + exit(f"ERROR: {e}") + + print(page["body"]["storage"]["value"]) + + +if __name__ == "__main__": + main()