こんにちは。今回は、Github Actionsを使って、Githubにpushしたらはてなブログに自動投稿する方法について解説していきます。Github Actionsを使えば、Github上のイベントをトリガーに、様々な処理を自動化することができます。この記事では、Github Actionsを使ってGithubにpushしたらはてなブログに自動投稿する方法を実際の例を交えながら解説します。
前提条件
この記事を読む前に、以下の前提条件を満たしていることを確認してください。
- Githubアカウントを持っていること
- はてなブログアカウントを持っていること
- はてなブログAPIのAPIキーを取得していること
手順
以下の手順に従って、Githubにpushしたらはてなブログに自動投稿するワークフローを作成しましょう。
1. はてなブログAPIのAPIキーを取得する
はてなブログAPIを使うためには、APIキーが必要です。以下の手順に従って、はてなブログAPIのAPIキーを取得してください。
- はてなブログにログインする。
- 「設定」→「詳細設定」→「ブログの設定」をクリックする。
- 「APIキー」欄にある「新しいAPIキーを生成する」をクリックする。
- APIキーをコピーしてメモしておく。
2. Githubにリポジトリを作成する
Githubにリポジトリを作成し、ローカル環境にクローンします。
3. はてなブログAPIを使うためのライブラリをインストールする
はてなブログAPIを使うためのライブラリであるhatena-blog-apiをインストールします。npmを使ってインストールすることができます。
npm install hatena-blog-api
4. はてなブログに投稿するスクリプトを作成する
Github Actionsで実行するスクリプトを作成します。ここでは、以下のようなスクリプトを作成します。
const HatenaBlogAPI = require('hatena-blog-api');
const blog = new HatenaBlogAPI({
type: 'wsse',
username: 'はてなID',
blogId: 'ブログID',
apiKey: process.env.HATENA_API_KEY
});
const title = 'はてなブログに投稿するタイトル';
const body = 'はてなブログに投稿する本文';
const draft = false;
blog.post(title, body, { draft })
.then(() => {
console.log('投稿が完了しました!');
})
.catch((error) => {
console.error(error);
});
このスクリプトでは、はてなブログAPIを使用して、タイトル、本文、下書きかどうかを指定して、はてなブログに投稿することができます。
5. ワークフローファイルを作成する
Github Actionsで実行するワークフローファイルを作成します。リポジトリのルートに、.github/workflowsディレクトリを作成し、以下のような内容のhatena-blog.ymlという名前のファイルを作成します。
name: Post to Hatena Blog on Push
on:
push:
branches:
- main
jobs:
post-to-hatena-blog:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Setup Node.js
uses: actions/setup-node@v2
with:
node-version: '14.x'
- name: Install Dependencies
run: npm install
- name: Post to Hatena Blog
env:
HATENA_API_KEY: ${{ secrets.HATENA_API_KEY }}
run: node post-to-hatena-blog.js
このワークフローでは、mainブランチにpushされた場合、post-to-hatena-blog.jsスクリプトが実行され、はてなブログに投稿されるようになっています。また、ワークフロー実行時には、はてなブログAPIのAPIキーをGithubのシークレットに設定しています。
6. Githubにpushする
作成したスクリプト、ワークフローファイルをGithubにpushします。pushが完了すると、Github Actionsが自動的に実行され、はてなブログに投稿されます。
まとめ
以上が、Github Actionsを使ってGithubにpushしたらはてなブログに自動投稿する方法の解説でした。Github Actionsを使えば、Github上のイベントをトリガーに、様々な処理を自動化することができます。是非、自分の開発環境に合わせた自動化を検討してみてください。
Github 関連のまとめ
オンラインスクールを講師として活用する!