1. 経緯
backlogの古い課題を削除して容量を確保する方針になりました。
backlogの課題は1件ずつしか消せない仕様のため、
1万件とかあったら何日かかるの?ってくらい大変です。
その為、今回作成したプログラムで、まとめて消しちゃおうって寸法なわけです。
2. 開発環境
pythonで作成しました。
バージョンは3.12.0(64bit)
インストールは↓のURLから試してね
https://www.python.jp/install/windows/install.html
3. APIキーの登録
Backlog APIを使うためにAPIキーを登録しておきます。
https://support-ja.backlog.com/hc/ja/articles/360035641754-API%E3%81%AE%E8%A8%AD%E5%AE%9A
4. 削除課題の選定
高度な検索を利用して削除する範囲を決めます。
今回は状態は全て選択し、日付タブに移動して
更新日を2016/1/1~2021/12/31を指定しました。
この条件で検索した後、「・・・」からCSVをダウンロードします。
以下のイメージのようにIDが出力されますので、「ID」を後にでてくるcsvを張り付けてください。
※課題キーとは?
URL上にもブラウザ構成内にも表示されません。
CSVなどでエクスポートしてIDの欄が課題キーになります。
(この謎の解決に数日かかりました。)
5. プログラムの作成
C:\py\backlogcsv削除.py
上記パスにプログラムを置きます。
このプログラムの解説
api_keyはURLを参照して確認してください。
space_idは「https://xxx.backlog.jp」のxxxをコピペしてください。
・backlogの契約によって.backlog.jp または、backlog.comは変更が必要になります。
・c:\py\issue_ids.csvのパスに課題キーを入力する必要があります。※課題キーは4番読んでね。
import requests
import csv
# APIキーとエンドポイントの設定
api_key = "xxx"
space_id = "xxx"
# CSVから課題IDを読み込む
issue_ids = []
with open('c:\\py\\issue_ids.csv', 'r') as csvfile: # パスを指定:cドライブのフォルダを指定してます。
reader = csv.reader(csvfile)
for row in reader:
issue_ids.append(row[0]) # CSVの1列目が課題IDと仮定
# 各課題IDに対して削除のリクエストを送信
for issue_id in issue_ids:
url = f"https://{space_id}.backlog.jp/api/v2/issues/{issue_id}?apiKey={api_key}"
response = requests.delete(url)
print("処理が完了しました。")
削除テストはテスト領域を適当に作って行って下さい。
本番データを誤って削除しても、責任は負えません。
以上、十分注意して削除してくださいね。