Release Approval
Approval workflow templates with GitHub Actions and Slack integration for multi-stakeholder release gating. Use when setting up approval workflows, configuring stakeholder gates, automating approval notifications, integrating Slack webhooks, requesting release approvals, tracking approval status, or when user mentions release approval, stakeholder sign-off, approval gates, multi-stage approvals, or release gating.
$ 설치
git clone https://github.com/vanman2024/dev-lifecycle-marketplace /tmp/dev-lifecycle-marketplace && cp -r /tmp/dev-lifecycle-marketplace/plugins/versioning/skills/release-approval ~/.claude/skills/dev-lifecycle-marketplace// tip: Run this command in your terminal to install the skill
name: Release Approval description: Approval workflow templates with GitHub Actions and Slack integration for multi-stakeholder release gating. Use when setting up approval workflows, configuring stakeholder gates, automating approval notifications, integrating Slack webhooks, requesting release approvals, tracking approval status, or when user mentions release approval, stakeholder sign-off, approval gates, multi-stage approvals, or release gating.
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
Repository
