7
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

pythonのrequestsを使用してredmineのAPIでチケットを登録する

Last updated at Posted at 2017-01-04

概要

pythonのrequestsモジュールを使って、redmineのAPIを使用して
チケット登録をする。

どうしてこの記事を書いたのか

python-redmineを使用した例は簡単に見つかるものの、
requestsを使用したものはあんまりなくて、curlでやる要領でやってたら
つまづいたので、他の誰かがつまづかないようになればと思って書いた。

どうしてpython-redmineではダメだったのか。

チケット登録後にそのチケットを親チケットにして次々と子チケットを  
登録するようにしたかったのだが、上のライブラリだとチケット登録後の  
レスポンスはブール値で帰ってくるため、  
登録したチケットIDを取得することができなかったため。
(できるよ!って方は教えてください!)
コメントで方法を教えてもらいました。
また、公式 を見ると書いてます。
ドキュメント読もう(自戒)

前提

  • APIキーは準備済み
    何はともあれAPIを利用してチケットを登録するときは必要なので、
    用意しましょう。
  • requestsはインストール済み
    importの仕方もわかる。使い方もまぁ大体はわかる。

チケット登録の方法

headerの準備

以下の感じでmyheadersという変数にheaderの情報を格納します。

myheaders = {
    'Content-Type': 'application/json',
    'X-Redmine-API-Key': 'APIキー'
}

入力例
myheaders = {
    'Content-Type': 'application/json',
    'X-Redmine-API-Key': 'asdfghjklzxcvbnm'
}

チケットの値を準備

payload = {
    "issue": {
        "project_id": プロジェクトのID,
        "subject": "チケットの件名",
        "status_id": ステータスのID,
        "tracker_id": トラッカーのID,
        "parent_issue_id": "親チケットにしたいチケットがあるならそのチケットID",
        "due_date": "期日(2017−01−01とか)",
        "description": "# 概要\n バックスラッシュnで改行できる。",
        "custom_fields": [
            {"id": カスタムフィールドのID, "value": "登録したい値", "name": "カスタムフィールドの名前"},
            {"id": カスタムフィールドのID, "value": ["一つのフィールドに", "登録したい値が複数あるときは", "こうやって分ける"], "name": "カスタムフィールドの名前"}
        ]
    }
}

入力例
payload = {
    "issue": {
        "project_id": 10,
        "subject": "チケットの件名",
        "status_id": 15,
        "tracker_id": 8,
        "parent_issue_id": "10000",
        "due_date": "2017−01−01",
        "description": "# 概要\n バックスラッシュnで改行できる。",
        "custom_fields": [
            {"id": 1, "value": "かぼちゃ", "name": "好きな野菜"},
            {"id": 2, "value": ["D", "F","G","H"], "name": "好きなサイズ"}
        ]
    }
}

requestsでチケット登録!

以下の感じでチケット登録!

redmineurl = 'http://redmineのURL'  
requests.post(redmineurl,headers=myheaders,data=json.dumps(payload))
7
11
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?