はじめに
Qiita CLIを使って記事を書いていたら、GitHubにプッシュしたら記事が公開されてしまった...という経験はありませんか?
先日、下書き段階の記事が意図せず公開されてしまい、慌てて原因を調べました。
同じ状況になった方の参考になればと思い、原因と対策をまとめます。
結論、publish.ymlを見ましょう。(確認不足)
原因: GitHub Actionsの自動公開設定
Qiita CLIの初期設定では、.github/workflows/publish.ymlというファイルが作成されており、mainブランチへのプッシュで自動的にQiitaに記事が公開される仕組みになっています。
on:
push:
branches:
- main
- master
つまり、ローカルで作業してgit pushした瞬間に、GitHub Actionsが動いて記事が公開されるわけです。
対策方法
対策1: 下書きブランチで作業する
一番シンプルで安全な方法は、main以外のブランチで作業することです。
# 記事作成用のブランチを作成
git checkout -b feature/new-article
# 記事を書いて、コミット・プッシュ
git add .
git commit -m "記事執筆中"
git push origin feature/new-article
# 公開準備ができたらmainにマージ
git checkout main
git merge draft/new-article
git push origin main # ← この時だけ公開される
対策2: privateフラグを活用する
記事のフロントマターでprivate: trueにしておけば、プッシュしても非公開のままです。
title: 記事タイトル
private: true # ← 非公開設定
公開したいタイミングでfalseに変更すればOKです。
対策3: 自動公開を無効化する
そもそも自動公開が不要な場合は、ワークフローを手動実行のみにする方法もあります。
# .github/workflows/publish.yml
on:
# push: の部分をコメントアウト
workflow_dispatch: # 手動実行のみ有効
まとめ
Qiita CLIでは、初期設定のままだとプッシュ=公開になっています。
今回、初期設定をしっかり見なかった私に問題がありました。publish.ymlなどはしっかり見る必要がありますね…
個人的におすすめの運用方法は、対策1のブランチを分けて管理する方法です。GitHub Actionsの仕組みに則った運用方法なので、安全に記事を管理できます。
同じ失敗をした方の参考になれば幸いです!