Release Approval
CRITICAL: The description field above controls when Claude auto-loads this skill.
Overview
Provides comprehensive patterns, templates, and scripts for multi-stakeholder release approval workflows including GitHub Actions integration, Slack notifications, approval gate configuration, and status tracking automation.
Instructions
1. Approval Workflow Architecture
Understand Approval Gate Patterns:
- Sequential Approvals: Stakeholders approve in order (dev → QA → security → release)
- Parallel Approvals: All stakeholders review simultaneously, release when all approve
- Conditional Approvals: Requirements change based on change scope (breaking vs patch)
- Hybrid Approvals: Some gates parallel, others sequential
Design Workflow:
- Identify required stakeholder groups (technical lead, product owner, QA, security, compliance)
- Define approval thresholds (required vs optional approvals)
- Set timeout and escalation policies
- Document veto power and override conditions
2. GitHub Actions Workflow Setup
Configure Approval Workflows:
- Use
templates/github-actions-approval.ymlfor basic approval workflow - Use
templates/github-actions-approval-slack.ymlfor Slack-integrated workflow - Configure environment protection rules for production
- Set required reviewers in repository settings
Workflow Triggers:
- Manual workflow dispatch for on-demand approvals
- Tag push events for automatic approval requests
- Pull request reviews for pre-merge approvals
- Issue comments for approval tracking
3. Approval Gate Configuration
Setup Approval Gates:
- Use
templates/approval-gates.ymlto define stakeholder groups and requirements - Use
scripts/setup-approval-gates.shto initialize gate configuration - Configure approval thresholds per gate (required count, optional count)
- Define approval dependencies (QA requires dev approval first)
Configuration Structure:
approval_gates:
- stage: development
approvers: ["@dev-team-lead", "@tech-lead"]
required: 2
timeout_hours: 24
- stage: qa
approvers: ["@qa-lead"]
required: 1
depends_on: ["development"]
- stage: security
approvers: ["@security-team"]
required: 1
veto_power: true
- stage: release
approvers: ["@release-manager"]
required: 1
depends_on: ["development", "qa", "security"]
4. Slack Notification Integration
Setup Slack Webhooks:
- Use
scripts/setup-slack-webhook.shto configure Slack integration - Use
templates/slack-webhook-config.jsonfor webhook configuration template - Store webhook URLs in GitHub Secrets (never hardcode)
- Use
scripts/notify-slack.shfor sending approval notifications
Notification Types:
- Approval Requested: Notify stakeholders when approval needed
- Approval Granted: Confirm when stakeholder approves
- Approval Denied: Alert when stakeholder rejects with reason
- Approval Timeout: Escalate when approval times out
- Approval Complete: Celebrate when all approvals obtained
5. Requesting and Tracking Approvals
Request Approvals:
- Use
scripts/request-approval.shto send approval requests - Create GitHub issue for approval tracking
- Request PR reviews from stakeholders
- Send Slack notifications to stakeholder channels
Track Approval Status:
- Use
scripts/check-approval-status.shto monitor approval progress - Update approval tracking issue as approvals come in
- Generate approval audit trail
- Store approval records in
.github/releases/approvals/
6. Approval Automation Patterns
Automate Common Scenarios:
Auto-Approve for Non-Breaking Changes:
- Patch releases with docs-only changes
- Dependency updates with passing tests
- Automated security patches
Escalation on Timeout:
- Send reminder notifications after grace period
- Escalate to backup approvers
- Alert release manager for intervention
Conditional Approval Requirements:
- Breaking changes require additional security review
- Feature releases require product owner approval
- Hotfix releases have expedited approval process
7. Approval Audit Trail
Document Approvals:
- Use
scripts/generate-approval-audit.shto create audit records - Store approval records in
.github/releases/approvals/v{version}.json - Include: approver name, timestamp, decision, comments, justification
- Commit approval records to git for permanent audit trail
Audit Record Structure:
{
"version": "1.2.3",
"requested_at": "2025-01-15T10:00:00Z",
"completed_at": "2025-01-15T14:30:00Z",
"approvals": [
{
"stage": "development",
"approver": "tech-lead",
"decision": "approved",
"timestamp": "2025-01-15T11:00:00Z",
"comments": "All tests passing, ready for QA"
},
{
"stage": "qa",
"approver": "qa-lead",
"decision": "approved_with_conditions",
"timestamp": "2025-01-15T13:00:00Z",
"comments": "Minor UI issue logged, non-blocking"
}
],
"final_decision": "approved",
"conditions": ["Monitor UI issue #1234 post-release"]
}
Available Scripts
- setup-approval-gates.sh: Initialize approval gate configuration with stakeholder groups
- request-approval.sh: Send approval requests to stakeholders via GitHub and Slack
- check-approval-status.sh: Monitor approval progress and generate status reports
- notify-slack.sh: Send Slack notifications for approval events
- setup-slack-webhook.sh: Configure Slack webhook integration with GitHub Actions
- generate-approval-audit.sh: Create comprehensive approval audit records
- escalate-approval.sh: Handle approval timeouts with escalation logic
Available Templates
- github-actions-approval.yml: GitHub Actions workflow for approval orchestration
- github-actions-approval-slack.yml: GitHub Actions workflow with Slack integration
- approval-gates.yml: Approval gate configuration with stakeholder groups
- slack-webhook-config.json: Slack webhook configuration template (placeholders only)
- approval-issue-template.md: GitHub issue template for approval tracking
- approval-audit-template.json: JSON template for approval audit records
- environment-protection-rules.md: GitHub environment protection rules guide
Available Examples
- basic-approval-workflow.md: Simple sequential approval workflow example
- parallel-approval-gates.md: Multi-stakeholder parallel approval pattern
- conditional-approval.md: Change-scope-based conditional approval requirements
- slack-integration-complete.md: Full Slack webhook integration example
- automated-gating.md: Auto-approval and escalation patterns
- approval-audit-trail.md: Complete audit trail generation example
Requirements
- GitHub CLI (
gh) installed and authenticated - GitHub repository with write access
- GitHub Actions enabled
- Slack workspace with webhook permissions (optional)
- Repository secrets configured for sensitive data
- Stakeholder GitHub usernames documented
- Clear approval policies defined
Security Considerations
CRITICAL: Always use placeholders for sensitive data
- ❌ Never hardcode Slack webhook URLs in code or configs
- ✅ Store webhook URLs in GitHub Secrets:
SLACK_WEBHOOK_URL - ✅ Use placeholders in templates:
https://hooks.slack.com/services/YOUR_WEBHOOK_HERE - ❌ Never commit
.envfiles with real credentials - ✅ Create
.env.examplewith placeholder values - ✅ Document how to obtain webhooks in README
Environment Variable Pattern:
# .env.example
SLACK_WEBHOOK_URL=https://hooks.slack.com/services/YOUR_WEBHOOK_HERE
GITHUB_TOKEN=ghp_your_github_token_here
APPROVAL_TIMEOUT_HOURS=24
Progressive Disclosure
For additional reference material:
- Read
examples/basic-approval-workflow.mdfor quick start - Read
examples/parallel-approval-gates.mdfor multi-stakeholder patterns - Read
examples/slack-integration-complete.mdfor webhook setup - Read
examples/automated-gating.mdfor automation patterns - Read
templates/github-actions-approval.ymlfor workflow implementation
Integration with Commands and Agents
Commands that use this skill:
/versioning:approve-release- Orchestrates approval workflow using these patterns
Agents that use this skill:
approval-workflow-manager- Uses templates and scripts for approval orchestration
Workflow:
- User runs
/versioning:approve-release <version> - Command invokes
approval-workflow-manageragent - Agent loads this skill for templates and scripts
- Agent uses
request-approval.shto notify stakeholders - Agent uses
check-approval-status.shto monitor progress - Agent uses
generate-approval-audit.shto document approvals
Skill Location: plugins/versioning/skills/release-approval/SKILL.md Version: 1.0.0
微信扫一扫