eyecatch thumbnail

Gitlab のイシューを github-csv-tools を使って Github にインポートする方法

Profile picture
ルッチ / Lucci
2020.11.08

Contents


はじめに

こんにちは,たける@typememo です.

この記事は Gitlab のイシューをエクスポートし Github にインポートする方法の解説記事です.

Gitlab から Github へ乗り換える時にイシューが引き継げなくて困っている, そんな人には是非読んでもらいたい記事です.

そもそも Gitlab とか Github とかなんですか?

という状態の方は以下の書籍をチラ見していただければ,雰囲気掴めるかと思います.

おすすめ書籍:

それでは,早速参りましょう!


Gitlab のイシューをエクスポートする

まずは Gitlab のイシューをエクスポートするところからですね.

Gitlab のイシューページを表示してください.

イシューページの上部メニュバーに Export as CSV アイコンをクリックしてください.


gitlab export issue as csv Figure.1 Gitlab export as csv


Export as CSV アイコンをクリックすると次のダイアログが表示されます.

Export issues をクリックすると,Gitlab に登録しているメールアドレスに csv ファイルが添付されたメールが送信されます.

メール受信トレイを確認してみてください.


gitlab export issues confirm

Figure.2 Gitlab export issues confirm


以下では,csv ファイルが ~/Downloads ディレクトリに保存されている前提で話を進めます.


github-csv-tools でイシューをインポートする

Github にイシューをインポートするには github-csv-tools を使いました.

github-csv-tools という名前からイシュー要素が感じ取れませんが,イシューをハンドリングできます.

早速,インストールします.

インストールするには npm コマンドでインストールします.

もし npm コマンドをインストールされていない方は, asdf node.js / npm のバージョン管理方法 を参照して npm コマンドを使えるようにしてください.

npm コマンドがインストールされているかどうかは $ which npm で確認できます.

ということで github-csv-toolsnpm コマンドでインストールします.

$ npm install -g github-csv-tools

github-csv-tools をインストールしたら $ githubCsvTools /path/to/example.csv と実行すればイシューがインストールできます.

$ githubCsvTools ~/Downloads/example.csv
token (get from https://github.com/settings/tokens): ??????????
user or organization: ??????????
repository: ??????????
Created ??? issues, and had 0 failures.
❤ ❗ If this project has provided you value, please ⭐ star the repo to show your support: ➡ https://github.com/gavinr/github-csv-tools

途中 Github の token を要求されますので https://github.com/settings/tokens にアクセスして適当な名前の token を生成してくださいませ.

何も問題がなければ Created ??? issues, and had 0 failures. というログが出力されます.

しかし,おそらくエラーメッセージが出力されたことでしょう.

多分エラーメッセージは Title required by GitHub, but not found in CSV. でしょう.

筆者もこのエラーに遭遇しました.

以下に,そのエラーの対処方法を書いておきます.


エラーハンドリング

Gitlab からエクスポートされたイシューを Github にインポートしようとした時のエラー対処の記録です.

2020/11/08 時点で遭遇したエラーは Title に関するエラー1つだけです.

もし新たなエラーに遭遇した場合は追記します.


Title required by GitHub, but not found in CSV

このエラーは Gitlab からエクスポートしたイシューをインポートしようとすると発生します.

こんな感じのエラーメッセージが出力されているのではないでしょうか?

$ githubCsvTools ~/Downloads/example.csv
token (get from https://github.com/settings/tokens): ??????????
user or organization: ??????????
repository: ??????????
Title required by GitHub, but not found in CSV.

理由は csv の列ヘッダが TitleDescription のように先頭が大文字だからです.

import.js#L23var titleIndex = cols.indexOf("title"); となっており Title では認識されないんですよね.

そして import.js#L30if (titleIndex === -1)True になってエラーメッセージを出力して exit(1) する, という仕組みになっています.

その場しのぎですが csv ファイルの Titletitle に変更すればエラーにならず実行は完了します. しかし,それだけでは Description が認識されないのでタイトルだけのイシューが生成されます.

csv の列ヘッダを全て小文字に変換してしまえばこのようなバグが発生しなくなるであろうと考えまして, 2020/11/07 に PR#33 を出しました.

今後,レビュープロセスが進んでプルリクエストが受理されることを願うばかりです.

もしもプルリクエストが受理されたら初めての OSS コントリビュートになります. その時は,初コントリビュート記事を書きます. 楽しみです. 気長に待ちます!


おわりに

github-csv-tools を使って Gitlab からエクスポートしたイシューを Github にインポートする方法についての紹介でした.

いかがだったでしょうか?

少しでもタメになったと思ってくだされば幸いです.

同じ問題を抱えた人にこの記事が届いて欲しいので,どこかでシェアしていただけるとありがたいです.

みなさんの力を少しばかり貸してください!

最後までお読みいただきありがとうございました.

応援していただけるととても嬉しいです!


愛用品


関連記事


大学生へのお知らせ

ここまで記事を読んでくれて本当に嬉しいです、ありがとうございます。

プログラミングを始めたばかりの頃って「やるぞ!」という気持ちは強めですが、 実際に取り組み始めると「何からどうやってどこまでやればいんだ?」 という感じで羅針盤を失うことが多いような気がします。(実体験)

そんな勉強熱心で向上心高めなんだけど目指す姿が曖昧な大学生の方に感謝の意も込めて、就職活動までサポートするプログラミングスクール「レバテックカレッジ」を紹介します。↓

Levtech-college

「自走力」のあるエンジニアを最短3ヶ月で目指せるカリキュラムが月額30,000円で用意されていて、 現段階の「目指す姿が曖昧で何から手をつければいいかわからない状態」から脱却できます。

自分は実際にIT企業で働いていますが、「自走力」のあるエンジニアの方にはいつも助けられています。

なので、目指す姿が曖昧な人はとりあえずレバテックカレッジが導いてくれる 「自走力のあるエンジニア」を目指してみるのはスタートダッシュとしてはアリです。

レベルアップしてからジョブチェンするのはRPGでも常套手段ですし、 レバテックカレッジで一通りのスキルを習得してから自分の目指す姿を再定義するといいかもです。

「自走力のあるエンジニア」って実際どんなエンジニアなの? 何から手をつければいいかわからないから教えて欲しい、 という人は上のテキストリンク/画像リンクから「無料相談会」への申し込みをお願いします。

よきエンジニアライフを!