Help us understand the problem. What is going on with this article?

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

概要

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))
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした