To: redmine Users MLのみなさま
北島です。いつもお世話になっております。
以前お伺いしたLDAP連携アプリケーションですが、Redmine REST APIを使って再実装することになり、現在手がけています。
やっている途中で、いくつか問題が浮上しました。
答えをお持ちの方がいらっしゃいましたら、いろいろ教えていただければ幸いです。
なお、APIを叩く側のrubyの環境は以下の通りです。
OS: Ubuntu 12.10 64-bit
Ruby: 1.9.3p194(rev 35410)
gem: 1.8.23
gems:
actionmailer (3.2.11)
actionpack (3.2.11)
activeldap (3.2.2)
activemodel (3.2.11, 3.2.8)
activerecord (3.2.11)
activeresource (3.2.11)
activesupport (3.2.11, 3.2.8)
arel (3.0.2)
builder (3.1.4, 3.0.4, 3.0.0)
bundler (1.2.1)
coderay (1.0.8)
columnize (0.3.6)
crack (0.3.1)
cucumber (1.2.1)
diff-lcs (1.1.3)
erubis (2.7.0)
fast_gettext (0.6.11)
flay (1.4.3)
flog (2.5.3)
gettext (2.3.3)
gettext_i18n_rails (0.7.1)
gherkin (2.11.5)
hike (1.2.1)
hoe (3.1.0)
httparty (0.9.0)
i18n (0.6.1)
journey (1.0.4)
jquery-rails (2.0.3)
json (1.7.6, 1.7.5)
locale (2.0.8)
mail (2.4.4)
mime-types (1.19)
multi_json (1.5.0, 1.3.6)
multi_xml (0.5.1)
mysql2 (0.3.11)
neography (1.0.1)
net-ldap (0.3.1)
os (0.9.6)
pg (0.14.1)
polyglot (0.3.3)
rack (1.4.3)
rack-cache (1.2)
rack-openid (1.3.1)
rack-ssl (1.3.2)
rack-test (0.6.2)
rails (3.2.11)
railties (3.2.11)
rake (10.0.3, 0.9.2.2)
rbx-require-relative (0.0.9)
rdoc (3.12)
rdoc-data (3.12)
redcarpet (2.2.2)
reek (1.2.12)
rest-client (1.6.7)
ripper_ruby_parser (0.0.8)
rmagick (2.13.1)
roodi (2.1.0)
rspec (2.11.0)
rspec-core (2.11.1)
rspec-expectations (2.11.3)
rspec-mocks (2.11.3)
ruby-net-ldap (0.0.4)
ruby-openid (2.1.8)
ruby2ruby (1.3.1, 1.2.5)
ruby_parser (2.3.1)
rubyzip (0.9.9)
sexp_processor (4.1.0, 3.2.0)
sprockets (2.2.2)
sqlite3 (1.3.6)
sqlite3-ruby (1.3.3)
term-ansicolor (1.0.7)
test-unit (2.5.2, 1.2.3)
thor (0.16.0)
tilt (1.3.3)
treetop (1.4.12)
tzinfo (0.3.35)
yard (0.8.3)
叩いている先のredmineは以下のような環境です。
Environment:
Redmine version 2.2.2.stable.11324
Ruby version 1.9.3 (x86_64-linux)
Rails version 3.2.11
Environment production
Database adapter Mysql2
Redmine plugins:
no plugin installed
以下問題:
(0-1) 自力解決済み:
http://www.redmine.org/projects/redmine/wiki/Rest_api_with_ruby
にあるソースコードは、最近のActiveResouceでは動かないようです。
class Issue < ActiveResource::Base
self.site = '
http://redmine.server/'
self.user = 'foo'
self.password = 'bar'
+ self.format = :xml
end
で動くようです。
(0-2) 自力未解決
ActiveResourceを使う実装を前提として、API Keyを渡すにはどうすればよいのでしょうか?
適当にself.key = APIKEY とかやってみましたが、うまく動かない(ActiveResource::Baseにkey変数がない?)模様です。
(1) User APIの問題
LDAPを1つ以上設定して、auth_source_idが意味のある値を示すような環境で
http://www.redmine.org/projects/redmine/wiki/Rest_Users
ではPOST Parameterとしてauth_source_idを受け付けることになっていますが、ActiveResourceで
user = User.new(
:login => member.login,
:firstname => member.firstname,
:lastname => member.lastname,
:mail => member.mail,
:auth_source_id => member.auth_source_id
)
というコードを書いても、 :auth_source_id などというメソッドはない?などと怒られます。
GETでuserを取ってきてもXMLにauth_source_idが含まれないのが原因では?と予想しております。
(2) Project APIの設定
GETのresponseにはparent
projectの情報が含まれるようですが、POSTで新規プロジェクトを作るときに(ActiveResource経由を前提として)Parent
Projectの設定は無理でしょうか?
以上、よろしくおねがいします。
--
北島 哲郎(きたじま・てつろう)
e-mail:
tet...@amanogawa.to
織姫 URL:
http://www.amanogawa.to/