Files
bear-cli/mix.exs
T
alex 8cc8c41416 feat: 實作 bear CLI PAT 模式 MVP(login/whoami/token/logout/status)
- 新增 Elixir + Mix escript 專案(Req 0.5+、Jason)
- login --token <PAT>:以 PAT 驗證 /userinfo 後寫入憑證檔(0600)
- whoami:GET /userinfo 顯示身分 claims(支援 --json)
- token:印出 access token 供 pipe(--refresh 在 PAT 模式忽略)
- logout:清除本機憑證;status:純本機判定
- 憑證檔採原子寫入(rename)、0600、O_CREAT|O_EXCL 防 symlink
- 全域選項:--issuer/--config/--json/-v/-h/--version
- 29 個單元測試;mix precommit(compile --warnings-as-errors + format + test)
- 更新 README.md 與 docs/commands.md 反映 PAT 模式 MVP

Device Flow 登入待伺服器端 P1(bear 倉庫)完成後再接。issue #2
2026-08-30 14:24:51 +08:00

50 lines
830 B
Elixir

defmodule BearCli.MixProject do
use Mix.Project
def project do
[
app: :bear_cli,
version: "0.1.0",
elixir: "~> 1.17",
start_permanent: Mix.env() == :prod,
deps: deps(),
escript: escript(),
aliases: aliases()
]
end
def application do
[
extra_applications: [:logger]
]
end
def cli do
[
preferred_envs: [precommit: :test]
]
end
# escript 打包:單檔可執行,主模組為 BearCli.CLI。
defp escript do
[
main_module: BearCli.CLI,
name: "bear"
]
end
defp deps do
[
# HTTP 一律使用 Req(與 bear 主專案一致)。
{:req, "~> 0.5"},
{:jason, "~> 1.2"}
]
end
defp aliases do
[
precommit: ["compile --warnings-as-errors", "format", "test"]
]
end
end