Community程式設計與開發github.com

mitsuhiko/gh-issue-sync

將 GitHub 問題同步到本機 Markdown 檔案。可用於分流、搜尋、編輯和建立問題,無需離開編輯器或終端機。

gh-issue-sync 是什麼?

這是一個 CLI 工具,可將 GitHub Issues 同步到本機 Git 儲存庫中的 `.issues/open/` 和 `.issues/closed/` 目錄,以 Markdown 檔案形式管理。它支援 `init`、`pull`、`push`、`list`、`new`、`close`、`reopen`、`status` 和 `diff` 等命令,讓開發者可以在熟悉的編輯器或終端機中處理問題,而無需頻繁切換到 GitHub 網頁介面。 每個問題對應一個 Markdown 檔案,透過 frontmatter 儲存標題、標籤、指派對象、里程碑等元資料,問題編號則從檔名推斷。暫存問題使用 `T` 前綴的 ID,在推送時自動重新命名並更新所有參照。此外,檔案旁邊的 `.comment.md` 檔案可在推送時自動貼上留言。 此工具特別適合需要批次管理問題、進行深度文字搜尋或離線工作的開發者。它與 GitHub CLI 整合,支援 `gh issue list` 的標誌,並提供 `--dry-run` 預覽推送變更。支援所有主流平台,只要安裝了 Git 和 GitHub CLI 即可使用。同步過程預設略過衝突,但可使用 `--force` 強制覆寫。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/mitsuhiko/gh-issue-sync/tree/main/skill

Installed? Explore more 程式設計與開發 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

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 強制覆寫本機檔案。

相關技能