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.6.tar.gz (167.8 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.6-py3-none-any.whl (76.9 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for atlassian_client-0.1.6.tar.gz
Algorithm Hash digest
SHA256 0bf1e0292b16aa09712ffbc19905eb2923a190a6b66b368273114816d63a9178
MD5 aebd562023aa0c3e29b3e14a8360369e
BLAKE2b-256 43366da45e375954dfd974a19753901312b329d1844cc68f7f8aa7da64062858

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for atlassian_client-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 cba20057ab28eaefca753b7d28879a1ee1a0c27b2ba8c29db533d9d0fdbf830c
MD5 784839f6def0c8941249211595410beb
BLAKE2b-256 1f6329d1d7722df6626f5b81cfeeed2b7493d3e27fc9e6ee904d4e9ca3e9a37e

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