git-ship
Original:🇺🇸 English
Translated
Commit, create PR, and merge with CI skipped. Disables GitHub Actions workflows via API before push, re-enables after merge. Use when: shipping trivial changes (renames, typos, config), bypassing CI for safe changes, fast-tracking PRs. Triggers: /git-ship, commit and merge skip ci, ship without ci, fast merge.
3installs
Added on
NPX Install
npx skill4agent add molechowski/claude-skills git-shipTags
Translated version includes tags in frontmatterSKILL.md Content
View Translation Comparison →Commit PR CI Merge
Full commit-to-merge flow with CI bypassed via GitHub Actions API.
Workflow
1. Detect repo → 2. Disable workflows → 3. Branch → 4. Commit → 5. Push → 6. PR → 7. Merge → 8. Re-enable workflows → 9. CleanupSteps
1. Detect Repository
Extract owner and repo from git remote:
bash
gh repo view --json owner,name --jq '[.owner.login, .name] | @tsv'Store as and for all subsequent gh api calls.
OWNERREPO2. List and Disable Workflows
Get all active workflows:
bash
gh api repos/{OWNER}/{REPO}/actions/workflows --jq '.workflows[] | select(.state=="active") | [.id, .name] | @tsv'Disable each PR-triggered workflow:
bash
gh api repos/{OWNER}/{REPO}/actions/workflows/{ID}/disable -X PUTTrack disabled workflow IDs for re-enabling later. Only disable workflows that trigger on or events. If unsure, disable all active workflows.
pull_requestpush3. Create Feature Branch
If on main/master, create a branch. Use skill conventions for branch naming:
/commitbash
git checkout -b chore/short-description4. Commit
Use skill for message generation.
/commitSkill(skill="commit")5. Push
bash
git push -u origin $(git branch --show-current)6. Create PR
Use skill for PR creation. Add a note in the PR body that CI was skipped.
/pr-createSkill(skill="pr-create")7. Merge via API
First attempt: merge using the GitHub API with flag:
--adminbash
gh pr merge {PR_NUMBER} --squash --adminIf merge fails with review requirement error (HTTP 405 or "approving review is required"):
- Save current review protection settings:
bash
gh api repos/{OWNER}/{REPO}/branches/main/protection/required_pull_request_reviews --jq '{dismiss_stale_reviews, require_code_owner_reviews, require_last_push_approval, required_approving_review_count}'- Temporarily remove review requirement:
bash
gh api repos/{OWNER}/{REPO}/branches/main/protection/required_pull_request_reviews -X DELETE- Merge:
bash
gh pr merge {PR_NUMBER} --squash --admin- Restore review protection using saved settings (use with JSON to preserve boolean types):
--input -
bash
gh api repos/{OWNER}/{REPO}/branches/main/protection/required_pull_request_reviews -X PATCH --input - <<'EOF'
{saved settings JSON}
EOFCRITICAL: Always restore branch protection, even if the merge fails. Use the saved settings from step 1 to restore the exact original configuration.
8. Re-enable Workflows
Re-enable all previously disabled workflows:
bash
gh api repos/{OWNER}/{REPO}/actions/workflows/{ID}/enable -X PUT9. Local Cleanup
bash
git checkout main && git pull && git branch -d {BRANCH_NAME}Safety
- Never skip CI for code changes that affect behavior
- Always re-enable workflows, even if merge fails
- Track disabled workflow IDs to ensure none are left disabled
- Appropriate for: renames, typos, config changes, documentation
- Not appropriate for: feature code, security changes, dependency updates