Python-Redmine (expert fork)

Tests

This is the expert fork of Python-Redmine, maintained for internal use after upstream development stopped. It is distributed as python-redmine-expert while keeping the redminelib import name, so it is a drop-in replacement for python-redmine. On top of upstream it adds support for the redmine_expert_helpdesk and redmine_expert_agile plugins.

Python-Redmine is a library for communicating with a Redmine project management application. Redmine exposes some data via REST API for which Python-Redmine provides a simple but powerful Pythonic API inspired by a well-known Django ORM:

>>> from redminelib import Redmine

>>> redmine = Redmine('http://demo.redmine.org', username='foo', password='bar')
>>> project = redmine.project.get('vacation')

>>> project.id
30404

>>> project.identifier
'vacation'

>>> project.created_on
datetime.datetime(2013, 12, 31, 13, 27, 47)

>>> project.issues
<redminelib.resultsets.ResourceSet object with Issue resources>

>>> project.issues[0]
<redminelib.resources.Issue #34441 "Vacation">

>>> dir(project.issues[0])
['assigned_to', 'author', 'created_on', 'description', 'done_ratio',
'due_date', 'estimated_hours', 'id', 'priority', 'project', 'relations',
'start_date', 'status', 'subject', 'time_entries', 'tracker', 'updated_on']

>>> project.issues[0].subject
'Vacation'

>>> project.issues[0].time_entries
<redminelib.resultsets.ResourceSet object with TimeEntry resources>

Features

  • Supports 100% of Redmine API, up to Redmine 7.0

  • Supports external Redmine plugins API: redmine_expert_helpdesk, redmine_expert_agile and the RedmineUP CRM, Helpdesk, Agile, Checklists and Questions plugins

  • Supports Python 3.10 - 3.14 and PyPy3

  • Supports different request engines

  • Extendable via custom resources and custom request engines

  • Extensively documented

  • Provides ORM-style Pythonic API

  • And many more…

Acknowledgements

A big thank you to Maxim Tepkeev, who created Python-Redmine and maintained it from 2014 to 2024. His work made a well-designed, thoroughly tested and extensively documented library available to everyone. This fork only exists because his foundation was solid enough to build on, and the vast majority of its code is still his. Thanks as well to everyone who contributed to the original project.

Table of contents