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