Using the REST API with Ruby

Redmine REST API follows the Rails's RESTful conventions, so using it with ActiveResource is pretty straightforward.

ActiveResource

Here is a simple ruby script that demonstrates how to use the Redmine REST API:

 1require 'rubygems'
 2require 'active_resource'
 3
 4# Issue model on the client side
 5class Issue < ActiveResource::Base
 6  self.site = 'http://redmine.server/'
 7  self.user = 'foo'
 8  self.password = 'bar'
 9end
10
11# Retrieving issues
12issues = Issue.find(:all)
13puts issues.first.subject
14
15# Retrieving an issue
16issue = Issue.find(1)
17puts issue.description
18puts issue.author.name
19
20# Creating an issue
21issue = Issue.new(
22  :subject => 'REST API',
23  :assigned_to_id => 1,
24  :project_id => 1,
25  :custom_field_values => {'2' => 'Fixed'}
26)
27if issue.save
28  puts issue.id
29else
30  puts issue.errors.full_messages
31end
32
33# Updating an issue
34issue = Issue.find(1)
35issue.subject = 'REST API'
36issue.save
37
38# Deleting an issue
39issue = Issue.find(1)
40issue.destroy

RedmineClient gem

Eric Davis has created a gem that has ActiveResource wrappers for Redmine's API. See his post Redmine Client - Access the Redmine API in Ruby for more details and an example.