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.3.tar.gz (167.5 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.3-py3-none-any.whl (76.6 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for atlassian_client-0.1.3.tar.gz
Algorithm Hash digest
SHA256 70107cc601183e97eb60741c00e640dfdd9a8c876fc00791c368af7bb4930a25
MD5 11448d5fd549dfc1eda4bc6563264fe8
BLAKE2b-256 7dcdbc842a5993496d7b71f5807443ff8813aab5d6963a18005677cca8560e9f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for atlassian_client-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 e857a6c34c2d8fd4839a5bb79bd7e09a129142860c55ef481b6f59adff80439a
MD5 03ef441059a1219ee7017c40d7bc2cd3
BLAKE2b-256 fed907b8ecab57966f380de76f5d27e90a66ecb6db71c6c11d22f85fa260e935

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