0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Qiita CLIでプッシュしたら勝手に記事が公開された話

Posted at

はじめに

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の仕組みに則った運用方法なので、安全に記事を管理できます。

同じ失敗をした方の参考になれば幸いです!

0
0
0

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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?