Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Current »

Due to Marketplace Limitations, this integration can’t run seamless direct via app connection, so this class is made necessary for Confluence Integration.

The Confluence class facilitates interaction with Confluence's REST API.

It provides methods for performing HTTP GET, POST, and PUT requests to various API endpoints, enabling actions such as retrieving pages, spaces, creating pages, and updating page content.

Additionally, it includes a nested Page class for handling page-specific operations such as retrieving page content, replacing text within the content, and bulk replacing text based on a mapping. The class also allows authentication using email and token, and provides properties for authentication details and request headers.

# Instantiate Confluence object
confluence = Confluence(instance_url='https://your-confluence-instance-url.com', email='your-email@example.com', token='your-api-token')

# Retrieve a list of spaces
spaces = confluence.spaces
logger.info("Available Spaces:")
for space in spaces:
    logger.info(f"{space['key']} - {space['name']}")

# Create a new page in a space
space_key = 'SPACEKEY'
new_page_title = 'New Page Title'
new_page_content = 'Content of the new page'
new_page = confluence.create_page(spacekeyorid=space_key, title=new_page_title, content=new_page_content)
logger.info("New Page Created Successfully.")

# Retrieve a specific page by its page ID
page_id = 'page_id_here'
page = confluence.get_page(pid=page_id)

# Get the content of the page in storage format
page_content = page.storage
logger.info("Page Content:\n%s", page_content)

# Replace text within the page content
new_page_content = page.replace(actual_val='old_text', new_val='new_text')
logger.info("Page Content After Replacement:\n%s", new_page_content)

# Bulk replace text within the page content based on a mapping
text_mapping = {'old_text1': 'new_text1', 'old_text2': 'new_text2'}
bulk_replaced_content = page.bulk_replace(mapping=text_mapping)
logger.info("Page Content After Bulk Replacement:\n%s", bulk_replaced_content)
  • No labels