| name | github-workflow-automation |
| description | Automate Git commits, pull requests, releases, and CI/CD workflows |
github-workflow-automation
Automate Git commits, pull requests, releases, and CI/CD workflows
Overview
Automate GitHub workflows including intelligent auto-commits, CI/CD pipelines, automated releases, and pull request management. Saves time on repetitive Git operations and ensures consistent workflow practices.
Time Saved: ~20 minutes per workflow setup
Complexity: Medium
Prerequisites: Git, GitHub CLI (gh), Node.js
When to Use
- Automating Git commits and pushes
- Setting up CI/CD pipelines
- Creating automated releases
- Managing pull requests programmatically
- Standardizing team workflows
Features
- Auto-Commit - Intelligent commit message generation and push
- CI/CD Templates - Ready-to-use GitHub Actions workflows
- Release Automation - Automated versioning and releases
- Workflow Patterns - Best practices and common patterns
Quick Start
1. Auto-Commit and Push
python3 /home/ubuntu/skills/github-workflow-automation/scripts/auto_commit.py /path/to/repo
2. Auto-Commit with Custom Message
python3 /home/ubuntu/skills/github-workflow-automation/scripts/auto_commit.py /path/to/repo "Add new feature"
3. Set Up CI/CD Workflow
cp /home/ubuntu/skills/github-workflow-automation/templates/ci-cd.yml /path/to/repo/.github/workflows/ci-cd.yml
How It Works
Auto-Commit Script
Phase 1: Detection
- Checks for git repository
- Detects changed files
- Analyzes file types
Phase 2: Message Generation
- Generates intelligent commit message based on changes
- Or uses custom message if provided
Phase 3: Commit and Push
- Stages all changes (
git add .)
- Commits with generated/custom message
- Pushes to current branch
Usage Examples
Example 1: Auto-Commit After Making Changes
python3 /home/ubuntu/skills/github-workflow-automation/scripts/auto_commit.py ~/my-project
Example 2: Custom Commit Message
python3 /home/ubuntu/skills/github-workflow-automation/scripts/auto_commit.py ~/my-project "Fix critical bug in authentication"
Example 3: Set Up CI/CD Pipeline
mkdir -p ~/my-project/.github/workflows
cp /home/ubuntu/skills/github-workflow-automation/templates/ci-cd.yml ~/my-project/.github/workflows/ci-cd.yml
python3 /home/ubuntu/skills/github-workflow-automation/scripts/auto_commit.py ~/my-project "Add CI/CD workflow"
Intelligent Commit Messages
The auto-commit script generates context-aware commit messages:
| File Types Changed | Generated Message |
|---|
| Only .md files | "Update documentation" |
| .py files | "Update Python code" |
| .js or .ts files | "Update JavaScript/TypeScript code" |
| .json files | "Update configuration" |
| .css or .scss files | "Update styles" |
| Single file | "Update {filename}" |
| Multiple files | "Update {count} files" |
CI/CD Workflow Template
Features
- ✅ Runs on push to main/develop
- ✅ Runs on pull requests
- ✅ Linting
- ✅ Testing
- ✅ Building
- ✅ Automatic deployment to production
Customization
Edit .github/workflows/ci-cd.yml:
- uses: actions/setup-node@v3
with:
node-version: '20'
env:
DATABASE_URL: ${{ secrets.DATABASE_URL }}
API_KEY: ${{ secrets.API_KEY }}
- name: Deploy to production
run: |
npm run deploy # Your deploy command
Release Workflow Template
Features
- ✅ Triggers on version tags (v*)
- ✅ Creates GitHub release
- ✅ Builds artifacts
- ✅ Uploads build to release
Usage
git tag v1.0.0
git push --tags
GitHub CLI Integration
Create Pull Request
gh pr create --title "Add new feature" --body "Description of changes"
Merge Pull Request
gh pr merge <pr-number> --squash
Create Release
gh release create v1.0.0 --title "Version 1.0.0" --notes "Release notes"
View Workflow Runs
gh run list
gh run view <run-id>
Best Practices
1. Commit Messages
- Use present tense ("Add feature" not "Added feature")
- Be descriptive but concise
- Reference issues when applicable
2. Branch Strategy
main - Production-ready code
develop - Development branch
feature/* - Feature branches
hotfix/* - Urgent fixes
3. CI/CD
- Run tests on every push
- Deploy only from main branch
- Use caching for dependencies
- Set up notifications
4. Secrets Management
- Store sensitive data in GitHub Secrets
- Never commit secrets to repository
- Use environment-specific secrets
5. Workflow Organization
- One workflow per purpose
- Use descriptive names
- Document workflow purpose
- Keep workflows DRY
Troubleshooting
Auto-Commit Fails
Problem: "Not a git repository"
cd /path/to/project
git init
git remote add origin <url>
Problem: "Failed to push"
git pull origin main --rebase
Workflow Not Running
Problem: Workflow file not detected
Problem: Workflow syntax error
Permission Denied
Problem: "Permission denied" when pushing
gh auth status
gh auth login
Advanced Usage
Conditional Workflows
on:
push:
paths:
- 'src/**'
- '!**/*.md'
Matrix Testing
strategy:
matrix:
node-version: [16, 18, 20]
os: [ubuntu-latest, windows-latest]
Reusable Workflows
on:
workflow_call:
inputs:
environment:
required: true
type: string
Files
Scripts
scripts/auto_commit.py - Intelligent auto-commit and push
Templates
templates/ci-cd.yml - Complete CI/CD pipeline
templates/release.yml - Automated release workflow
References
references/workflow_patterns.md - Patterns and best practices
Related Skills
- deployment-automation - Deploy after CI/CD passes
- error-monitoring-setup - Monitor deployed applications
- testing-framework - Generate tests for CI/CD
Workflow
1. User makes changes to code
2. User runs auto_commit.py
3. Script detects changes and generates message
4. Script commits and pushes
5. GitHub Actions triggers CI/CD
6. Tests run automatically
7. If tests pass, deploy to production
Success Criteria
✅ Changes committed automatically
✅ Intelligent commit messages generated
✅ CI/CD pipeline runs on push
✅ Tests execute successfully
✅ Deployment automated
Time Savings
Manual Git Workflow: ~5 minutes per commit
- Check status: 30 sec
- Stage files: 30 sec
- Write commit message: 2 min
- Commit: 30 sec
- Push: 30 sec
- Check CI/CD: 1 min
With This Skill: ~30 seconds
- Run auto_commit.py: 30 sec
Savings: ~4.5 minutes per commit
Daily Savings (10 commits): ~45 minutes
Future Enhancements
- Conventional commits support
- Automatic changelog generation
- Semantic versioning automation
- PR template generation
- Code review automation
- Merge conflict resolution
- Branch protection rules setup
Created: February 10, 2026
Status: Production Ready
Tested: GitHub, GitHub Actions, GitHub CLI