ssig33 730f637518
All checks were successful
CI / Build & Test (push) Successful in 34s
[自動コミット] esa.io API を操作する Go 製 CLI ツールを新規作成
- esa.io API クライアントの実装と単体テストを追加
- 記事の取得・検索・作成・更新を行うサブコマンドを実装
- GitHub Actions による CI ワークフローを設定
- プロジェクトの基本ファイル(README、.gitignore、LICENSE、go.mod)を作成
2026-05-19 08:52:05 +09:00

esacli

esa.io API v1 を叩く Go 製の CLI。記事の取得・検索・作成・更新ができる。

インストール

go install gitea.ssig33.com/ssig33/esacli@latest

もしくはソースからビルド。

git clone https://gitea.ssig33.com/ssig33/esacli
cd esacli
go build -o esacli .

設定

以下の環境変数を読む。

変数名 内容
ESA_TOKEN esa.io のアクセストークン (必須)
ESA_TEAM esa.io のチーム名 (必須)
ESA_BASE_URL API のベース URL を上書きする (省略可、デバッグ用)

トークンは https://[team].esa.io/user/applications から発行する。

使い方

esacli <command> [options]

get — 記事を 1 件取得

esacli get -number 102
esacli get -number 102 -body   # body_md だけを出力

search — 記事を検索

esacli search -q "esa API"
esacli search -q "tag:dev" -per-page 50 -sort updated -order desc

検索クエリの書式は esa の検索方法ドキュメント を参照。

create — 記事を作成

esacli create -name "新しい記事" -body "# 本文" -tags "go,cli" -category "dev/2026/05"
esacli create -name "長文記事" -body-file ./article.md -wip=false -message "first commit"
echo "# stdin から本文" | esacli create -name "stdin 経由" -body-file -

-wip のデフォルトは true

update — 記事を更新

esacli update -number 5 -name "タイトル更新"
esacli update -number 5 -body-file ./article.md -message "本文更新"
esacli update -number 5 -wip false

-wiptrue / false を文字列で渡す。指定しなければ変更しない。

出力

成功時は JSON を整形して標準出力に書く。失敗時は標準エラーにメッセージを出し、終了コード 1 で終わる。

開発

go test ./...
go vet ./...
go build ./...

main ブランチへの push と PR で GitHub Actions が go vetgo buildgo test -race を実行する。

ライセンス

WTFPL。詳しくは LICENSE

Description
No description provided
Readme 31 KiB
Languages
Go 100%