Introduction

A typed, tested description of the Redmine REST API, with a TypeScript client.

This project describes the Redmine REST API as a TypeSpec specification, versioned by Redmine release. From the spec, it generates:

Why a spec?

Redmine documents its API in wiki pages, which leave out many properties and don't say which Redmine version added a feature. This spec is checked against real Redmine servers: integration tests start Redmine 3.1 to 7.0 in Docker, call every endpoint and validate the raw responses against the OpenAPI document of that version. A test fails when a response doesn't match the spec, uses an undeclared status code, or contains properties the spec doesn't declare.

On this page