gh-issue-sync 是做什麼的?
將 GitHub 問題同步到本機 Markdown 檔案,儲存在 .issues/open/ 和 .issues/closed/ 目錄中。
命令
gh-issue-sync init # 在 Git 儲存庫中初始化
gh-issue-sync pull # 擷取開放的問題(加上 --all 可擷取已關閉的問題)
gh-issue-sync push # 推送本機變更(加上 --dry-run 可預覽)
gh-issue-sync list # 列出問題(支援 gh issue list 的標誌和 --search)
gh-issue-sync new "標題" # 建立問題(加上 --label 和 --edit)
gh-issue-sync close 42 # 關閉問題(加上 --reason completed|not_planned)
gh-issue-sync reopen 42
gh-issue-sync status # 顯示本機變更
gh-issue-sync diff 42 # 顯示差異(加上 --remote 可重新擷取遠端版本)
檔案格式
.issues/open/42-fix-login-bug.md:
---
title: 修復登入錯誤
labels: [bug, priority:high]
assignees: [alice]
milestone: v1.0
state: open
# 對於已關閉的問題:state_reason: completed|not_planned
# 可選:parent: 10, blocked_by: [11, 12], blocks: [15]
---
問題內容以 Markdown 格式撰寫。
問題編號從檔名推斷,而非儲存在 frontmatter 中。
暫存問題
新的問題會獲得一個 T 前綴的 ID(例如 T1a2b3c)。檔名必須以 T 開頭:
.issues/open/T1a2b3c-my-new-issue.md
在 push 時,檔案會被重新命名為實際的問題編號(例如 42-my-new-issue.md),並且 frontmatter 中的 number: 會隨之更新。其他問題中所有 #T1a2b3c 的參照也會被更新為 #42。
留言
要在推送時張貼留言,請在問題檔案旁建立一個 .comment.md 檔案:
.issues/open/42.comment.md
.issues/open/42-fix-login-bug.comment.md
內容為純 Markdown。留言張貼後,該檔案會被刪除。
注意事項
pull會略過衝突;請使用--force強制覆寫本機檔案。