1
1

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 1 year has passed since last update.

pythonを使ってbacklogの課題を一括削除してみた

Posted at

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を張り付けてください。
image.png

※課題キーとは?
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番読んでね。
 

backlogcsvファイルを読んで削除.py
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("処理が完了しました。")

削除テストはテスト領域を適当に作って行って下さい。
本番データを誤って削除しても、責任は負えません。

以上、十分注意して削除してくださいね。

付録

csvの中身はこんな感じです。
image.png

1
1
0

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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?