2012年1月26日木曜日

groovyでredmineのチケットを作成する

groovyでredmineのチケットを作成するには、以下のコードを実行します。
@Grab(group='org.apache.httpcomponents', module='httpclient', version='4.1.2')
import org.apache.http.*
import org.apache.http.client.*
import org.apache.http.client.methods.*
import org.apache.http.impl.client.*
import org.apache.http.entity.*
import org.apache.http.message.*
import org.apache.http.protocol.*
import groovy.json.*

httpclient = new DefaultHttpClient()
// チケットを作成する
method = new HttpPost("http://redmine-server/redmine/issues.json")
// アカウントページで作成したAPIアクセスキーを設定する
apiKey = "your-api-key"
method.addHeader(new BasicHeader("X-Redmine-API-Key", apiKey))
// パラメータを設定
builder = new JsonBuilder()
builder.issue {
  project_id "testproject1"
  subject "UIバグ"
  description "Windowがクローズできない。"
  tracker_id "1"  // 1=Bug
  priority_id "5"  // 5=High
  status_id "1" // 1=New
  start_date "2012-01-05"
  due_date "2012-02-02"
  done_ratio "0"
  estimated_hours "10"
}
method.setEntity(new StringEntity(builder.toString(), "application/json", "UTF-8"))
response = httpclient.execute(method)
println response.getStatusLine().getStatusCode()
json = new JsonSlurper().parseText(response.getEntity().getContent().text)
// 作成したチケットのID
println "id:${json.issue.id}"

動作環境
groovy 1.8.4, JDK6 Update29, redmine 1.3.0

0 件のコメント:

コメントを投稿