pull-request

GitHub Pull Request 助手

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "pull-request" with this command: npx skills add gn00678465/agentskills/gn00678465-agentskills-pull-request

GitHub Pull Request 助手

協助使用者建立或修改 GitHub Pull Request,自動分析分支 commits 並產生繁體中文 PR 標題與描述。

功能

  • 建立 PR:從當前分支建立 Pull Request 到目標分支

  • 修改 PR:更新現有 PR 的標題或描述

  • 分析 commits:自動彙整分支變更產生 PR 內容

決策流程

使用者請求 PR 相關操作 │ ├─ 步驟 1:檢查當前分支是否有對應的 PR │ │ │ │ gh pr view --json number,title,state 2>&1 │ │ │ ├─ 【有輸出且 state="OPEN"】→ PR 已存在 │ │ │ │ │ └─ 進入【修改 PR 流程】 │ │ - 顯示現有 PR 資訊 │ │ - 詢問使用者要修改的內容 │ │ - 執行 gh pr edit 指令 │ │ │ └─ 【無輸出或錯誤】→ PR 不存在 │ │ │ └─ 進入【建立 PR 流程】 │ - 執行前置檢查 │ - 分析 commits │ - 產生標題與描述 │ - 執行 gh pr create 指令 │ └─ 步驟 2:執行對應流程並回報結果

檢查 PR 是否存在

檢查當前分支是否已有 PR

gh pr view --json number,title,state,url

判斷邏輯:

輸出結果 判斷 後續動作

返回 JSON 且 state: "OPEN"

PR 已存在且開啟中 進入修改流程

返回 JSON 且 state: "MERGED"

PR 已合併 詢問是否建立新 PR

返回 JSON 且 state: "CLOSED"

PR 已關閉 詢問是否重開或建立新 PR

錯誤訊息 no pull requests found

PR 不存在 進入建立流程

建立 PR 流程

步驟 0:前置檢查

確認當前分支已推送至遠端:

取得當前分支名稱

git rev-parse --abbrev-ref HEAD

檢查分支是否存在於遠端

git ls-remote --heads origin $(git rev-parse --abbrev-ref HEAD)

若無輸出:分支尚未推上遠端,需先執行:

git push -u origin <當前分支>

步驟 1:取得 commits 清單

取得當前分支相對於目標分支(預設 main )的 commits:

git --no-pager log --oneline <目標分支>..<當前分支>

步驟 2:取得 commit 詳細資訊

針對每個 commit 取得變更統計:

git --no-pager show <commit-hash> --stat

步驟 3:產生 PR 標題

根據 commit 數量決定標題策略:

情況 標題策略

單一 commit 直接使用該 commit 訊息

多個 commits 總結所有變更的描述性標題

步驟 4:產生 PR 描述

必須嚴格遵守以下格式,確保輸出為真正的 Markdown 換行,而非包含 \n 的字串:

完整範本請參考 references/pr-template.md

摘要

[一句話總結此 PR 的主要目的]

修改內容

  • 變更項目 1:描述具體的修改內容
  • 變更項目 2:描述具體的修改內容
  • 變更項目 3:描述具體的修改內容

⚠️ 風險評估

[評估此 PR 是否有破壞性變更、需要特別注意的地方]

常見風險類型:

  • 資料庫變更(migration、schema 修改)
  • API 變更(endpoint 修改、參數變更)
  • 設定檔變更(環境變數、設定參數)
  • 相依性更新(套件版本升級)

若無風險,可註明:「無破壞性變更」

備註

[其他需要審查者注意的地方,如測試方式、部署注意事項、相關 Issue 連結等]

步驟 5:建立 Pull Request

使用 GitHub CLI 建立 PR。

⚠️ 絕對禁止直接使用 --body 參數。必須先將內容寫入暫存檔案,再使用 --body-file 讀取內容,以避免換行符被轉義為 \n 字串。

正確做法:

1. 建立暫存檔案 pr-body.md,寫入 PR 描述內容(確保內容中是真正的換行)

2. 使用 --body-file 讀取檔案

gh pr create --base <目標分支> --head <當前分支> --title "<標題>" --body-file pr-body.md

3. 建立完成後刪除暫存檔案

PowerShell 範例:

將 PR 描述寫入檔案

@"

摘要

實作使用者登入功能

修改內容

  • 新增登入 API 端點
  • 實作 JWT 驗證機制

