Open18

Hatena-Blog-Workflows-Boilerplateを試してみる

ShuzoNShuzoN

https://github.com/hatena/Hatena-Blog-Workflows-Boilerplate/

ためす。


やってみての所感

基本的な設計としては

  • actionsで下書き同期 / 記事作成
    • 1記事/prで扱う
    • push された時点でhatena側がgithubに追従
  • mergeで記事をリリース
  • 修正もprで出来る

っぽいんだが、特徴としては

  • 画像をアップロードすることが出来ない
  • ブログ側で編集した下書きは、prで上書きされる

などあり

「画像はhatenaの下書き画面で上げて、githubにそれコピってはって、mergeする」

みたいな編集フローになりそう。
レビューは絶対やりやすくなるので、悩みどころやなぁ。

あとブログ書くのは「GitHub」に慣れ親しんでいる人だけではないのでその辺も踏まえて、企業導入するなら割とリテラシ必要な印象。

ShuzoNShuzoN
$ gh repo clone git@github.com:ShuzoN/Hatena-Blog-Workflows-Boilerplate.git

https://namu-r21.hatenablog.com/
テスト用に自分のブログをあれする。

<BLOG DOMAIN>:
  username: <BLOG OWNER HATENA ID>
default:
  local_root: entries

なので

<BLOG DOMAIN>:
  username: namu-r21
default:
  local_root: entry
ShuzoNShuzoN

BLOG_DOMAIN変数の定義

シークレットでAPI keyも定義

ShuzoNShuzoN

actionsをenableにしてinitialize

チェックの挙動を見てみたいので下書きを追加する

既に何本かありそうなので良いか。

ShuzoNShuzoN

yamlはシンプルだな



name: initialize

on:
  workflow_dispatch:
    inputs:
      is_draft_included:
        description: "同期対象に下書きを含める(未公開の記事が commit されます)"
        required: true
        type: boolean

jobs:
  initialize:
    uses: hatena/hatenablog-workflows/.github/workflows/initialize.yaml@v1
    with:
      is_draft_included: ${{ inputs.is_draft_included }}
      BLOG_DOMAIN: ${{ vars.BLOG_DOMAIN }}
    secrets:
      OWNER_API_KEY: ${{ secrets.OWNER_API_KEY }}
ShuzoNShuzoN

BLOGSYNC_PASSWORDがないか、blogがないと言われている。fm...

secretを追加。hatena アカウントのパスワードを書いている。

ShuzoNShuzoN

そもそもSSOでログインしているしAPI keyも渡しているが...?

ShuzoNShuzoN

同じところで同じコケ方をしている

つまりパスワード関係ない?

ShuzoNShuzoN

なんかやな予感するので末尾/入れてみる

ShuzoNShuzoN

別のブログで試してみたが

yamlの<BLOG DOMAIN>にブログのドメインを指定すると動いた。