## çµç·¯
ãããŸã§[[Claude Code]]ã«ãã£ãŠããã£ãŠãã[[GitHub]]ã§ã®ãªãªãŒã¹ã[[Codex CLI]]ã§ã§ããããã«ããŠã¿ãã
| 察象 | ããŒãžã§ã³ |
| ------------- | ---------- |
| [[macOS]] | 15.6.1 |
| [[Codex CLI]] | 0.34.0 |
## ã³ãã³ãã®äœæ
0.26.0ã§[[ã«ã¹ã¿ã ããã³ãã (Codex CLI)|ã«ã¹ã¿ã ããã³ãã]]ã«å¯Ÿå¿ãããããã®ã§ã[[ããŒã¯ããŠã³ãã¡ã€ã«]]ãäœã£ãŠã¿ãã[[Claude Code]]ã§æ¢ã«äœ¿ã£ãŠãããã®ãæµçšããã
`~/.codex/prompts/release.md`
````markdown
# Release Command
GitHubãªããžããªã®ãªãªãŒã¹äœæ¥ãèªååããŸãã
äœæ¥ã¯è±èªã§ãããç§ãšã®ãããšãã¯æ¥æ¬èªã§ãé¡ãããŸãã
## å®è¡æé
1. **ããŒã«ã«ã§pushãããŠããªãã³ãããããªãããšã確èª**
- pushãããŠããªãã³ããããããã°äžæ
2. **CIãæåããŠããããšã確èª**
- `gh workflow` ã³ãã³ãã䜿çšãã
- GitHub Actionsã®Testsã¯ãŒã¯ãããŒã倱æããŠãããäžæãã
- æåããŠããã°æ¬¡ãž
3. **ãªãªãŒã¹äœæ¥å®è¡**
- README.mdãåç
§ããŠãªãªãŒã¹æé ã確èªãå®è¡
4. **ãªãªãŒã¹å®äºç¢ºèª**
- GitHubãªãªãŒã¹ããŒãžã宿çã«ç¢ºèª
- æ°ãããªãªãŒã¹ãäœæãããããšã確èª
5. **é¢é£issueã«è¿ä¿¡**
- ãªãªãŒã¹ã«é¢ä¿ããissue(ã³ãããã¡ãã»ãŒãžã«èšèŒããã#ã€ãã®çªå·)ã«å¯ŸããŠ
- ãªãªãŒã¹ããæšãã³ã¡ã³ããã
- ã¹ããŒã¿ã¹ãclosedã«å€æŽ
6. **Blueskyæçš¿æºå**
- ãªãªãŒã¹æ
å ±ãååŸããŠãã©ãŒããã
- æçš¿å
容ãåºå (ãŠãŒã¶ãŒãæåã§ãããã³ããŒ)
- ãŠãŒã¶ãŒãæåã§Blueskyã«æçš¿ïŒOGPã«ãŒã衚瀺ãåç»æ·»ä»ãå¯èœïŒ
7. **ãªããžããªã®ææ°å**
- `git pull` ã§remoteã®å€æŽç¹ãåã蟌ã
### 4ã«ã€ããŠ
#### ã³ã¡ã³ããã©ãŒããã
```
<æçš¿è
å
šå¡ã«ã¡ã³ã·ã§ã³>
Released in [<ããŒãžã§ã³>](<ãªãªãŒã¹ããŒãã®URL>) ð
```
**å
·äœäŸ:** https://github.com/tadashi-aikawa/obsidian-another-quick-switcher/releases/tag/13.7.1 ã®å Žå
```
@craziedde
Released in [v13.7.1](https://github.com/tadashi-aikawa/obsidian-another-quick-switcher/releases/tag/13.7.1) ð
```
### 5ã«ã€ããŠ
#### æçš¿ãã©ãŒããã
```
ðŠ ${ãããã¯ãå} ${ããŒãžã§ã³} ð
ã»ç®æ¡æžãã§æ°æ©èœãã¡ã€ã³ã®å€æŽç¹ãåæ
${GitHubãªãªãŒã¹ããŒãžã®URL}
```
## å¿
èŠãªèšå®
- GitHub CLIãèªèšŒæžã¿ã§ããããš
## äœ¿çšæ¹æ³
```
/release
```
ãã®ã³ãã³ããå®è¡ãããšãäžèšã®æé ãèªåçã«å®è¡ãããŸãã
````
## ãªãªãŒã¹ããŠã¿ã
`/release` ãå®è¡ãããäžèº«ã衚瀺ãããç¹ã[[Claude Code]]ãšç°ãªãã
> [!left-bubble] ![[chappy.webp]]
> ãããããªããžããªã確èªããŠãREADMEã®ãªãªãŒã¹æé ãšã¹ã¯ãªããé
眮å
ãææ¡ããŸããç¶ããŠèªååçšã¹ã¯ãªããã远å ããŸãã
ã¹ã¯ãªãã远å ããããšå°ãã®ã§ãinterruptããŠæç€ºã远å ã
> [!right-bubble] ![[minerva-face-right.webp]]
> èªååçšã¹ã¯ãªããã远å ãšãããŸãããã¹ã¯ãªããã¯è¿œå ããªãã§ã»ããã§ããã³ãã³ãã§äœæ¥ãé¡ãããŸãã
å°ãæ§åèŠããã
> [!left-bubble] ![[chappy.webp]]
> ⢠Updated Plan
> â æé ãã³ãã³ãã§é ã«å®è¡ããŸããé©å®çµæã確èªãã€ã€é²ããŸãã
> â¡ æªpushã³ãããã®æç¡ã確èª
> â¡ CI(Tests)ã®ææ°çµæã確èª
> â¡ Release Actionãæåããªã¬ãŒ
> â¡ ãªãªãŒã¹äœæå®äºã®ç¢ºèª
> â¡ é¢é£Issueãžã³ã¡ã³ããšã¯ããŒãº
> â¡ Blueskyæçš¿æã®æŽåœ¢åºå
> â¡ git pullã§ææ°å
å®éã«ã¯ãå
éšã§ã©ã®ãããªã¹ã¯ãªããã䜿ã£ãŠããããåžžã«èš±å¯ãæ±ããŠãããããã¯ãã©ããå
éšã¯ã¹ã¯ãªãããªãã ãããèªååã¹ã¯ãªããäœãããŠãããšãã䞻匵ã«èãããããã°ãã䜿ã£ãŠã¿ãŠãäœã£ãŠãããããã«é Œãæªæ¥ãèŠãããã©ä»ã¯é芳ã
issueãžã®ã³ã¡ã³ããå
šèªåã§ãã£ãŠãããããšããŠãããã©ã誀çãæãã®ã§ç¢ºèªãæãã§ãããããã«ã
> [!right-bubble] ![[minerva-face-right.webp]]
> ã³ã¡ã³ãããããšããŠããissueã劥åœãã©ãããäžèЧããŸãã¯åå¥ã«ç¢ºèªãããã§ãŒãºãæãã§ãã ãããã³ã¡ã³ãå
ãåé¡ãªãå Žåãããããã¯ããŒãºããã®ã¯èªåã§åé¡ãããŸããã
> [!left-bubble] ![[chappy.webp]]
> ⢠Updated Plan
> â ãŠãŒã¶ãŒèŠæã«åãããã³ã¡ã³ã察象Issueã®åŠ¥åœæ§ç¢ºèªãã§ãŒãºã远å ããŸãããå
ã®4æé ã¯å®äºæžã¿ã«æŽæ°ããŸãã
> â æªpushã³ãããã®æç¡ã確èª
> â CI(Tests)ã®ææ°çµæã確èª
> â Release Actionãæåããªã¬ãŒ
> â ãªãªãŒã¹äœæå®äºã®ç¢ºèª
> â¡ é¢é£Issueåè£ã®æœåºãšç¢ºèª
> â¡ é¢é£Issueãžã³ã¡ã³ããšã¯ããŒãº
> â¡ Blueskyæçš¿æã®æŽåœ¢åºå
> â¡ git pullã§ææ°å
ããããå
šéš[[Shell]]ã§ããããšããŠããã®ãæ¬åœã«ãšã°ãã[[Shell]]ã¯äººé¡ã«ã¯æ©ãããèšèªã ãšæã£ãŠãããã©ãçžæã¯äººé¡ãããªããããªãã
ãã¡ãã¡ã¹ã¯ãªãããŸã§èŠãæ°ã«ãªããªãã®ã§ãè³æ»ã§acceptããŠãã
éäžã§å
šç¶å ±åããŠãããªãã®ã«ãæäœã®èš±å¯ã ãæ±ããŸãã£ãŠããã®ã§äžå®ã«ãªã£ãŠããããæåŸã«ã¡ãããšæ¥æ¬èªã§å ±åããŠãããã
> [!left-bubble] ![[chappy.webp]]
> 次ã¯é¢é£Issueåè£ãæŽãåºããŠç¢ºèªããŸããèŠã€ããã°ã³ã¡ã³ãâã¯ããŒãºã«é²ã¿ãŸãã
>
> 鲿ãµããª
>
> - æªpushã³ããã: ãªã
> - Testsã¯ãŒã¯ãããŒ: success ã確èª
> - Release Action: æåããªã¬ãŒâå®äº
> - ãªãªãŒã¹äœæ: 13.20.0 ã確èª
>
> ãªãªãŒã¹æ
å ±
>
> - ããŒãžã§ã³: 13.20.0
> - ãªãªãŒã¹URL: https://github.com/tadashi-aikawa/obsidian-another-quick-switcher/releases/tag/13.20.0
>
> é¢é£Issue確èªãã§ãŒãº
>
> - 察象ã³ãããç¯å²: 13.19.0..13.20.0
> - ã³ãããã¡ãã»ãŒãžäžã®ã#çªå·ãåç
§: 0ä»¶
> - çµæ: ã³ã¡ã³ãã»ã¯ããŒãºå¯Ÿè±¡ã®Issueåè£ã¯ãããŸããã§ãã
> - ãèŠæã©ãããåŠ¥åœæ§ç¢ºèªãã§ãŒãºããæã¿ãŸãããã該åœããªããããã®ã¹ãããã¯ã¹ãããããŸã
>
> Blueskyæçš¿æïŒã³ããŒçšïŒ
>
> - 以äžããã®ãŸãŸæçš¿ããŠãã ããïŒå¿
èŠã«å¿ããŠèª¿æŽå¯ïŒ
>
> ðŠ Another Quick Switcher 13.20.0 ð
>
> ã»main/backlink/grep: check/uncheck items
>
> https://github.com/tadashi-aikawa/obsidian-another-quick-switcher/releases/tag/13.20.0
>
> ææ°å
>
> - git pull å®è¡æžã¿ïŒFast-forwardïŒ
> - æŽæ°: manifest.json, manifest-beta.json, package.json, versions.json
>
> ãã®åŸãIssueã«æåã§çŽä»ããããã®ãããã°çªå·ããæå®ãã ãããå¿
èŠãªãå確èªãªã¹ããäœæããæå®åã®ã¿ã³ã¡ã³ãã»ã¯ããŒãºãŸã§èªåã§è¡ããŸãã
ãã... å®ç§ã§ã¯ãªããããã€ã¯ããããžã¡ã³ãçãªææ³ã§ããŸãªããšæã£ãŠãããã
ãŸãã§ãé¢é£issueèŠåããã®ä»¥å€ã¯ã»ãšãã©ã¹ã¯ãªããæžãã°èªååã§ããããªããã
## ãªãªãŒã¹ã¹ã¯ãªãããäœæããŠããã
[[ðŠSilhouette]]ã®ãªããžããªã§ãé¡ããããšãã«ã[[Bun]]ã®ãªãªãŒã¹ã¹ã¯ãªãããæžããŠãããã®ã§è©ŠããŠã¿ãããšã«ãæ°ã«ãªã£ãã®ã§è³ªåãããšãããèªåã®èãããã£ããæã£ãŠããŠè¯ãã ~~[[Claude Code]]ã ãšããã®éãã§ãïŒ ä¿®æ£ããŸãïŒãã ãã~~
> [!right-bubble] ![[minerva-face-right.webp]]
> ããã¯ä¿®æ£äŸé Œã§ã¯ãªã質åã§ãã
>
> Bunã ãš$ãšãã³ãã¬ãŒããªãã©ã«ã§Bun Shellã䜿ãããšæããŸããããã¡ãã䜿ããªãã£ãçç±ã¯ïŒ
>
> ```ts
> import { $ } from "bun";
>
> const stdout = await
pwd`.text();
> console.log(stdout);
> ```
> [!left-bubble] ![[chappy.webp]]
> ç§ã¯ä»åã以äžã®çç±ã§ Bun.spawnSync ã䜿ããŸããïŒ
>
> - åŒæ°ã®ãšã¹ã±ãŒããèªåã§å¶åŸ¡ãããã£ãããã§ãã
`...`` ã¯ã·ã§ã«å±éãéãã®ã§ãIssueçªå·ãªã©åçã«çµã¿ç«ãŠãæååã«ã¹ããŒã¹ãèšå·ãå«ãŸããå Žåã®éããæ¹ãæ¯åæ°ã«ããå¿
èŠããããŸ
> ãã`spawnSync` ã«é
åã§æž¡ãã° OS ã³ãã³ãå®è¡ã¬ãã«ã§å®å
šã«åŒæ°åã§ããŸãã
> - 倱æããŠãåŠçãç¶ãããã³ãã³ãïŒallowFailure çžåœïŒã现ããæ±ãããã£ãããã§ãã $ ã§ã .nothrow() ã§åæ§ã®ããšã¯ã§ããŸãããçµæãªããžã§ã¯ãã®æ±ãããã©ã€ãã®ã§ãå
±éãã«ããŒé¢æ°ãš
> ããŠãŸãšããæ¹ãã¹ã¯ãªããå
šäœã®ãšã©ãŒãã³ããªã³ã°ãçµ±äžãããããšå€æããŸããã
> - æšæºåºåã»æšæºãšã©ãŒã®äž¡æ¹ãåžžã«æååã§åãåºãããã£ãïŒåŸç¶ã®è§£æã«äœ¿ãããïŒãspawnSync ãªã stdout/stderr ããã®ãŸãŸåãåºããã®ã§ãã°æŽåœ¢ãèªåã§ããããã¡ãªããããããŸãã
>
> ãã¡ãã
`...`` ã䜿ã£ãŠãåãããšã¯ã§ããŸãããä»åã®ããã«ã鿬¡çã« CLI ãå©ãã€ã€ã倱æèš±å®¹ããã°æŽåœ¢ãçµ±äžããããã±ãŒã¹ã§ã¯ãspawnSync ããŒã¹ã®èãã©ãããŒãçšæããæ¹ãæžãäžãããããšèããŸããã
> [!right-bubble] ![[minerva-face-right.webp]]
> execFile䜿ã£ãã»ãããããªãã§ãããïŒ
> [!left-bubble] ![[chappy.webp]]
> execFile ãåè£ã§ãããä»åãã㊠Bun.spawnSync ãéžãã ã®ã¯æ¬¡ã®çç±ã§ãã
>
> - Bun ã§å®çµãããã£ãïŒexecFile 㯠Node.js ã® child_process API ãªã®ã§ãBun ã©ã³ã¿ã€ã äžã§ã¯äºææ©èœã«é Œã圢ã«ãªããŸããå°æ¥çãªå·®ç°ãéå¯Ÿå¿æåãé¿ããBun ãå
¬åŒã«æšããŠãã spawn/
> spawnSync ç³»ãäœ¿ãæ¹ãå®å®ã ãšå€æããŸããã
> - æšæºåºåïŒæšæºãšã©ãŒã®æ±ããã·ã³ãã«ïŒspawnSync ãªãçµæãªããžã§ã¯ããããã€ããªããã®ãŸãŸåãåããã®ã§ãå
±éãã«ããŒå
ã§æåååããŠãã®ã³ã°ãããŒã¹ãçµ±äžããããã§ããexecFile ã ãš
> ã³ãŒã«ããã¯ã Promise ã©ãããŒãçšæããã²ãšæéãå¢ããŸãã
> - 鿬¡çã«åŸ
æ©ããåŠçãšçžæ§ãè¯ãïŒãªãªãŒã¹ãããŒå
šäœããã³ãã³ãå®è¡ â çµæãã§ãã¯ãã®ç¹°ãè¿ããªã®ã§ãåæçã§ãã®ãŸãŸæžããæ¹ãèªã¿ããããäŸå€ã try/catch ã«æµã蟌ã¿ããããªããŸãã
> execFileSync ãäœ¿ãæ¹æ³ããããŸãããçµå± Node API ã«äŸåããŸãã
>
> ãã¡ãã Node.js ããŒã¹ã§å®è£
ãããªã execFile ã¯è¯ãéžæã§ãããBun åºæã®ç°å¢ã»äŸåé¢ä¿ãåªå
ããŠä»åã®åœ¢ã«ããŠããŸãã
> [!right-bubble] ![[minerva-face-right.webp]]
> ãªãã»ã©ãã¡ãªã¿ã« `gh api repos/tadashi-aikawa/silhouette/actions/workflows/tests.yaml/runs` ã ãšæåããã®ã¯ãªãïŒ
> [!left-bubble] ![[chappy.webp]]
> `gh api repos/tadashi-aikawa/silhouette/actions/workflows/tests.yaml/runs` ã¯åãªããé²èŠ§ç³» APIïŒGETïŒããªã®ã§ãåŸæ¥ã©ãã `repo` çžåœã®ã¹ã³ãŒãããããã° 200 ã§è¿ã£ãŠããŸãã
>
> äžæ¹ãã¹ã¯ãªããã倱æããŠãããã€ã³ã㯠repos/.../actions/workflows/release.yaml/dispatches ãžã® POSTïŒã¯ãŒã¯ãããŒã®æåããªã¬ãŒïŒã§ããã㯠GitHub åŽããworkflow ã¹ã³ãŒããæã£ãŠããª
> ãããŒã¯ã³ãã«å¯Ÿã㊠404 ãè¿ã仿§ã§ããã€ãŸãã
>
> - `.../runs` â èªã¿åãã ããªã®ã§åŸæ¥ã®ããŒã¯ã³ã§æå
> - `.../dispatches` â æåå®è¡ãªã®ã§ `workflow` ã¹ã³ãŒãå¿
é ãè¶³ããªããš 404
>
> ãšããå·®ã§ãã`gh auth refresh -s repo -s workflow` çã§ workflow ãä»ãçŽããåŸã¯ãäž¡æ¹ãšãæ£åžžã«åäœããããã«ãªããŸãã
> [!right-bubble] ![[minerva-face-right.webp]]
> 以åã«Claude CodeãCodex CLIã«é Œãã ãšãã¯ããã¡ãã§gh auth refreshã³ãã³ããå©çšãããšããActionãå®è¡ããŠãªãªãŒã¹ããŠããããŸããã
>
> ããã¯AIã `gh auth refresh` ã³ãã³ããæ°ãå©ãããŠå®è¡ããŠãããŠãããšããããšã§ããïŒ
> [!left-bubble] ![[chappy.webp]]
> å¯èœæ§ãšããŠã¯ããã€ãèããããŸããããAI ãåæã« `gh auth refresh` ãå®è¡ããŠããããã±ãŒã¹ã¯ãããäŸå€çã§ããCodex CLI / Claude Code ãªã©ãå®è¡ããŠããéå»ã®ãªãªãŒã¹ã§ããŒã¯ã³ã®æŽæ°ã
çç¥ã§ããŠããçç±ãšããŠã¯ã以äžã®ã»ããçŸå®çã§ãã
>
> - ãã®æç¹ã§ã¯ `workflow` ã¹ã³ãŒãä»ãã®ããŒã¯ã³ããã§ã«ä¿åãããŠãã
> CLI ã®èªèšŒæ
å ±ã¯ ~/.config/ghïŒmise çµç±ã ãšç®¡çå Žæãç°ãªãããšããããŸããïŒã«ä¿åãããã®ã§ã以åã«äººæã§ãã°ã€ã³ããéã« `workflow` ãä»ããŠãããªãã远å ã® `auth refresh` äžèŠã§ `dispatch` ãéããŸãã
> - AI ã `gh auth login` ã `gh auth refresh` ãå®è¡ããŠããå¯èœæ§
> Codex CLI ã Claude Code ã¯ãå¿
èŠã«å¿ããŠãèªèšŒãæŽæ°ããã³ãã³ãããèªåŸçã«å©ãããšããããŸãããŠãŒã¶ãŒã«æç€ºãããŠããªãã£ããšããŠãããã°ãèŠããš `gh auth loginïŒrefresh` ãèµ°ãããŠ
> ããã±ãŒã¹ã¯ããããŸãã
> - ããŸã㟠GitHub åŽã `workflow` ãªãã§ãèš±å¯ããŠããæé
> ããã¯ã»ãŒç¡ããšæããŸãããGitHub ã®ä»æ§å€æŽãããŒã¯ã³äœæç°å¢ã«ãã£ãŠãrepo ã¹ã³ãŒãã«æé»ã§ `workflow` ãä»ããŠããææãäžæçã«ãã£ãå¯èœæ§ã¯ãŒãã§ã¯ãããŸããã
>
> ä»å 404 ã«ãªã£ããšããããšã¯ãçŸåšæå
ã® gh ãä¿æããŠããããŒã¯ã³ãã `workflow` ã¹ã³ãŒããæããŠããïŒããGitHub äžã§ã¹ã³ãŒããåãæ¶ãããŠããïŒãšèŠãŠããã§ããã§ãã®ã§ãæ¹ã㊠`gh auth refresh -s repo -s workflow` ã§ã¹ã³ãŒããä»ãçŽããŠããã®ã確å®ã§ãã
> [!negative] ããšã§åãã£ããã©
> çµå±åå 㯠**ã¡ãœãããPOSTã«ãªã£ãŠããããš** ã ã£ããœãã®ã§scopeã¯é¢ä¿ãªããããã
ãããã«ã¹ã³ãŒãã¯ãªãããã
```console
$ gh auth status
github.com
â Logged in to github.com account tadashi-aikawa (GITHUB_TOKEN)
- Active account: true
- Git operations protocol: ssh
- Token: ghp_************************************
- Token scopes: 'public_repo', 'repo:status'
! Missing required token scopes: 'repo', 'read:org'
- To request missing scopes, run: gh auth refresh -h github.com
â Logged in to github.com account tadashi-aikawa (keyring)
- Active account: false
- Git operations protocol: ssh
- Token: gho_************************************
- Token scopes: 'gist', 'read:org', 'repo'
```
ã¡ãã£ãšæãã®ã§èããŠã¿ãã
> [!right-bubble] ![[minerva-face-right.webp]]
> repoã ãã§ãªãworkspaceã®ããŒã¯ã³ãå¿
èŠãªçç±ãæããŠäžããã
â» ééã㊠`workflow` ã§ã¯ãªã `workspace` ã«ããŠããŸã£ã... ãã©éãã
> [!left-bubble] ![[chappy.webp]]
> `repo` ã¹ã³ãŒãã¯ããªããžããªå
ã®ã³ãŒãã»Issueã»PR ãªã©ãèªã¿æžããããããã®æš©éã§ãä»åã®ã¹ã¯ãªããã§ã以äžã®æäœã«å¿
é ã§ãã
>
> - `gh issue comment` / `gh issue close` ã§ Issue ã«ã³ã¡ã³ãã»ã¯ããŒãºãã
> - `gh release list/view` ã§ãªãªãŒã¹æ
å ±ãååŸãã
>
> äžæ¹ãRelease Action ãæåã§èµ°ãããåŠç㯠`gh api repos/.../actions/workflows/release.yaml/dispatches` ãå©ããŠããããã㯠GitHub Actions ããŠãŒã¶ãŒæäœã§èµ·åããæš©éïŒworkflow ã¹ã³ãŒãïŒ ãå¿
èŠã§ããGitHub ã¯å®å
šæ§ã®ããã«ãã®ãšã³ããã€ã³ãã `workflow` æš©éã§å®ã£ãŠãããããrepo ã ãã ãš 404ïŒå®è³ªçãªæš©éäžè¶³ïŒã«ãªããŸãã
>
> ã€ãŸãïŒ
>
> - Issue ããªãªãŒã¹ã«å¯Ÿããèªã¿æžã â `repo` ãå¿
èŠ
> - Release Action ã dispatch ãã â `workflow` ãå¿
èŠ
>
> ãã®äž¡æ¹ãè¡ãä»åã®ãããŒã§ã¯ã`repo` ãš `workflow` ã®åæ¹ãä»äžããããŒã¯ã³ïŒ= `gh auth refresh -s repo -s workflow` ãªã©ã§æŽæ°ããèªèšŒæ
å ±ïŒãå¿
èŠããšããã®ãçç±ã§ãã
ã·ãŽããææŒãåçã ãã[[Claude Code]]ãçµ¶é æã¯ãããªæãã ã£ãæ°ããããã ãã©ãªã...æ®å¿µã
> [!right-bubble] ![[minerva-face-right.webp]]
> ```
> $ gh auth refresh -s repo -s workflow
> The value of the GITHUB_TOKEN environment variable is being used for authentication.
> To refresh credentials stored in GitHub CLI, first clear the value from the environment.
> ```
> [!left-bubble] ![[chappy.webp]]
> `gh` ã¯ç°å¢å€æ° `GITHUB_TOKEN` ãèšå®ãããŠãããšããã¡ããåªå
çã«å©çšããŸãã
ãã®ç¶æ
ã ãšããŒã«ã«ã«ä¿åããŠããããŒã¯ã³æ
å ±ãæŽæ°ã§ããªãããã以äžã®ããããã®æ¹æ³ã§äžæçã«ç°å¢å€æ°ãå€ããŠãã `gh auth refresh` ãå®è¡ããŠãã ããã
>
> 1. äžåºŠã ãæŽæ°ãããå Žå
>
> unset GITHUB_TOKEN
> gh auth refresh -h github.com -s repo -s workflow
> ïŒZsh/Bash ã¯ã·ã§ã«ãéãããŸã§ `GITHUB_TOKEN` ãå€ããç¶æ
ã«ãªããŸãïŒ
> ïŒZsh/Bash ã¯ã·ã§ã«ãéãããŸã§ `GITHUB_TOKEN` ãå€ããç¶æ
ã«ãªããŸãïŒ
> 2. 端æ«ãéããã³ã« `GITHUB_TOKEN` ãèªåã§ã»ãããããŠããŸãå Žå
> .`zshrc` ãã·ã§ã«èµ·åæã«èªã¿èŸŒãŸããèšå®ãã¡ã€ã«ã§ `export GITHUB_TOKEN=...` ãæžãããŠããªãã確èªããåžžæäžèŠã§ããã°ã³ã¡ã³ãã¢ãŠããããããªãã¬ãã·ã¥æã ãäžæçã«ã³ã¡ã³ãã¢ãŠãããŠãã `source ~/.zshrc` â `gh auth refresh ...` ãå®è¡ããŸãã
>
> æŽæ°åŸã« `gh auth status` ãå®è¡ãã`Token: ... workflow` ãšè¡šç€ºãããã°ãªãã¬ãã·ã¥æåã§ãããã®äžã§å床 `bun run release` ãªã©ãå®è¡ãããšãRelease Action ã® dispatch ãå¯èœã«ãªããŸãã
èšãããããŸãŸã«æš©éãã€ããŠã¿ãã
```console
unset GITHUB_TOKEN
gh auth refresh -h github.com -s repo -s workflow
```
ã§ãå€ããããã `GITHUB_TOKEN` ãåªå
ãããŠããŸãããããããåããªããšãã¡ããã
ãã®ããšãè²ã
ãããšãã¯ãã£ããã©ãå
šéšèŒãããšãããç¡ãã®ã§éçšã¯çç¥ã
## ãªãªãŒã¹ã¹ã¯ãªãããå®è¡ãã
```console
bun run release
```
以äžã¯åºåã
```console
$ bun scripts/release.mts
=== Silhouette ãªãªãŒã¹èªåå ===
â
æªpushã³ãããã¯ãããŸããã
ð Testsã¯ãŒã¯ãããŒã®ææ°çµæã確èªããŸã...
â
Testsã¯ãŒã¯ãããŒã®ææ°å®è¡ã¯æåããŠããŸãã
ð Releaseã¯ãŒã¯ãããŒãå®è¡ããŸã...
â¹ïž Releaseã¯ãŒã¯ãã㌠run_id=17946291666 ãæ€ç¥ããŸããã
â³ Releaseã¯ãŒã¯ãããŒå®è¡äž... status=in_progress, updated_at=2025-09-23T12:33:10Z
â³ Releaseã¯ãŒã¯ãããŒå®è¡äž... status=in_progress, updated_at=2025-09-23T12:33:10Z
â³ Releaseã¯ãŒã¯ãããŒå®è¡äž... status=in_progress, updated_at=2025-09-23T12:33:10Z
â³ Releaseã¯ãŒã¯ãããŒå®è¡äž... status=in_progress, updated_at=2025-09-23T12:33:10Z
â³ Releaseã¯ãŒã¯ãããŒå®è¡äž... status=in_progress, updated_at=2025-09-23T12:33:10Z
â
Releaseã¯ãŒã¯ãããŒãæ£åžžçµäºããŸããã
â
æ°ãããªãªãŒã¹ 0.30.0 ã確èªããŸããã
â¹ïž ãªãªãŒã¹ããŒãã«é¢é£Issueçªå·ã¯èŠã€ãããŸããã§ããã
=== Blueskyæçš¿æ¡ ===
ðŠ Silhouette 0.30.0 ð
ã»**time:** èšæž¬ã¹ããŒã¿ã¹å€æŽæã«ãã§ãã¯ãªã¹ãã®ããŒã¯ã倿Žãããªãã·ã§ã³ã»æ©èœã远å
ã»**time:** èšæž¬ã¹ããŒã¿ã¹å€æŽæã«ãã§ãã¯ãªã¹ãã®ããŒã¯ã倿Žãããªãã·ã§ã³ã»æ©èœã远å
ã»**time:** ãã¹ããŒã¿ã¹ããŒã«èšæž¬æéã衚瀺ããããç¡å¹ã®å Žåã«Push timerã³ãã³ããå®è¡ãããšãšã©ãŒã§åŠçãäžæãã
https://github.com/tadashi-aikawa/silhouette/releases/tag/0.30.0
=== æçš¿æ¡ãããŸã§ ===
ð git pull ãå®è¡ããŠãªããžããªãææ°åããŸã...
â ãªãªãŒã¹åŠçäžã«ãšã©ãŒãçºçããŸãã: ã³ãã³ãå®è¡ã«å€±æããŸãã: git pull --ff-only origin master
From github.com:tadashi-aikawa/silhouette
* branch master -> FETCH_HEAD
9f33a72..7a120ff master -> origin/master
error: Your local changes to the following files would be overwritten by merge:
package.json
Please commit your changes or stash them before you merge.
Aborting
```
`git pull` ã¯ãã¡ãã®åé¡ãªã®ã§æ°ã«ããªããŠOKã
```
ðŠ Silhouette 0.30.0 ð
èšæž¬ã¹ããŒã¿ã¹å€æŽæã«ãã§ãã¯ãªã¹ãã®ããŒã¯ã倿Žãããªãã·ã§ã³ã»æ©èœã远å ããŸããã
https://github.com/tadashi-aikawa/silhouette/releases/tag/0.30.0
```