⚠️ 風險評估

無破壞性變更 "@ | Out-File -FilePath pr-body.md -Encoding UTF8

建立 PR

gh pr create --base main --title "feat: 實作登入功能" --body-file pr-body.md

清理暫存檔案

Remove-Item pr-body.md

Bash 範例:

將 PR 描述寫入檔案

cat << 'EOF' > pr-body.md

摘要

實作使用者登入功能

修改內容

  • 新增登入 API 端點
  • 實作 JWT 驗證機制

⚠️ 風險評估

無破壞性變更 EOF

建立 PR

gh pr create --base main --title "feat: 實作登入功能" --body-file pr-body.md

清理暫存檔案

rm pr-body.md

常用選項:

選項 說明

--body-file <file>

從檔案讀取 PR 描述(推薦)

--draft

建立草稿 PR

--reviewer <users>

指定審核者(逗號分隔)

--assignee <users>

指定負責人

--label <labels>

新增標籤

修改 PR 流程

當 PR 已存在時,進入此流程。

步驟 1:取得現有 PR 資訊

gh pr view --json number,title,body,state,url,headRefName,baseRefName

步驟 2:顯示 PR 摘要

向使用者顯示:

  • PR 編號與標題

  • 目前狀態(OPEN/DRAFT)

  • 來源分支 → 目標分支

  • PR 連結

步驟 3:確認修改內容

根據使用者需求執行對應操作:

修改標題

gh pr edit <PR編號或URL> --title "<新標題>"

修改描述

gh pr edit <PR編號或URL> --body "<新描述>"

新增審核者/標籤

gh pr edit <PR編號或URL> --add-reviewer <users> gh pr edit <PR編號或URL> --add-label <labels>

查看現有 PR

列出當前 repo 的 PR

gh pr list

查看特定 PR 詳情

gh pr view <PR編號>

注意事項

  • 僅處理已提交的變更:忽略未 staged 的變更

  • 語言要求:PR 標題與描述使用繁體中文 (zh-TW)

  • 目標分支預設:若使用者未指定,預設為 main

  • 需要 GitHub CLI:確保已安裝並登入 gh 工具

範例

範例 1:PR 不存在 - 建立新 PR

使用者請求: 「幫我建立 PR 到 develop」

執行流程:

  • 檢查 PR:gh pr view → 錯誤「no pull requests found」

  • 判斷:PR 不存在,進入建立流程

  • 前置檢查:確認分支已在遠端

  • 取得 commits:git --no-pager log --oneline develop..HEAD

  • 分析變更產生標題與描述

  • 執行:gh pr create --base develop --head feature/login --title "feat: 實作使用者登入功能" --body "..."

範例 2:PR 已存在 - 自動進入修改模式

使用者請求: 「幫我開 PR」

執行流程:

  • 檢查 PR:gh pr view --json number,title,state

{"number": 42, "title": "feat: 新增登入功能", "state": "OPEN"}

  • 判斷:PR 已存在,進入修改流程

  • 回報:「此分支已有 PR #42『feat: 新增登入功能』,請問要進行什麼修改?」

  • 等待使用者指示

範例 3:明確修改 PR

使用者請求: 「修改 PR #42 的標題為『修正購物車計算錯誤』」

執行:

gh pr edit 42 --title "修正購物車計算錯誤"

範例 4:PR 已合併

使用者請求: 「幫我建 PR」

執行流程:

  • 檢查 PR:gh pr view --json number,title,state

{"number": 38, "title": "feat: 舊功能", "state": "MERGED"}

  • 判斷:PR 已合併

  • 回報:「此分支的 PR #38 已合併。若有新的變更需要建立 PR,請確認已有新的 commits。」

參考資料

  • references/pr-template.md

  • PR 描述範本與編寫指南

  • references/gh-pr-commands.md

  • GitHub CLI PR 相關指令完整參考

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Automation

commit-message

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

MergeIQ: Automatically Score & Prioritise PR Complexity for GitLab and GitHub

Score the complexity of any GitLab MR or GitHub PR using a 4-dimension framework: Size (20%), Cognitive Load (30%), Review Effort (30%), and Risk/Impact (20%...

Registry SourceRecently Updated
1020Profile unavailable
Coding

deps-dev

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

test-driven-development

No summary provided by upstream source.

Repository SourceNeeds Review