Control Redmine from the command line

Added by Dave Nolan over 5 years ago

Hello,

I've written a script to control Redmine from the command line. The original blog post is here http://textgoeshere.org.uk/articles/2009/03/control-redmine-from-the-command-line/. You can get the script here http://github.com/textgoeshere.org.uk/redcmd.

Suggestions, bugs, etc. all welcome. Hope you find it useful!

Cheers,
Dave

Replies (10)

RE: Control Redmine from the command line - Added by Paul Hinze over 5 years ago

I've had this on my TODO list forever, and I've played around with a couple of different iterations of how to do it.

See http://github.com/phinze/libredmine/tree/master

Nice to see someone else interested in the same thing. Maybe we can work together!

My biggest concern is having to use mechanize as a backend, which is so clunky and tightly couples with things it shouldn't be (it's the same way my code works, though). I started to envision this intermediary layer with objects in the command line program mirroring remote objects in Redmine (you'll see that in the 'libredmine' portion of my project), but that led me to just wanting to be able to interface w/ Redmine in a cleaner way like with a webservice or something. I feel guilty just essentially duplicating redmine's models manually.

Anyways, I'm curious to hear your thoughts and excited to build something useful!

RE: Control Redmine from the command line - Added by Dave Nolan over 5 years ago

Hey Paul,

Great minds think alike then?

I think your advanced approach is interesting, and I agree using Mechanize is a bit hacky.

In my opinion, what we really need is a REST-ful API. I think there is work going around this http://www.redmine.org/issues/show/296. Perhaps that's where we should devote our energy. What do you reckon?

Dave

RE: Control Redmine from the command line - Added by Eric Davis over 5 years ago

I'm planning on working on the REST API (sometime soon) and would love any help or patches (#296). Once there is the API, you can probably use something like rest client for a simple command line access.

Eric

RE: Control Redmine from the command line - Added by Dave Nolan over 5 years ago

Eric Davis wrote:

I'm planning on working on the REST API (sometime soon) and would love any help or patches (#296). Once there is the API, you can probably use something like rest client for a simple command line access.

Eric

Yes, definitely the way forward. In the meantime, though, feel free to use my script :)

RE: Control Redmine from the command line - Added by Christian Ribe over 4 years ago

Could someone help me?
I don't know how to install redcmd (I'm new to all of this).

Where do I install red.rb?
How do I use it from the bitnami redmine stack?

Thanks

RE: Control Redmine from the command line - Added by Dave Nolan over 4 years ago

Hey,

It's meant to be called from the command line directly.

On windows, you could hack up a BAT to run it.

ruby "%~dp0red.rb" %*

On *nix, you add this as the first line of red.rb:

#!/usr/bin/env ruby

Remember to chmod a+x red.rb to allow it to be run as a script.

I recommend adding the folder red.rb is in your PATH so you can call it from anywhere. The .red configuration file should be in the same folder as wherever you run red.rb from. In my case, I create one in the root of each project.

Let me know if this helps or ping me again for any more info.

Cheers,
Dave

RE: Control Redmine from the command line - Added by Christian Ribe over 4 years ago

Thanks Dave!

That helped me get started but there seems to be missing some steps.
I also had to perform these steps.

1st
cd to my ruby folder

cd /opt/redmine-0.8.6-0/ruby/bin

2nd
Install trollop and mechanize gems (since they are not present on my system)

sudo ./gem install trollop
sudo ./gem install mechanize

Now only step missing is the configuration file which I don't know what file name it expects?

==An example configuration file==
username: dave
password: d4ve
url: http://www.myredmineinstance.com
project: redcmd
tracker: bug
priorty: normal 

I named it red.red but that's not it. I get this:

/opt/redmine-0.8.6-0/ruby/lib/ruby/gems/1.8/gems/mechanize-0.9.3/lib/www/mechanize/chain/uri_resolver.rb:53:in `handle': need absolute URL (RuntimeError)
        from /opt/redmine-0.8.6-0/ruby/lib/ruby/gems/1.8/gems/mechanize-0.9.3/lib/www/mechanize/chain.rb:25:in `handle'
        from /opt/redmine-0.8.6-0/ruby/lib/ruby/gems/1.8/gems/mechanize-0.9.3/lib/www/mechanize.rb:457:in `fetch_page'
        from /opt/redmine-0.8.6-0/ruby/lib/ruby/gems/1.8/gems/mechanize-0.9.3/lib/www/mechanize.rb:238:in `get'
        from ../../apps/redmine/red.rb:70:in `login'
        from ../../apps/redmine/red.rb:63:in `initialize'
        from ../../apps/redmine/red.rb:174:in `new'
        from ../../apps/redmine/red.rb:174

Any ideas?
Thanks

RE: Control Redmine from the command line - Added by Dave Nolan over 4 years ago

By default it expects config file to be called .red but you can override this per-command by passing in -filename YOUR_FILENAME_GOES_HERE option.

Dave

(1-10/10)