| name | open-pr |
| description | Create PR via GitHub Web UI without gh CLI (Compare Default: current branch, Base Default: reflog origin). Use this skill whenever the user wants to create a pull request, open a PR, or submit changes for review. This skill intentionally avoids gh CLI because its OAuth token requires broader permissions than necessary â instead it opens the GitHub Web UI directly. |
| argument-hint | [Compare Branch] [Base Branch] |
以äžã®æé ã§æ°ããPull Request(PR)ãGitHub Web UIçµç±ã§äœæããŠãã ããã
åŒæ°ã®è§£æ±º
ARGUMENTã¯ã¹ããŒã¹åºåãã§2ã€ã®åŒæ°ãåãåããŸãã
- 第äžåŒæ°: Compare BranchåïŒæªæå®æã¯çŸåšã®ãã©ã³ãïŒ
- 第äºåŒæ°: Base BranchåïŒæªæå®æã¯reflogããèªåæ€åºïŒ
第äžåŒæ°ãæªæå®ã®å Žåã以äžã®ã³ãã³ãã§çŸåšã®ãã©ã³ãåãååŸããŠãã ããã
git branch --show-current
第äºåŒæ°ãæªæå®ã®å Žåã以äžã®ã³ãã³ãã§ããŒã¹ãã©ã³ããæ€åºããŠãã ããã
git reflog show COMPARE_BRANCH --format='%H' | tail -1
git branch --contains äžèšã§ååŸããããã·ã¥
åºåããCOMPARE_BRANCHèªèº«ãé€ããæåã®ãã©ã³ãåãBASE_BRANCHãšããŠãã ããã
BASE_BRANCHã空ããŸãã¯ããŒã«ã«ã»ãªã¢ãŒãã«ååšããªããã©ã³ãåã ã£ãå Žåã¯ããŠãŒã¶ãŒã«ããŒã¹ãã©ã³ãã確èªããŠããç¶è¡ããŠãã ããã
åŒæ°ã®è§£æ±ºåŸãCOMPARE_BRANCHãšBASE_BRANCHããŠãŒã¶ãŒã«è¡šç€ºããŠãã ããã
以éã®æé ã§ã¯${COMPARE_BRANCH}ãš${BASE_BRANCH}ã解決ããå€ã«çœ®ãæããŠå®è¡ããŠãã ããã
ãªã¢ãŒããžã®ããã·ã¥ç¢ºèª
COMPARE_BRANCHããªã¢ãŒãã«ããã·ã¥æžã¿ãã€ææ°ã§ããããšã確èªããŠãã ããã
git fetch origin COMPARE_BRANCH 2>/dev/null
git rev-parse COMPARE_BRANCH
git rev-parse origin/COMPARE_BRANCH 2>/dev/null
- ãªã¢ãŒããã©ã³ããååšããªãå Žå: ãŠãŒã¶ãŒã«
git push -u origin COMPARE_BRANCH ã®å®è¡ãä¿ããŠäžæ
- LOCAL â REMOTE ã®å Žå: ããŒã«ã«ã«æªããã·ã¥ã®ã³ããããããæšãäŒãã
git push ã®å®è¡ãä¿ããŠäžæ
- LOCAL = REMOTE ã®å Žå: ãã®ãŸãŸç¶è¡
ã³ãããå±¥æŽãšããŒã¹ãã©ã³ããšã®å·®å確èª
以äžã®2ã€ã®ã³ãã³ãã¯äŸåé¢ä¿ããªãããã䞊åã§å®è¡ããŠãã ããã
git log --oneline BASE_BRANCH...COMPARE_BRANCH
git diff BASE_BRANCH...COMPARE_BRANCH
PRãã³ãã¬ãŒããã¡ã€ã«ã®å
容確èª
以äžã®åªå
é ã§Globã§æ€çŽ¢ããæåã«èŠã€ãã£ããã¡ã€ã«ãReadã§èªã¿åã£ãŠãã ããããã¡ã€ã«åpull_request_templateã¯å€§æåå°æåäžåãã©ã¡ãã«ããªãå Žåã¯ã¹ãããã
.github/pull_request_template*
${HOME}/dotfiles/.github/pull_request_template*
PRã¿ã€ãã«ãšããã£ã®çæ
ã³ãããå±¥æŽãå·®åãPRãã³ãã¬ãŒããã¡ã€ã«ã®å
容ãå
ã«ã以äžãçæããŠãã ããã
PRã¿ã€ãã«
倿Žå
容ã®èŠç¹ã§æžãã
ãäœãã©ã倿Žãããããç°¡æœã«è¡šãã
Conventional Commits圢åŒã®ãã¬ãã£ãã¯ã¹ïŒfeat/fix/refactorçïŒãä»ããã
create-commitã¹ãã«ã®typeéžæåºæºã«åŸãããš
ïŒäŸ: ãfix: ã»ãã·ã§ã³ç®¡çã®ã¿ã€ã ã¢ãŠãåŠçãä¿®æ£ããfeat: ãŠãŒã¶ãŒæåŸ
APIãšUIãå®è£
ãïŒ
PRããã£
PRããã£ã¯ãäœãã©ãå€ããããããªããã®å®è£
ã«ãããããã©ã確èªãããããäžå¿ã«æžããã¬ãã¥ã¢ãŒãå·®åãèªãŸãªããŠã倿Žã®èŒªéãšæå³ãæŽããããšããŽãŒã«ã
å¿
ãå«ããé
ç®
- æŠèŠ: äœã倿Žãããã®1ã2è¡ãµããª
- å®è£
æ¹é: èšèšå€æã®çç±ãæ¡çšããæ¹éïŒ3ã5é
ç®ïŒ
- åäœç¢ºèª: ç¢ºèªæé / ãã¹ãçµæ / ã¹ã¯ãªãŒã³ã·ã§ããåç
§ïŒ3ã6é
ç®ïŒ
- é¢é£ Issue:
Closes #N / Refs #NïŒä»»æïŒ
PRãã³ãã¬ãŒããããå Žåã®æ±ã
PRãã³ãã¬ãŒãã®ã»ã¯ã·ã§ã³æ§æã«ã¯åŸãããã ã以äžã®ã«ãŒã«ã§éçšããïŒ
- ãå¿
ãå«ããé
ç®ãïŒæŠèŠã»å®è£
æ¹éã»åäœç¢ºèªã»é¢é£ IssueïŒã«çžåœããã»ã¯ã·ã§ã³ã¯å¿
ãåããããã³ãã¬ãŒãã«è©²åœã»ã¯ã·ã§ã³ãç¡ããã°ããã³ãã¬ãŒãã«åãããèŠåºãåã§è¿œèšããŠãã
- ãã以å€ã®ä»»æã»ã¯ã·ã§ã³ïŒäŸ: ã¬ãã¥ãŒèгç¹ãè£è¶³äºé
ãªã©ïŒã¯ãæžãã¹ãå
容ããããšãã ãçãèšèŒããç¡ããã°åé€ããïŒç©ºã»ã¯ã·ã§ã³ã¯æ®ããªãïŒ
- ãããã®å Žåããåã»ã¯ã·ã§ã³ã¯äžèšã®ç²åºŠã§èŠçŽãã
å«ããªããã®
GitHub ã® PR äœæãšã³ããã€ã³ã㯠URL å
šäœã§çŽ 8KB ãäžéïŒè¶
éãããš Whoa there! Your request URL is too long. ãšã©ãŒã«ãªãïŒãæ¥æ¬èªã¯ URL ãšã³ã³ãŒãåŸã« 1 æå = 9 ãã€ãã«èšãããããæ¬æã¯æåããç°¡æœã«ä¿ã€ã以äžã¯ PR æ¬æã§ã¯ãªãé¢é£ Issue / ã³ãããã¡ãã»ãŒãž / ã³ãŒãå
ã³ã¡ã³ã / ãªã³ã¯å
ããã¥ã¡ã³ãã«æ®ãã
- ã³ãŒããããã¯ã®é·å€§ãªè²Œãä»ãïŒå·®åå
šæã»ãã°å
šæã»ã¹ã¿ãã¯ãã¬ãŒã¹å
šæãªã©ïŒ
- ã³ãããã¡ãã»ãŒãžãã®ãã®ã®åæ²ïŒå±¥æŽããåç
§å¯èœïŒ
- 颿°ã·ã°ããã£ããã¡ã€ã«åäœã®ä¿®æ£å
容ã®è©³çްåæ
æåæ°ã®ç®å®
- æ¥æ¬èªæ¬æ: 600æå以å
ãç®æš
- è±èªäž»äœã®æ¬æ: 2000æå以å
ãç®æš
çæåŸã«æ¬æãäžèšãè¶
ããŠãããèŠçŽãçŽãã詳现ãå¿
èŠãªæ
å ±ã¯é¢é£ Issue / ã³ãããã¡ãã»ãŒãž / ãªã³ã¯å
ããã¥ã¡ã³ãã§åç
§ãããã
PRäœæããŒãžããã©ãŠã¶ã§ãªãŒãã³
PRã¿ã€ãã«ãšPRããã£ãURLãšã³ã³ãŒãããŠPRäœæããŒãžãéããŸãã
evalå
ã§ã®ãã¢ããã¥ã¡ã³ããã€ã³ã©ã€ã³è€æ°è¡æååã¯ããŒã¹ãšã©ãŒã®åå ã«ãªããã䜿çšããªãã§ãã ããã
ãŸãããªããžããªURLãš GitHub ãã°ã€ã³åãååŸããŠãã ããã
git remote get-url origin
git config github.user
git config github.user 㯠GitHub ãã°ã€ã³åãä¿æããæ
£äŸç㪠git config ããŒïŒgh CLI ã«äŸåããªãïŒãèšå®æžã¿ãªã assignees ã«äœ¿ããgit config user.name ã¯è¡šç€ºåïŒãã«ããŒã çïŒãå
¥ã£ãŠã㊠GitHub ãã°ã€ã³ãšäžèŽããªãã±ãŒã¹ãå€ããã䜿ããªããgithub.user ãæªèšå®ã®å Žå㯠assignees ãçç¥ããPR äœæããŒãžã§æåã¢ãµã€ã³ããŠãããã
ååŸãããªã¢ãŒãURLãããªããžããªURLãæ§æããŠãã ããã
- SSH圢åŒïŒ
git@github.com:owner/repo.gitïŒ: git@github.com: ã https://github.com/ ã«çœ®æ
- HTTPS圢åŒïŒ
https://github.com/owner/repo.gitïŒ: ãã®ãŸãŸäœ¿çš
ãããã®å Žåãæ«å°Ÿã® .git ã¯é€å»ããŠãã ããã
æåŸã«ãPRäœæããŒãžãéããŠãã ããããã©ãŠã¶èµ·åã³ãã³ãã¯ãµã³ãããã¯ã¹å
ã§ã¯å®è¡ã§ããªããããå¿
ãdangerouslyDisableSandbox: trueãæå®ããŠå®è¡ããŠãã ãããPRã¿ã€ãã«ãšPRããã£ã¯urlencode颿°ã§URLãšã³ã³ãŒãããŠãã ããã
opener颿°ã¯å®è¡ç°å¢ãå€å®ããé©åãªãã©ãŠã¶èµ·åã³ãã³ãã«ãã£ã¹ãããããŸãã
- macOS:
open
- WSL:
explorer.exeïŒ/proc/versionã«microsoftãå«ãŸãããã§å€å®ïŒ
- ãã®ä»Linux:
xdg-openïŒååšããå ŽåïŒ
- ãã©ãŒã«ããã¯: URLãæšæºåºåã«è¡šç€º
urlencode(){ printf '%s' "$1" | od -An -tx1 | tr -d ' \n' | sed 's/\(..\)/%\1/g'; }; opener(){ case "$(uname -s)" in Darwin) open "$1";; Linux) if grep -qi microsoft /proc/version 2>/dev/null; then explorer.exe "$1"; elif command -v xdg-open >/dev/null 2>&1; then xdg-open "$1"; else printf 'Open this URL: %s\n' "$1"; fi;; *) printf 'Open this URL: %s\n' "$1";; esac; }; GH_USER=$(git config github.user 2>/dev/null); QS_ASSIGNEES=""; [ -n "$GH_USER" ] && QS_ASSIGNEES="&assignees=$GH_USER"; opener "REPO_URL/compare/BASE_BRANCH...COMPARE_BRANCH?quick_pull=1&title=$(urlencode "PRã¿ã€ãã«")&body=$(urlencode "PRããã£")${QS_ASSIGNEES}"