RedmineのAPIを利用して情報をGETするRubyのスクリプト


 

座学ばかりもつまらないし、たけけんのサーバー勉強日記といえば実習だ!
そうだったの?
そうなんです。
ということで、スクリプトを書きます。スクリプトを書きましょう。
ネタはどうしようかしらとブックマークに眠っているネタフォルダを探してみた。もういい加減に溜まりすぎてジャンルがめちゃくちゃだ。

日本の全エンジニアに捧ぐ!現在公開されているAPI一覧【2013年版】 | Find Job ! Startup:

2013年度!?まぁいいではないか。RedmineのAPIを使ってみよう。今どきのOSSにはAPIも備わっているらしい。OpenstackのAPIも触ってみよう。
リンク先にはRedmineはないのだけれど、アイディアを頂いたのだ。

そういえばRedmineの環境が無かったなと。急遽作った。

参考サイト
Redmine 2.5をCentOS 6.5にインストールする手順 | Redmine.JP Blog:
最新バージョンではないですが参考にして進めれば何とかなります。

大規模なものなら念入りに念入りに準備スル必要がありますが、ちょこっと用意するだけだったらほほいのほいです。時代は変わるもんだ。
もっと楽をしたいのならば、Redmineの入ったコンテナだったりVBOXを探せばよいのだ。

さて、まず必要なものはプロジェクトとチケットなので、そこは適当に何個か作りましょう。
出来上がったらユーザー画面でAPIKeyを出力したら準備はOKです。多分。
多分という理由は大規模なものでは試していません。が、なんとかなるでしょう。多分。
動かなくなればその辺の制御は付け足していけばいいのだ。
プログラムじたいもまだ途中の段階ですが、とりあえず上げてみます。
まだまだヘタレですので色々な人の目についた方がいいのかなぁと思えてきたのでQiitaにもあげてみようかと思っています。ただ打たれ弱いのでどうするかまだ未定。

予定は未定・・・ではなかったようだ。Qiitaにもアップしました。

と思いましたがやっぱりQiitaにあげていたソースは削除しました。原因はマルチポスト。
個人ブログとQiitaの併用でマルチポストの問題で悩んでいる人はわりといらっしゃるようだ。ぐぐると色々でてきます。
古い人間なんでネチケットとか気になるのよね。

様々な考え方を読んでみるとどれもが納得できるものでした。
色々考えた結果。もうしばらくブログ1本でいくことにしたー!
※Qiitaの方が検索上位に来るというのは既知の問題のようですね〜。

ソース。

# -*- coding: utf-8 -*-

require 'open-uri'
require 'json'
require 'uri'
require 'date'
require 'net/http'

SRC_URL = 'http://hogehogetakekenredmine/'
API_KEY = 'dcf1cebc816860bc1d92669123784d8bd'

class Redmine_api

  def initialize()
    p day = Date.today
  end

  def projects
    url = URI.parse(SRC_URL + 'projects.json?key=' + API_KEY)
    p data = JSON.parse(open(url).read)
  end

  def users
    url = URI.parse(SRC_URL + 'users.json?key=' + API_KEY)
    p data = JSON.parse(open(url).read)
  end

  def issues
    url = URI.parse(SRC_URL + 'issues/1.json?key=' + API_KEY)
    p data = JSON.parse(open(url).read)
  end

end

# main
if __FILE__ == $0

  if ARGV.length != 1
    p "Usage : ruby redmine_api.rb < projects or users or issues >"
    exit 1
  end

  push = Redmine_api.new()
  push.projects  if ARGV[0] == "projects"
  push.users if ARGV[0] == "users"
  push.issues if ARGV[0] == "issues"

end

RESTなのでチケット登録とかもできるようで、その辺はおいおいで。

Sinatraで勉強会の情報取得アプリを作ってみようプロジェクトの方もぼちぼちデータが溜まってきているので、データベースの処理と古いデータの処理のプログラムを入れないといけません。

Similar Posts:


Leave a Reply

Your email address will not be published. Required fields are marked *