LoginSignup
42

More than 5 years have passed since last update.

GitbookとGithubを連携して電子書籍を自動Publishする方法

Last updated at Posted at 2016-01-06

はじめに

GitbookとGithubを連携して電子書籍を自動Publishする方法のまとめ。

Gitbookとは

logo_gitbook.png

FRIENDCODE INC が運営するオンラインで電子書籍の作成、管理、出版ができるWebサービス。

GitbookとGithubの連携

Gitbookでは、新規プロジェクトを作成するとGitbook独自のレポジトリが生成される。Gitbookの設定を変更する事で、GithubのレポジトリとWebhookを使って連携をすることが可能になる。

今回は、GithubのレポジトリとGitbookを連携し、Githubのレポジトリが更新されると、GitbookにWebhookで通知がいき、Gitbookで自動的にパブリッシュする設定をおこなう。

Gitbookで新規でプロジェクトを生成する

gitbook001.png

gitbook002.png

gitbook003.png

これでGitbookプロジェクトは生成される。初期設定でのレポジトリは、Gitbookのオリジナルのレポジトリになる。SettingsのPublicationの項目を見ると、確認できる。

gitbook004.png

gitbook005.png

ユーザ名 akira, プロジェクト名 exampleで作成した場合、Gitbookの標準のレポジトリのURIは以下の通りになる。

https://git.gitbook.com/akira/example.git

Gitbookと連携するGithubのレポジトリを新規作成する

Githubで、[+]-[New repository]を選択し、レポジトリを新規作成する。

gitbook006.png

gitbook007.png

レポジトリのURIをコピーする。

gitbook008.png

ユーザ名 akira-sasaki, プロジェクト名 exampleで作成した場合は、GithubのレポジトリのURIは以下の通りになる。

https://github.com/akira-sasaki/example.git

Gitbookの参照レポジトリをGithubに変更し、Webhookを設定する

1.Gitbookのレポジトリ https://git.gitbook.com/akira/example.git
2.Githubのレポジトリ https://github.com/akira-sasaki/example.git

Gitbookは、初期設定では1.Gitbookのレポジトリを参照しにいくので、これを2.Githubのレポジトリに変更する。Gitbookのプロジェクトの画面の[Settings]を選択する。

gitbook004.png

[Github]を選択する。

gitbook009.png

GithubでコピーしたGithubのレポジトリを貼り付け、[Save]を選択する。

https://github.com/akira-sasaki/example.git

gitbook011.png

[+ Add webhook]を選択し、GithubにWebhookの登録をおこなう。

gitbook012.png

[Add Webhook]を押して、設定を保存する。

gitbook013.png

これで、Githubに対してWebhookの設定が完了した状態。今度は、WebhookがちゃんとGithubに登録されているかを確認する。[Check webhooks]を選択する。

gitbook014.png

GithubのWebhooksのページに飛ぶので、Gitbookの設定が追加されているかを確認する。

gitbook015.png

Gitbookに対してWebhookの処理が正常に行なわれているかどうかは、[鉛筆]アイコンから確認できる。

gitbook016.png

Githubから、GitbookへのWebhookのリクエストへのレスポンスが、OKならば、正常にWebhookが動作している事になる。

gitbook017.png

Githubの更新とGitbookでのPublishの流れ

これで、Githubのレポジトリが更新されると、WebhookでGitbookにリクエストが飛び、Gitbookの方で、電子書籍を自動的にPublishする流れになる。

それでは、GitbookのプロジェクトのDashboardに移動し、[Start Writing]を選択し、編集を開始する。

gitbook019.png

README.mdを選択し、「TESTの投稿」と入力し、[保存]アイコンを選択する。Gitbookの編集画面で編集した結果は、保存のタイミングでGithubのレポジトリに反映される。

gitbook020.png

Githubに移動し、Commit履歴を見ると、今の保存のタイミングCommitログが生成されているのを確認する。

gitbook021.png

gitbook023.png

それでは、またGitbookの編集画面に戻り、SUMMARY.mdを生成する。SUMMARY.mdがないと、エラーが発生し、Publishに失敗するので、必ず作成しておく。

gitbook030.png

gitbook031.png

SUMMARY.mdでは、書籍の目次を作成するファイルになる。項目1, 項目2をMarkdawnのフォーマットで 仮入力しておく。

gitbook032.png

ここで[保存]アイコンを選択すると、Githubが更新され、WebhookでGitbookに通知がいき、GitbookのPublishのプロセスが起動(Node.js)し、電子書籍がPublishされる。

github040.png

Publishが開始されると、その回数分だけ、Dashboardの画面のHistoryが増えていく。

gitbook041.png

[History]を選択すると、Publish履歴が表示される。赤い[X]はPublishに失敗したログになる。

gitbook042.png

項目を選ぶと、Node.jsの実行ログを閲覧できる。これでエラーの原因を探る事になる。

gitbook043.png

トラブルシューティング

Gitbookでは、Publishに失敗する場合が頻繁に発生する。

その場合の回復ポイントは、GitbookのHistoryに赤い[X]でエラーがでている場合は、Node.jsの実行ログを参照して原因を探る。一方、GitbookのHistoryそのものの更新がなくなった場合は、GithubのWebhookのログを参照し原因を探る。(ファイル数の数量オーバーで、WebhookからGitbookを呼び出すタイミングでエラーを吐くことがある)

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
42