All checks were successful
CI / Build & Test (push) Successful in 34s
- esa.io API クライアントの実装と単体テストを追加 - 記事の取得・検索・作成・更新を行うサブコマンドを実装 - GitHub Actions による CI ワークフローを設定 - プロジェクトの基本ファイル(README、.gitignore、LICENSE、go.mod)を作成
2.1 KiB
2.1 KiB
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
-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。