目的
qiitaの記事が増えていくにつれて、記事自体の内容を効率よく整理したり、
将来的にはqiitaに限らず投稿内容をファイルとしてGithubで管理します。
前提
下記のサイトでは、Githubから自動的にqiitaへの投稿を行うことは今回触れないので、Githubからの自動投稿に関する記事はこちらを参照頂ければと思います。
【設定簡単】GitHub Actions を使ってリポジトリ上の技術記事を Qiita に自動で投稿しよう
※注意点として、Github Actionsは、利用上限に達した場合は課金対象となります。
この記事では、qiitaで投稿をした投稿内容をmdファイルとしてエクスポートし、githubにアップロードするというのが内容となります。
内容
qiita APIの実行
下記のURLで、アクセストークンを新規作成をします。
- アクセストークンの説明は、適当な文字を入れます。
- 「発行する」を選択します。
https://qiita.com/settings/tokens/new

作成後、アクセストークンの値が表示されますので、メモします。
(アクセストークンの値は一度しか表示されないので、ご注意ください)
下記のcurlを実行すると、ファイルをエクスポートできます。
curl -OH 'Authorization: Bearer 【メモしたアクセストークン】' 'https://qiita.com/api/v2/authenticated_user/items?page=numbers&per_page=20' --insecure
※numbersは数字に変更してください。
bashが使える環境であれば実行可能です。
(※コマンドプロンプトやPowershellでは実行できませんでした…Windows端末を利用する場合はGit bashを利用すると可能)
page=numbers&per_page=20(※numbersは数字に変更が必要で、qiita投稿数によって変わるかと思います。)
というファイルが作成されるので、下記の処置をすることですべての記事のURLを一覧できます。
- 「,」⇒「\n」で正規表現置換後、
- 「https://qiita.com/【ユーザ名】/items/ 」でgrep検索
qiita記事のエクスポート
下記のように、mdファイルとしてエクスポートします。
(エクスポートするコマンドはExcelを使って、下記のようにまとめておくといいと思います。)
curl -O https://qiita.com/himitsuuser/items/hogeeeeeeee1.md --ssl-no-revoke
curl -O https://qiita.com/himitsuuser/items/hogeeeeeeee2.md --ssl-no-revoke
...
curl -O https://qiita.com/himitsuuser/items/hogeeeeeeeen.md --ssl-no-revoke
あとは、ファイルをGithubにアップロードするだけでOKです。
(CLIからgit pushでもできると思います。)
参考
Qiitaの記事をGitHubリポジトリで管理する方法
GET /api/v2/authenticated_user/items
GitHub Actions の課金について
よく使うcurlコマンドのオプション