[自動コミット] esa.io API を操作する Go 製 CLI ツールを新規作成
All checks were successful
CI / Build & Test (push) Successful in 34s
All checks were successful
CI / Build & Test (push) Successful in 34s
- esa.io API クライアントの実装と単体テストを追加 - 記事の取得・検索・作成・更新を行うサブコマンドを実装 - GitHub Actions による CI ワークフローを設定 - プロジェクトの基本ファイル(README、.gitignore、LICENSE、go.mod)を作成
This commit is contained in:
89
README.md
Normal file
89
README.md
Normal file
@@ -0,0 +1,89 @@
|
||||
# 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)。
|
||||
Reference in New Issue
Block a user