動機
個人的なドキュメント管理を esa で行っている。
技術的なドキュメントも esa で書いているが、そういう記事は Qiita に投稿したい。
でも、一度書いた記事をコピペして、 Qiita に再投稿するのはなんか面倒。。。
そこで、
- esa で Qiita に投稿したい記事を書く
- その記事が自動的に Qiita に投稿されて欲しい
システム概要
- esa で記事を書く
- esa の GitHub webhook が動き、 GitHub リポジトリにコミットされる
- CI(Circle CI) でスクリプトが走り、 Qiita API を叩いて対象記事が投稿される
設定
記事を管理する GitHub リポジトリを準備する
このリポジトリの役割はふたつ。
- esa で書いた記事を管理する
- Qiita への投稿スクリプトを管理する
GitHub の access token を取得する
esa からのコミットを許可するため、 GitHub - Personal access tokens から Personal access token を取得する
Qiita の access token を取得する
Qiita に自動投稿するため、Qiita - settings/applications から、Personal access token を取得する
Circle CI の設定を書く
- circle.yml を作成
- 実行するスクリプトを作成
- 投稿内容を作成するrubyスクリプト
- API を叩くスクリプト
設定についてはこちらのリポジトリに。
tdrk18/esa-article
esa の GitHub webhook を設定する
GitHub webhook の詳細は こちらの 公式ドキュメント をご覧ください。
- esa root category: ここで指定したカテゴリ以下の記事が GitHub にコミットされる
- repo: 上で作成したリポジトリを指定
- branch: コミットするブランチを指定
- output directory: リポジトリルートから、記事データが保存されるディレクトリ
記事を書く
上で指定した 「esa root category」以下に記事を作成・Ship It! するとコミット・CIが自動で実行されて、Qiitaに記事が投稿される。
その他
とりあえず自動投稿の部分しか書いてないので、記事の更新とかはできません。。
徐々に書いていこうと思ってます。。