Skip to main content

Enhanced Python client for JIRA with better error handling, pagination, and metadata validation

Project description

Python JIRA Plus

PyPI version License: MIT

An enhanced Python client for JIRA that extends the functionality of the official jira package, providing better error handling, pagination, metadata validation, and more.


Features

  • ✅ Simplified connection to JIRA Cloud and On-Premise instances
  • ✅ Robust error handling with automatic retries
  • ✅ Built-in pagination for large result sets
  • ✅ Field validation against JIRA metadata
  • ✅ Enhanced issue creation, retrieval, and updating
  • ✅ Support for allowed values validation

Installation

pip install python-jira-plus

Requirements

  • Python 3.9+
  • jira package
  • retrying package
  • custom-python-logger package

Configuration

The package uses environment variables for authentication and configuration:

# Required environment variables
JIRA_USER_NAME=your_jira_username
JIRA_TOKEN=your_jira_api_token
JIRA_BASE_URL=your-instance.atlassian.net  # Only used if base_url is not provided to constructor

Examples

Creating an Issue with Custom Fields

from python_jira_plus.jira_plus import JiraPlus

jira_client = JiraPlus()
issue = jira_client.create_issue(
    project_key="PROJ",
    summary="Implement new feature",
    description="This feature will improve performance",
    issue_type="Task",
    custom_fields={
        "priority": "Critical",  # Priority
        "customfield_10003": {"name": "Sprint 1"}  # Sprint
    }
)

Searching for Issues

from python_jira_plus.jira_plus import JiraPlus

jira_client = JiraPlus()
issues = jira_client.get_objects_by_query(
    query="project = PROJ AND status = 'In Progress' ORDER BY created DESC",
    max_results=50,
    specific_fields=["summary", "status", "assignee"],
    json_result=False
)

for issue in issues:
    print(f"{issue.key}: {issue.fields.summary} - {issue.fields.status.name}")

Updating an Issue

from python_jira_plus.jira_plus import JiraPlus

jira_client = JiraPlus()
issue = jira_client.get_issue_by_key(key="PROJ-123", json_result=False)

fields_to_update = {
    "summary": "Updated summary",
    "description": "Updated description",
    "customfield_10003": {"name": "Sprint 2"},  # Update Sprint
}
_ = jira_client.update_issue(
    issue_key=issue.key,
    fields_to_update=fields_to_update
)

🤝 Contributing

If you have a helpful tool, pattern, or improvement to suggest: Fork the repo
Create a new branch
Submit a pull request
I welcome additions that promote clean, productive, and maintainable development.


🙏 Thanks

Thanks for exploring this repository!
Happy coding!

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

python_jira_plus-0.1.4.tar.gz (9.5 kB view details)

Uploaded Source

Built Distribution

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

python_jira_plus-0.1.4-py3-none-any.whl (10.2 kB view details)

Uploaded Python 3

File details

Details for the file python_jira_plus-0.1.4.tar.gz.

File metadata

  • Download URL: python_jira_plus-0.1.4.tar.gz
  • Upload date:
  • Size: 9.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for python_jira_plus-0.1.4.tar.gz
Algorithm Hash digest
SHA256 db82d13b42236dc32a94b44ff8fd04d56cfa640e59a1c42ed7b6e8dc902f52c3
MD5 df5c658ef1e43b02a3eebe14fbd77f52
BLAKE2b-256 3f4adc39e8e515c8025d15d2ea566e026a4d37be6db025ddf1b7b784733aadf1

See more details on using hashes here.

File details

Details for the file python_jira_plus-0.1.4-py3-none-any.whl.

File metadata

File hashes

Hashes for python_jira_plus-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 8e055a7e00e00f4fa0691dc4ac04f76d7ea0bbcf914368ed0e5ad3fb30e6f233
MD5 05d204b91266146d2090f4090e412b9e
BLAKE2b-256 35f4d01cd11ab38c56e77b54f3eca5ce9ef8a410605fb1a9241ddcff6a1346cd

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