/var/www/yatta47.log

/var/www/yatta47.log

やったのログ置場です。スクラップみたいな短編が多いかと。

Backlog APIを使って複数のプロジェクトを"一括"で登録する

Simple personal Kanban board

前回の記事でBacklog APIを使ってプロジェクトを登録してみました。

画面でやるより全然楽ですね。

 

前回はひとつだったので、今回は複数プロジェクトを一括で登録してみようと思います。

 

複数のプロジェクトを一括で登録

前回作ったコードをもとにします。

やり方的には簡単。csvを読み込んで、読み込んだデータをループさせるだけです。

関数化させた理由はループさせるためです。

大まかな流れはこうなります。

  • CSVファイルを用意
  • 前回のファイルにCSVを読み込む機能を追加
  • \(^o^)/

ではやっていきましょう。

csvファイルを用意

例として、国名ごとにプロジェクトを作成するとします。

以下のようなcsvファイルをmain.rbと同じ場所に作成します。

key,country
AD,アンドラ公国
AE,アラブ首長国連邦
AF,アフガニスタン・イスラム国
AG,アンチグア・バーブーダ
AI,アンギラ
AL,アルバニア共和国
AM,アルメニア共和国
AN,オランダ領アンティル
AO,アンゴラ共和国
AQ,南極

keyのところに国名コード、countryのところに国名を入れます。

ポイントとしてはヘッダありのCSVファイルを作成する点です。それがないとデータが抜け落ちてしまうかもしれないので。

 

CSVを読み込む機能を追加

では作成したCSVファイルを読み込んでBacklogのプロジェクトを作成してきます。

 

コードは以下。

require 'backlog_kit'
require 'csv'

def readCSV()
    file_name = "country.csv"
    csv_data = CSV.read(file_name, headers: true)
    return csv_data
end

def createProject(key, name)
    params = {
        chartEnabled: true,
        subtaskingEnabled: true,
        useWikiTreeView: true,
        textFormattingRule: "backlog"
    }

    @client.create_project(key, name, params)
end

# ///////////
# main
# ///////////
@client = BacklogKit::Client.new(
    space_id: "sample-space",
    api_key: "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
)

csv_data = readCSV()
csv_data.each do |data|
    createProject(data["key"],data["country"])
end

csvファイル名べた書きとか言って・・・・っていうかちょー手抜きなコードなのでご了承ください💦

csvで読み込んだ配列をループさせている感じです。

実行方法とかも前回と同じです。

bundle exec ruby main.rb

管理画面のほうにアクセスして、複数プロジェクトができていることが確認できると思います。

 

次は課題を一括で登録する

これでいわゆる枠がたくさんできた状態になります。

このプロジェクトの中に課題を登録してタスク管理していくことになります。

次回は、課題を一括登録してみようと思います。

 

次回登録しようとしている課題。親課題と子課題の設定ができます。何を親課題として何を子課題にするか。その辺の考え方が身につく本が「コンサル一年目が学ぶこと」という本。

おすすめです。