Skip to main content

Async Python client for Atlassian products

Project description

Atlassian Async Client

A modern, async Python client for Atlassian products (Jira and Confluence) with comprehensive API coverage, type safety, and Pydantic models.

✨ Features

  • 🚀 Full Async Support: Built with httpx for modern async/await operations
  • 🔒 Type Safety: Complete type hints and mypy strict mode compliance
  • 📦 Modern Packaging: Uses pyproject.toml and modern Python packaging standards
  • 🏗️ Pydantic Models: Robust data validation and serialization
  • 🔍 Comprehensive Coverage: Support for both Jira and Confluence APIs
  • ☁️ Flexible Authentication: Supports both Cloud and Server/Data Center deployments
  • 🔄 Content Processing: Built-in preprocessing for Jira and Confluence content
  • 📝 Rich Text Support: Markdown to Confluence conversion utilities

🛠️ Installation

# Using pip
pip install atlassian-async-client

# Using uv (recommended)
uv pip install atlassian-async-client

For development:

uv pip install -e ".[dev]"

🚀 Quick Start

Basic Usage

import asyncio
from atlassian_client import AtlassianClient

async def main():
    async with AtlassianClient(
        base_url="https://your-domain.atlassian.net",
        username="your-email@example.com",
        api_token="your-api-token"
    ) as client:
        # Your API calls here
        pass

if __name__ == "__main__":
    asyncio.run(main())

Environment Configuration

Set up your environment variables:

# For Cloud deployment
export JIRA_URL="https://your-domain.atlassian.net"
export JIRA_USERNAME="your-email@example.com"
export JIRA_API_TOKEN="your-api-token"

# For Server/Data Center
export JIRA_URL="https://jira.your-company.com"
export JIRA_PERSONAL_TOKEN="your-personal-access-token"

Similar configuration for Confluence:

export CONFLUENCE_URL="https://your-domain.atlassian.net"
export CONFLUENCE_USERNAME="your-email@example.com"
export CONFLUENCE_API_TOKEN="your-api-token"

📚 Documentation

Jira Client

from atlassian_client import JiraClient
from atlassian_client.models.jira import JiraIssue

async with JiraClient() as jira:
    # Create issue
    issue = await jira.create_issue(
        project_key="PROJ",
        summary="Test Issue",
        description="Description"
    )

Confluence Client

from atlassian_client import ConfluenceClient
from atlassian_client.models.confluence import ConfluencePage

async with ConfluenceClient() as confluence:
    # Create page
    page = await confluence.create_page(
        space_key="SPACE",
        title="Page Title",
        body="Content"
    )

🧪 Development

  1. Clone the repository:
git clone https://github.com/khanhct/atlassian-async-client.git
cd atlassian-async-client
  1. Create virtual environment and install dependencies:
uv venv
uv pip install -e ".[dev]"
  1. Run tests:
pytest
  1. Code quality:
# Format code
black .
isort .

# Type checking
mypy .

# Linting
ruff .

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

📝 License

This project is licensed under the MIT License - see the LICENSE file for details.

🙏 Acknowledgments

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

atlassian_client-0.1.1.tar.gz (167.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

atlassian_client-0.1.1-py3-none-any.whl (76.3 kB view details)

Uploaded Python 3

File details

Details for the file atlassian_client-0.1.1.tar.gz.

File metadata

  • Download URL: atlassian_client-0.1.1.tar.gz
  • Upload date:
  • Size: 167.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.6.8

File hashes

Hashes for atlassian_client-0.1.1.tar.gz
Algorithm Hash digest
SHA256 69739b3da956342ee3a5c27578919b37de236a8ab09a750a31791ac694aa2734
MD5 17e1294dfb1e77886491dad550464d7d
BLAKE2b-256 56ccf6e5ac19d24960a3d2084469ac28ee8f954d4107adb7a3dff8b9e5da0280

See more details on using hashes here.

File details

Details for the file atlassian_client-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for atlassian_client-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c8787bab221080a72b08bfb0f9ee530cbcc263238c56b7af6daf5a3646413b35
MD5 38fc875ac9fcf3472ced0b1edf1f3313
BLAKE2b-256 ecf89903b5ccb305b1f55e899f6aae9a23b5352e8ede629915e47b8ae4f09964

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page