LoginSignup
30
31

More than 5 years have passed since last update.

githubのissueを抜き出す(GHE → gitlabへ移行したい)

Last updated at Posted at 2014-02-08

やりたいこと

とある事情で github enterprise から gitlab へリポジトリを移行する作業をすることになりました

リポジトリの移行はググれば見つかるのですが、issueとかwikiの移行方法は中々みつからず…

同じとこで困った方のために

--追記
コメントで頂いた情報を元に、リポジトリとwikiも取得するコードを追加しました

できたこと

とりあえずプログラムでissueを抜き出して、ファイルに保存しておくところまでできました
これでいつでも解約できるぜ!! v(´∀`*v)ピース

肝心の移行ですが、gitlab側の環境がある程度完成してからでないとやれないので保留してます

例えば、githubのissueにアサインされてるgithubアカウントはgitlab側には存在しません
gitlabリポジトリでも同じメンバーで開発するとして、githubのアカウントとgitlabのアカウントをひも付けする対応表みたいなの作らないといけないよなぁと思いました

その辺のアカウントの移行まで済んだら続きやろうかなという感じです
gitlab APIでissueの追加ができるっぽいので、とりあえず手元にgithubから抜き出したissueデータがあればいつでもやれそうかなと

コード

リポジトリはこちら
https://github.com/abeyuya/github-issue-getter
--追記
コメントで頂いた情報を元に、リポジトリとwikiも取得するコードを追加しました

こちらのコード参考にしました
https://gist.github.com/tkarpinski/2369729

rubyです
octokit使ってます
https://github.com/octokit/octokit.rb
おれがガンダムだ

ちょっと解説

オリジナルのコードでは抜き出したissueの必要なデータをcsvに整形して保存していました
(ちなみにそのままでは動きませんでした)

csvでも良いのですが、今回の場合は移行自体は後で行うので、その時にどんなデータが必要になるかいまいちわかりません
なので、取得したデータを全てをとりあえず保持しておきたいなぁと思い、octokitのオブジェクトのままデータとしてファイルに保存しました

そのため、
データをファイルに保存する github_issues_to_file.rb と、
データをファイルから読み出す github_issues_from_file.rb がありますが、
どちらも require 'octokit' な感じです

実際に移行するときは、読み出すプログラムの方に、gitlab APIを叩くような処理を書くことになるかなぁという感じです

まとめ

今回みたいなケース多いと思うので、gitlab側で1クリックで全部インポートできるようにしてくれるとありがたい限りでございます

30
31
2

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
30
31