# 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 [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 の検索方法ドキュメント](https://docs.esa.io/posts/104) を参照。 ### 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 ``` `-wip` は `true` / `false` を文字列で渡す。指定しなければ変更しない。 ## 出力 成功時は JSON を整形して標準出力に書く。失敗時は標準エラーにメッセージを出し、終了コード `1` で終わる。 ## 開発 ``` go test ./... go vet ./... go build ./... ``` `main` ブランチへの push と PR で GitHub Actions が `go vet`・`go build`・`go test -race` を実行する。 ## ライセンス WTFPL。詳しくは [LICENSE](./LICENSE)。