-
-
Notifications
You must be signed in to change notification settings - Fork 2
12 Automation Features
Quick intro: Comprehensive automation suite that streamlines development workflows, enhances code quality, and provides intelligent repository management with minimal manual intervention.
Note: This page focuses on automation features and benefits. For technical implementation details, see Workflow Details.
- Overview
- Quick Start
- PR Automation Suite
- Security Automation
- Repository Maintenance
- Community Engagement
- Release Automation
- Efficiency Features
- Benefits Summary
- Troubleshooting
- Next Steps
- Related Pages
Zopio leverages 13 intelligent workflows to create a comprehensive automation ecosystem that:
- π― Streamlines development with intelligent PR management
- π‘οΈ Enhances security through automated scanning and vulnerability detection
- π§Ή Maintains repository health with automated housekeeping
- π₯ Improves contributor experience with welcoming and guidance systems
- β‘ Optimizes performance with smart concurrency controls and triggers
View all 13 workflows and their purposes
Workflow | Purpose | Triggers |
---|---|---|
pr-validation.yml | Unified PR checks (naming, size, format) | All PRs |
label.yml | Smart auto-labeling | PR open/edit |
pr-assignment.yml | Intelligent assignment | PR open |
ci.yml | Fast quality checks | Push & PR |
build.yml | Comprehensive validation | PR to main |
security.yml | Unified security suite | Push, PR, Daily |
welcome.yml | First-timer greetings | Issues & PRs |
stale.yml | Cleanup management | Daily schedule |
lock-threads.yml | Archive old threads | Daily schedule |
changelog.yml | Auto-generate notes | Push to main |
release.yml | Publish releases | Push to main |
docs.yml | Documentation checks | Docs changes |
setup-node.yml | Reusable Node setup | Called by others |
π Automation Impact Statistics
Metric | Before Automation | After Automation | Improvement |
---|---|---|---|
PR Review Time | 30-45 min | 15-20 min | 50-60% faster |
Security Issue Detection | Manual, weekly | Automated, daily | 7x more frequent |
Stale Issue Management | Manual cleanup | Automated lifecycle | 100% coverage |
Dependency Updates | Manual, monthly | Automated, weekly | 4x more frequent |
GitHub Actions Usage | High resource usage | Optimized with concurrency | 40-50% reduction |
π Get started with automation in 3 steps
# These actions happen automatically when you:
Create PR β Labeling, assignment, validation, security scan
Push to main β Release automation, security scan, changelog
Daily at 2AM β Stale management, security scan, dependency check
# View current automation status
gh workflow list # See all workflows
gh run list --limit 10 # Recent workflow runs
gh pr list --label="automated" # Auto-managed PRs
- β Use conventional commit messages for automatic labeling
- β Follow branch naming conventions for automatic assignment
- β Let automation handle routine tasks while you focus on coding
π€ Intelligent systems that transform PR management from manual to magical
β±οΈ Time Savings Calculator
Manual Task | Time Before | Time After | Your Benefit |
---|---|---|---|
Labeling PRs | 2-3 min | 0 sec | β¨ Auto-labeled on creation |
Assigning reviewers | 1-2 min | 0 sec | β¨ Smart assignment by code area |
Validating format | 5-10 min | Instant | β¨ Real-time feedback |
Finding reviewers | 3-5 min | 0 sec | β¨ CODEOWNERS integration |
Total saved per PR: ~15-20 minutes π
π·οΈ Intelligent Auto-Labeling System
Our sophisticated multi-source labeling system automatically categorizes PRs using:
flowchart TD
PR[Pull Request] --> LABEL{Label Sources}
LABEL --> PATH[Path-based<br/>labeler.yml]
LABEL --> TITLE[Title parsing<br/>Conventional commits]
LABEL --> PRIORITY[Priority keywords<br/>critical, urgent]
LABEL --> BREAKING[Breaking changes<br/>! detection]
LABEL --> COMMUNITY[Contributor status<br/>Org membership]
PATH --> APPLY[Apply Labels]
TITLE --> APPLY
PRIORITY --> APPLY
BREAKING --> APPLY
COMMUNITY --> APPLY
Category | Trigger | Examples |
---|---|---|
π’ Component | File paths |
frontend , backend , database , documentation
|
π¨ Type | PR title |
type: feature , type: fix , type: docs , type: chore
|
β‘ Priority | Keywords |
priority: critical , priority: high
|
Content analysis |
breaking change , community contribution
|
π― Smart PR Assignment
Intelligent assignment system based on code ownership and team expertise:
flowchart LR
PR[PR Created] --> CHECK{Check Files}
CHECK --> AUTH[Auth packages?]
CHECK --> DB[Database?]
CHECK --> CORE[Core packages?]
CHECK --> SEC[Security files?]
AUTH --> TEAM[Assign Core Team]
DB --> TEAM
CORE --> TEAM
SEC --> TEAM
PR --> AUTHOR[Assign to Author]
- β PR author always assigned for tracking
- β Team reviewers based on changed files
- β Respects manual assignments
- β Skips draft PRs for reviewers
β PR Validation Framework
Comprehensive validation suite ensures PR quality before review:
flowchart TB
SUBMIT[PR Submitted] --> VAL{Validation Checks}
VAL --> BRANCH[Branch Naming]
VAL --> TITLE[Title Format]
VAL --> SIZE[Size Limits]
VAL --> BREAK[Breaking Changes]
BRANCH --> RESULT{Pass?}
TITLE --> RESULT
SIZE --> RESULT
BREAK --> RESULT
RESULT -->|Yes| READY[Ready for Review]
RESULT -->|No| COMMENT[Add Comment<br/>with Guidance]
Check | Requirements | Failure Action |
---|---|---|
Branch Naming |
feat/* , fix/* , etc. |
Comment with patterns |
PR Title | Semantic format | Error with examples |
Size Limits | <5000 lines, <100 files | Block with explanation |
Breaking Changes | Documentation required | Request description |
π Pro Tip: All validation runs in a single workflow for faster feedback!
π€ Self-healing repository management that keeps your workspace clean and organized
ποΈ Stale Item Management
Automated lifecycle management for issues and PRs prevents backlog bloat:
stateDiagram-v2
[*] --> Active: New Issue/PR
Active --> Inactive: No activity
Inactive --> Stale: 60d (issues) / 30d (PRs)
Stale --> Warning: Bot comments
Warning --> Closed: 14d (issues) / 7d (PRs)
Warning --> Active: User responds
Closed --> Locked: 90d (issues) / 60d (PRs)
- π Security items
- π Pinned items
- π Good first issues
- β‘ High priority items
- π¬ Blocked discussions
π Thread Locking Policy
Prevents necroposting while preserving historical context:
- π Issues: 90 days post-closure
- π PRs: 60 days post-closure
Type | Message |
---|---|
Issues | "This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs." |
PRs | "This pull request has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs or a new PR for further contributions." |
π Creating a welcoming environment that turns first-time visitors into long-term contributors
π First-Time Contributor Welcome
Personalized welcome system that guides new contributors:
flowchart LR
NEW[New Contributor] --> TYPE{Contribution Type}
TYPE --> ISSUE[First Issue]
TYPE --> PR[First PR]
ISSUE --> WELCOME1[Issue Welcome<br/>+ Resources]
PR --> WELCOME2[PR Welcome<br/>+ Guidelines]
- π¬ Personal @mention and greeting
- π Contributing guidelines link
- π Resource recommendations for getting started
- πͺ Encouragement message with next steps
- π― Tailored content for issues vs PRs
π See also: Welcome Messages for technical implementation
π Community Contribution Detection
Automatic identification of external contributors:
// Simplified detection logic
try {
await checkOrgMembership(author);
// Member - no label
} catch (error) {
if (error.status === 404) {
// Non-member - add community label
addLabel('community contribution');
}
}
π¨ Result: External contributions automatically get the
community contribution
label for recognition!
π¦ Zero-touch release pipeline from commit to production deployment
π Changelog Generation
Automated changelog from conventional commits:
flowchart LR
COMMITS[Conventional<br/>Commits] --> ANALYZE[Analyze Types]
ANALYZE --> VERSION[Determine<br/>Version Bump]
VERSION --> CHANGELOG[Generate<br/>Changelog]
CHANGELOG --> TAG[Create Tag]
TAG --> RELEASE[GitHub Release]
-
fix:
β Patch (1.0.x) - Bug fixes -
feat:
β Minor (1.x.0) - New features -
feat!:
orBREAKING CHANGE
β Major (x.0.0) - Breaking changes
- GitHub Release with changelog notes
- NPM Package auto-published
- Build Assets attached to release
- Team Notifications via GitHub & email
βοΈ Release Pipeline
Fully automated release process with zero manual intervention:
Step | Action | Automation |
---|---|---|
1οΈβ£ | Trigger | Push to main (without ci skip ) |
2οΈβ£ | Version | Auto-determined from commits |
3οΈβ£ | Changelog | Generated and committed |
4οΈβ£ | Tag | Created with version |
5οΈβ£ | Release | GitHub release with notes |
6οΈβ£ | Publish | NPM package deployment |
π« Magic: From code push to published package in under 5 minutes!
π Multi-layered security automation that never sleeps
π― Quick Security Overview
Continuous security scanning with multiple detection layers:
flowchart TB
subgraph "Scheduled Scans"
DAILY[Daily 2 AM UTC] --> SCAN
end
subgraph "Event-Driven Scans"
PUSH[Code Push] --> SCAN
PR[Pull Request] --> SCAN
end
SCAN{Security Suite} --> RESULTS[Security Tab]
SCAN --> ALERTS[GitHub Alerts]
SCAN --> BLOCK[Block if Critical]
- π΅οΈββοΈ CodeQL Analysis - Code vulnerability scanning
- π¦ Dependency Scanning - Known CVE detection
- π Secret Detection - Exposed credentials prevention
- π Automated Updates - Security patch management
π For complete security details: See π‘οΈ Security Framework
- Container scanning for Docker images
- SARIF reporting to GitHub Security tab
- Email alerts for high-severity findings
- Auto-blocking for critical vulnerabilities
π Performance optimizations that deliver 40-50% reduction in GitHub Actions usage
π― Concurrency Management
Smart concurrency control prevents resource waste and speeds up feedback:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
- Group Creation: Each workflow-branch combo gets a unique group
- New Push Detection: When you push new commits
- Auto-Cancellation: Outdated runs stop immediately
- Latest Runs: Only the newest changes are validated
- Resource Savings: No wasted compute on stale code
- β Cancels outdated runs when new commits pushed
- β Preserves latest changes for immediate feedback
- β Reduces queue time by eliminating backlog
- β Saves compute resources and costs
π Path-based Triggers
Intelligent triggering based on file changes saves resources:
paths-ignore:
- '**/*.md'
- 'docs/**'
- 'LICENSE'
Component-based triggers
# From labeler.yml - Auto-labels based on paths
'package: auth':
- packages/auth/**/*
- packages/auth-*/**/*
'frontend':
- apps/web/**/*
- '**/*.tsx'
- '**/*.css'
'backend':
- apps/api/**/*
- packages/database/**/*
- β Skip unnecessary builds for docs-only changes
- β Faster feedback on code changes
- β Resource optimization for meaningful work
- β Focus on code changes that matter
π§ Enterprise-grade features that set Zopio apart
πΏ Multi-Branch Operations
When creating hotfixes, automation ensures:
- β
Merge to
main
for immediate deployment - β
Automatic backport to
develop
- β Conflict detection and alerts
- β Maintains version consistency
flowchart LR
HF[Hotfix Branch] --> M1[Merge to Main]
HF --> M2[Merge to Develop]
M1 --> D[Deploy]
M2 --> S[Sync]
π§ͺ Staging E2E Automation
When code reaches staging:
- Deployment trigger activates E2E suite
- Playwright tests run against staging URL
- Visual regression checks for UI changes
- Performance metrics collected
- Auto-rollback on critical failures
π Conditional Workflow Execution
# Example: Only run expensive checks when needed
if: |
contains(github.event.pull_request.labels.*.name, 'needs-benchmark') ||
contains(github.event.head_commit.message, '[benchmark]')
Common Conditions:
- π·οΈ Label-based triggers
- π Commit message flags
- π€ Author permissions
- π File change patterns
π Quantified impact of our automation suite on development workflow
π Time & Quality Impact
Feature | β±οΈ Time Saved | π¨ Quality Impact | π° Value |
---|---|---|---|
Auto-labeling | 2-3 min/PR | Consistent categorization | High |
PR validation | 5-10 min/PR | Enforced standards | Critical |
Auto-assignment | 1-2 min/PR | Faster reviews | Medium |
Stale management | 30 min/week | Clean backlog | High |
Security scanning | 2 hours/week | Early detection | Critical |
Release automation | 30 min/release | Consistent process | High |
π― Quick Reference Card
When You... | Automation Response |
---|---|
π Create PR | β Labels, assignment, validation, security scan |
π Push to main | β Release, changelog, security scan |
π Daily at 2AM | β Stale cleanup, security scan, dependency check |
π First contribution | β Welcome message, guidance, community label |
β Documentation requirement, special handling |
π§ Common Issues & Solutions
Problem: Expected automation didn't run Solution:
- Check if paths-ignore filters excluded your changes
- Verify branch naming follows conventions
- Ensure required secrets are configured
Problem: PR not getting automatic labels Solution:
- Use conventional commit format in PR title
- Check if files match labeler.yml patterns
- Verify labeler workflow has necessary permissions
Problem: Security workflow blocking PRs Solution:
- Review security scan results in Security tab
- Fix identified vulnerabilities before merging
- Add exceptions for false positives (with approval)
Problem: Important issues marked as stale Solution:
- Add
pinned
label to prevent stale marking - Use
security
label for security-related items - Comment on issue to reset stale timer
π Take Action
- Read Workflow Details for technical implementation
- View Workflow Architecture for system design
- Check Pipeline Overview for CI/CD details
- Review Best Practices for optimization tips
- Modify
.github/labeler.yml
for custom labels - Adjust
.github/workflows/
files for your needs - Configure Dependabot in
.github/dependabot.yml
- Review GitHub Actions usage in Settings
- Track automation effectiveness with metrics
- Optimize workflows based on usage patterns
Page | Purpose | Why Read |
---|---|---|
π§ Workflow Details | Technical implementation | Configuration deep-dive |
ποΈ Workflow Architecture | System design | How workflows interact |
π Pipeline Overview | CI/CD pipeline | Build & deploy process |
π Triggers Matrix | Trigger reference | When workflows run |
π‘οΈ Security Framework | Security details | Complete security guide |
π Best Practices | Optimization tips | Performance tuning |