以下の内容はhttps://tech.guitarrapc.com/entry/2019/08/19/015741より取得しました。


TeamsId2BitwardenConverterでTeamsIdからBitwardenへの移行を再度行う

TeamsIdからBitwardenへの移行をまたやってました。

https://tech.guitarrapc.com/entry/2019/01/16/101516

作っておいてよかったということでサクッとやったのですがいくつか修正しています。

TeamsId2BitwardenConverter

移行に使ったのは例によって自作ツール。

https://github.com/guitarrapc/TeamsId2BitwardenConverter

個人のデータを移行する

次の例は、TeamsIdのデータをBitwardenのPersonalへ移行する例です。(BitwardenにはOrganizationもある)

https://gist.github.com/guitarrapc/e11e2535503330519171825df2283b1c

必要なのは、Bitwardenのフォルダ構造の定義JSONと、TeamsIdのexport csvです。

あとは、teamsIdのcsvをteamsidPersonalCsvに指定して、bitwardenのフォルダ構造jsonをbitwardenFolderDefinitionJsonに指定すれば変換されます。

static void Personal(string outputPath, string teamsidPersonalCsv, string bitwardenFolderDefinitionJson)
{
    var folderDefinition = DeserializeFolderJson<BitwardenFolderDefinition>(bitwardenFolderDefinitionJson);

    // convert teamsid to bitwarden
    var teamsIdDatas = new CsvParser(teamsidPersonalCsv).Parse<TeamsIdDefinition4>();
    var bitwardenItems = new BitwardenConverter(folderDefinition).Convert(teamsIdDatas, defaultGroup: "TestGroup");

    // serialize bitwarden import data
    var importData = new BitwardenDefinition
    {
        folders = folderDefinition.folders,
        items = bitwardenItems,
    };
    importData.WriteJson(outputPath);
}

使いにくかった処理をいくつか修正しました。

  • 前の実装はTeamsIdのカラム数を12に決め打ちしてて、カラム数が満たないときにエラー出てたのでITeamsIdDefinitionを実装すればいいようにしました。書かなくていいようにカラム数分の定義を1-12まで用意しておいたので、楽になるはず
  • 出力先フォルダも自動生成するようにしました。(わすれてました)
  • Group埋め込みとかEmail/UserNameの分岐がなかったので足しました。ひどい

あと、ついでにCIをAppveyorからCircleCIに変更しました。 Appveyor、残りGolangとC#とPowerShellでいくつかCI回しているので全部CircleCIに移行予定。

GolangはGitHub Actionsでも動かしているので、CircleCIじゃなくてもいいかな。

まとめ

とりあえず数回移行に使って問題なかったので便利に使ってます。(移行中にデータを確認するので100回以上使ってる)

TeamsId、相変わらず非ascii (日本語も) だめなのでもう使わない....。

Bitwarden webが少々不安感あるので、k8sでクラスタ組もうかなぁ。




以上の内容はhttps://tech.guitarrapc.com/entry/2019/08/19/015741より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14