Skip to main content

Atlassian API integration with configuration management

Project description

kiarina-lib-atlassian

Python License

Atlassian API integration with configuration management using pydantic-settings-manager.

Purpose

kiarina-lib-atlassian provides a simple and secure way to manage Atlassian API credentials (Jira, Confluence, etc.) using pydantic-settings-manager. This library enables the implementation of Atlassian-related functionality by separating and managing API credentials from the application.

Installation

pip install kiarina-lib-atlassian

Quick Start

from kiarina.lib.atlassian import settings_manager

# Configure Atlassian credentials
settings_manager.user_config = {
    "jira": {
        "url": "https://your-domain.atlassian.net",
        "username": "your-email@example.com",
        "password": "your-api-token"
    }
}

# Get settings
settings = settings_manager.get_settings("jira")
print(f"Jira URL: {settings.url}")
print(f"Username: {settings.username}")
# Access API token securely
api_token = settings.password.get_secret_value()

API Reference

AtlassianSettings

Configuration settings for Atlassian API.

Fields:

  • url: str - API endpoint URL (e.g., "https://your-domain.atlassian.net")
  • username: str - Atlassian account email address
  • password: SecretStr - Atlassian API token (stored securely)

Example:

from pydantic import SecretStr
from kiarina.lib.atlassian import AtlassianSettings

settings = AtlassianSettings(
    url="https://example.atlassian.net",
    username="user@example.com",
    password=SecretStr("your-api-token")
)

settings_manager

Global settings manager instance for Atlassian API configuration.

Type: SettingsManager[AtlassianSettings]

Multi-configuration support: Enabled (can manage multiple Atlassian instances)

Example:

from kiarina.lib.atlassian import settings_manager

# Configure multiple instances
settings_manager.user_config = {
    "jira": {
        "url": "https://jira.example.com",
        "username": "jira@example.com",
        "password": "jira-token"
    },
    "confluence": {
        "url": "https://confluence.example.com",
        "username": "confluence@example.com",
        "password": "confluence-token"
    }
}

# Get specific configuration
jira_settings = settings_manager.get_settings("jira")
confluence_settings = settings_manager.get_settings("confluence")

Configuration

YAML Configuration

# config/production.yaml
kiarina.lib.atlassian:
  jira:
    url: "https://your-domain.atlassian.net"
    username: "your-email@example.com"
    password: "${ATLASSIAN_API_TOKEN}"
  
  confluence:
    url: "https://your-domain.atlassian.net"
    username: "your-email@example.com"
    password: "${ATLASSIAN_API_TOKEN}"

Environment Variables

Settings can be configured via environment variables with the prefix KIARINA_LIB_ATLASSIAN_:

export KIARINA_LIB_ATLASSIAN__JIRA__URL="https://your-domain.atlassian.net"
export KIARINA_LIB_ATLASSIAN__JIRA__USERNAME="your-email@example.com"
export KIARINA_LIB_ATLASSIAN__JIRA__PASSWORD="your-api-token"

Bootstrap Pattern

For multi-module applications, use the bootstrap pattern:

# bootstrap.py
import yaml
from pydantic_settings_manager import load_user_configs

def bootstrap():
    with open("config/production.yaml") as f:
        config = yaml.safe_load(f)
    load_user_configs(config)

# main.py
from bootstrap import bootstrap
from kiarina.lib.atlassian import settings_manager

bootstrap()
settings = settings_manager.get_settings("jira")

Testing

# Run tests
pytest

# Run tests with coverage
pytest --cov=kiarina.lib.atlassian --cov-report=html

Dependencies

  • pydantic (>=2.10.5): Data validation and settings management
  • pydantic-settings (>=2.7.1): Settings management from various sources
  • pydantic-settings-manager (>=2.3.0): Advanced settings management with multi-configuration support

License

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

Related Projects

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

kiarina_lib_atlassian-1.37.0.tar.gz (3.8 kB view details)

Uploaded Source

Built Distribution

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

kiarina_lib_atlassian-1.37.0-py3-none-any.whl (3.9 kB view details)

Uploaded Python 3

File details

Details for the file kiarina_lib_atlassian-1.37.0.tar.gz.

File metadata

  • Download URL: kiarina_lib_atlassian-1.37.0.tar.gz
  • Upload date:
  • Size: 3.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for kiarina_lib_atlassian-1.37.0.tar.gz
Algorithm Hash digest
SHA256 f054340a1fe4e006ca798fa8b94c65867a966188dddad283f55c762a0ee803ef
MD5 0f45e41555788f330a51b6cbcdc71ebb
BLAKE2b-256 154fb535e175229ea4a2abe4edcdae04ef6b2c73aa8c188c395d5cade19425ce

See more details on using hashes here.

File details

Details for the file kiarina_lib_atlassian-1.37.0-py3-none-any.whl.

File metadata

File hashes

Hashes for kiarina_lib_atlassian-1.37.0-py3-none-any.whl
Algorithm Hash digest
SHA256 28f2874e817db96c297a7d1c3cc6da19270225f7f4660b711875c2ea0ddd042f
MD5 b0ce54d1a8d8838e4ecc048c087de4ba
BLAKE2b-256 65ab5529cdbbd6c7a872505faaafda3e2d5c85876d5d2ab4bcb19ee1dfce8116

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