Skip to content

v0.2.1

Choose a tag to compare

@avranu avranu released this 12 Feb 00:35
· 6 commits to main since this release

This release introduces a CLI tool that connects to Sure (budgeting) and Jira Cloud to automatically generate a monthly task for shared expenses.

What It Does

Fetches transactions from Sure for a given month

Excludes configurable categories (e.g. Personal Expenses)

Sums qualifying expenses

Calculates a 50/50 split

Creates a Jira issue with:

Summary: Pay shared bills for {Month YYYY}: ${Half}

ADF-formatted description with totals and counts

Assigned to a configurable Jira user (accountId)

Key Features
🔹 Sure Integration

Auth via configurable header (supports X-Api-Key)

Handles pagination

Safely parses localized currency formats

Excludes configurable category list

Optional inclusion of income transactions

🔹 Jira Cloud Integration

Uses REST API v3

Supports Base64 Basic authentication

Creates properly formatted ADF descriptions

Assigns issue via accountId

Logs full error responses for easier debugging

🔹 CLI Support

--month YYYY-MM (defaults to previous month)

--action notify|list

--dry-run

--include-income

Configurable timezone

Example Usage
python main.py --dry-run

python main.py --month 2026-01

List qualifying transactions without creating an issue:

python main.py --action list

Required Environment Variables
SURE_BASE_URL
SURE_API_TOKEN
SURE_AUTH_HEADER
SURE_AUTH_PREFIX

JIRA_BASE_URL
JIRA_ENCODED_CREDENTIALS
JIRA_PROJECT_KEY
JIRA_ASSIGNEE_ACCOUNT_ID

Optional:

EXCLUDED_CATEGORY_NAMES
INCLUDE_INCOME
APP_TIMEZONE
CURRENCY_SYMBOL
DRY_RUN

Notes

Jira requires accountId, not email, for assignee.

Sure API pagination defaults to 25 items per page.

Description is formatted using Atlassian Document Format (ADF).

This release establishes a reproducible monthly workflow for shared expense reconciliation and task tracking.