## ベースの作成
[[Mix]]でプロジェクトは作成せず、[[exsファイル]]として作る。
```console
vim req_use.exs
```
内部で[[Req]]をインストールし通信する。READMEのまま。
```elixir
Mix.install([
{:req, "~> 0.3.0"}
])
description = Req.get!("https://api.github.com/repos/wojtekmach/req").body["description"]
IO.puts(description)
```
実行して確認。
```console
$ elixir req_use.exs
Req is a batteries-included HTTP client for Elixir.
```
スクリプトだからか補完は出なそう。
## [[GitHub]]から自分のリポジトリを取得
要件をいくつか設定
- `author`が`tadashi-aikawa`
- スターが10以上
- スターが多い順にソート
```elixir
Mix.install([
{:req, "~> 0.3.0"}
])
Req.get!("https://api.github.com/search/repositories?q=user:tadashi-aikawa").body["items"]
|> Enum.sort_by(& &1["stargazers_count"], :desc)
|> Enum.filter(&(&1["stargazers_count"] >= 10))
|> Enum.map(&"[🌟#{&1["stargazers_count"]}] #{&1["name"]}")
|> Enum.join("\n")
|> IO.puts()
```
実行結果。
```console
$ elixir req_use.exs
[🌟362] obsidian-various-complements-plugin
[🌟158] obsidian-another-quick-switcher
[🌟28] obsidian-embedded-code-title
[🌟25] silhouette
[🌟19] owl-cmder-tools
[🌟18] obsidian-old-note-admonitor
[🌟11] pureline-inspired
[🌟11] markowl
[🌟10] obsidian-quick-jump-plugin
[🌟10] obsidian-templater-insert-link-card
```
これでshellの代わりとして少しは使えるかもしれない。その辺で慣れていくのがいいかも。