A Python client library for interacting with Atlassian Confluence pages
Project description
Atlassian Page Client
A Python client library for interacting with Atlassian Confluence pages through the REST API.
Features
- Simple authentication using email and API token
- Read and modify Confluence page content
- Parse and manipulate HTML content with BeautifulSoup
- Update page versions automatically
- Easy-to-use API for common operations
Installation
pip install atlassian-page-client
Quick Start
from atlassian_page_client import AtlassianPageClient
# Initialize the client
client = AtlassianPageClient(
email="your.email@example.com",
token="your_api_token",
base_url="https://yourcompany.atlassian.net"
)
# Get a page
page = client.get("page_id_here")
# Get the page content for editing
content = page.get_working_page_content()
# Get root element
root = content.get_root()
root.append(content.new_tag('p', string='Hello root'))
# Or find elements by attribute
table = content.find_by_Attribute('ac:local-id', 'table-id')
# Create new elements
new_row = content.new_tag('tr')
cell = content.new_tag('td')
cell.append(content.new_tag('p', string='Hello World'))
new_row.append(cell)
# Add to existing content
table.append(new_row)
# Update the page
updated_page = client.put(page)
API Reference
AtlassianPageClient
The main client class for interacting with the Atlassian API.
client = AtlassianPageClient(email, token, base_url)
Methods
get(page_id: str) -> AtlassianPage: Retrieve a page by its IDput(page: AtlassianPage) -> AtlassianPage: Update a page with modifications
AtlassianPage
Represents a Confluence page with its content and metadata.
Methods
get_page_id() -> str: Get the page IDget_working_page_content() -> AtlassianPageContent: Get the editable contentprettify() -> str: Get a pretty-printed JSON representationincrease_version(): Increment the page version (called automatically by client.put())
AtlassianPageContent
Handles the HTML content of a page using BeautifulSoup for parsing and manipulation.
Methods
find_by_Attribute(attribute_name: str, value: str) -> bs4.element.Tag: Find element by attributenew_tag(tag_name: str, **kwargs) -> bs4.element.Tag: Create a new HTML tagget_root() -> bs4.element.Tag: Get the root BeautifulSoup elementprettify() -> str: Get pretty-printed HTML
Authentication
You'll need:
- Your Atlassian email address
- An API token (create one at https://id.atlassian.com/manage-profile/security/api-tokens)
- Your Atlassian base URL (e.g., https://yourcompany.atlassian.net)
Requirements
- Python 3.8+
- requests >= 2.25.0
- beautifulsoup4 >= 4.9.0
Development
To set up for development:
git clone https://github.com/yourusername/py-atlassian-page-client.git
cd py-atlassian-page-client
pip install -e .[dev]
Running Tests
The package includes a comprehensive test suite with unit tests, integration tests, and coverage reporting.
Quick test run:
pytest
Run with coverage:
pytest --cov=atlassian_page_client --cov-report=term-missing
Run specific test files:
pytest tests/test_client.py -v
pytest tests/test_integration.py -v
Use the test runner script:
python run_tests.py
Test structure:
tests/test_client.py- Tests for AtlassianPageClienttests/test_page.py- Tests for AtlassianPagetests/test_content.py- Tests for AtlassianPageContenttests/test_integration.py- Integration teststests/test_package_imports.py- Import and basic functionality teststests/conftest.py- Shared test fixtures
License
MIT License - see LICENSE file for details.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file atlassian_page_client-0.2.0.tar.gz.
File metadata
- Download URL: atlassian_page_client-0.2.0.tar.gz
- Upload date:
- Size: 15.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
786f882f2daba3f157601455180bb21b58d43b6083c287fdd9f3e1c5297921e0
|
|
| MD5 |
33248fde1a7bf5920feafb47fd10c62d
|
|
| BLAKE2b-256 |
822b8b90cebb769c2ee906f941c1c30c38d5f23fed1a404e50f6dff9fabb899c
|
File details
Details for the file atlassian_page_client-0.2.0-py3-none-any.whl.
File metadata
- Download URL: atlassian_page_client-0.2.0-py3-none-any.whl
- Upload date:
- Size: 8.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
65f49e9708f277354bfcbac143c025f76f0562a16b97bdbb0677ff4a57b0bbbe
|
|
| MD5 |
b6953813bd0a1eeaf4c61c5fa232d535
|
|
| BLAKE2b-256 |
e45267255b2c0b0bd3abb7027acbab5ee986d2d33438e1e79a631c271c97e855
|