管理者をしていると、いろいろリクエストがあるので、簡単に実行できるものを用意しました…。
# !/bin/sh
USAGE="usage: $0 [REDMINE_URL] [PROJECT_ID] [API_KEY]"
if [ $# -lt 3 ]; then
echo >&2 $USAGE
exit 1
fi
REDMINE_URL=$1
PROJECT_ID=$2
API_KEY=$3
echo wget --content-disposition $REDMINE_URL/projects/$PROJECT_ID/issues.csv?key=$API_KEY&status_id=*
wget -nv --content-disposition $REDMINE_URL/projects/$PROJECT_ID/issues.csv?key=$API_KEY&status_id=*
# CSVが取得できるまで待ちましょう
wait
IFS=","
while read f1 f2
do
if [ "$f1" != "#" ]; then
echo "IssueID: $f1"
wget -nv --content-disposition $REDMINE_URL/issues/${f1}.pdf?key=$API_KEY --output-document=${f1}.pdf
fi
done < issues.csv
ポイント
- 基本はshell + 標準のwgetを使っていますので、特に準備は無いと思われます。
- status_id=* のパラメータをくっつけると、ステータス関係無しで全チケットをCSVに出します。
- CSV出力ルールでは、1列目がチケットIDなので、後はひたすら1列目のIDを指定してwgetでPDFを落とします…。
エラー処理とか完全ではないですが、ひとまず動きますので、執事にやってもらうでも何でもご利用いただけると嬉しいです。