This directory contains GitHub-specific configuration files for the AI-Assisted IT Manager repository.
.github/
├── ISSUE_TEMPLATE/ # Issue templates for bug reports, features, etc.
│ ├── bug_report.md # Template for bug reports
│ ├── feature_request.md # Template for feature requests
│ ├── documentation.md # Template for documentation issues
│ └── config.yml # Issue template configuration
├── workflows/ # GitHub Actions workflows
│ ├── codeql.yml # CodeQL security analysis
│ ├── doc-version-validation.yml # Documentation validation
│ ├── dotnet-ci.yml # .NET CI build and test
│ ├── dotnet.yml # .NET build workflow
│ ├── pr-validation.yml # Pull request validation (NEW)
│ └── secret-scanning.yml # Secret scanning workflow
├── CODEOWNERS # Code ownership definitions
├── PULL_REQUEST_TEMPLATE.md # Template for pull requests
├── SECURITY.md # Security policy and vulnerability reporting
├── LABELS.md # Label management guide (NEW)
├── copilot-instructions.md # GitHub Copilot configuration
├── dependabot.yml # Dependabot configuration
└── settings.yml # Repository settings and branch protection (NEW)
Documents the recommended repository settings including:
- Branch protection rules for
masterandfeature/*branches - Required status checks
- Pull request review requirements
- Repository labels for issues and PRs
- Collaborator permissions
Note: This file documents the desired settings but must be applied manually via GitHub UI or API.
Comprehensive guide to the repository label system:
- Complete list of all labels with descriptions and colors
- Instructions on where labels are defined
- Multiple methods for creating labels (UI, CLI, API)
- Automated scripts for bulk label creation
- Best practices for using labels
- Troubleshooting guide for common label issues
See Also: scripts/create-labels.sh and scripts/Create-Labels.ps1 for automated label creation.
Automated validation workflow that runs on pull requests to:
- Validate PR title and description format
- Check branch naming conventions
- Detect breaking changes
- Monitor PR size and complexity
- Identify affected components
- Auto-suggest labels based on changed files
Template used when creating pull requests, including:
- Description and related issues
- Type of change checkboxes
- Testing checklist
- Documentation requirements
- Security and performance considerations
Contains templates for different types of issues:
Template for reporting bugs with sections for:
- Bug description
- Steps to reproduce
- Expected vs actual behavior
- Environment details
- Logs and error messages
Template for requesting new features with sections for:
- Feature description
- Problem statement
- Proposed solution
- Use cases and priority
Template for documentation issues with sections for:
- Affected documentation
- Current vs desired state
- Proposed changes
Configures issue template options and contact links:
- Discussion forum link
- Security advisory link
- Documentation link
The repository uses branch protection rules documented in settings.yml:
The master branch is treated as release-ready at all times.
- Required reviews: 1 approval from code owners (@KyleC69 or @OldSkoolzRoolz) - MANDATORY
- Required status checks: build-and-test, CodeQL, doc-validation
- Additional rules: Dismiss stale reviews, require conversation resolution, enforce for admins
- Restrictions: No force pushes, no deletions
- Required reviews: 1 approval (code owner not required)
- Required status checks: build-and-test
- Additional rules: More flexible for rapid development
- Restrictions: Force pushes allowed, deletions allowed
All pull requests must pass these automated checks before merging:
- Workflow:
dotnet-ci.yml - Purpose: Build solution and run tests
- Configuration: Release mode with warnings as errors
- Workflow:
codeql.yml - Purpose: Security vulnerability scanning
- Configuration: Security and quality queries
- Workflow:
doc-version-validation.yml - Purpose: Validate documentation version manifest
- Configuration: Checks for outdated docs
- Workflow:
pr-validation.yml - Purpose: Validate PR format and quality
- Configuration: Checks title, description, size, and affected components
Defines code ownership for different parts of the repository:
- Global owners: @KyleC69, @OldSkoolzRoolz
- Source directories: Require review from owners
- GitHub configuration: Requires owner review for security
- Documentation: Special attention for manifest changes
- dotnet-ci.yml: Main CI workflow (build + test on push/PR)
- dotnet.yml: Secondary build workflow
- pr-validation.yml: PR quality checks (NEW)
- codeql.yml: CodeQL security analysis (weekly + on PR)
- secret-scanning.yml: Scan for leaked secrets
- doc-version-validation.yml: Validate documentation versions
The repository uses a comprehensive labeling system documented in LABELS.md:
priority: critical,priority: high,priority: medium,priority: low
type: bug,type: feature,type: enhancement,type: documentationtype: refactoring,type: security
status: in progress,status: blocked,status: needs review,status: needs testing
component: core,component: client,component: securitycomponent: dashboard,component: ci/cd
dependencies,nuget,github-actionsgood first issue,help wanted,question
Important: Labels defined in settings.yml must be manually created in GitHub. Use the automated scripts:
- Bash:
./scripts/create-labels.sh - PowerShell:
.\scripts\Create-Labels.ps1
For detailed information, see LABELS.md.
- Go to repository Settings
- Navigate to specific sections:
- Branches → Configure branch protection rules
- Labels → Add/modify issue labels
- Collaborators → Manage access
- Apply settings from
settings.yml
Use GitHub CLI or API to apply settings programmatically:
# Example: Apply branch protection
gh api repos/OldSkoolzRoolz/ai-assisted-it-manager/branches/master/protection \
--method PUT \
--input settings.jsonConsider using automation apps:
- Probot Settings: Manages repository settings via config file
- Branch Protector: Automated branch protection management
The repository uses a comprehensive labeling system documented in LABELS.md.
Quick reference:
- Priority:
priority: critical/high/medium/low - Type:
type: bug/feature/enhancement/documentation/refactoring/security - Status:
status: in progress/blocked/needs review/needs testing - Component:
component: core/client/security/dashboard/ci/cd - Special:
dependencies,nuget,github-actions,good first issue,help wanted
Creating labels: Labels must be manually created in GitHub. Use automated scripts:
- Bash:
./scripts/create-labels.sh - PowerShell:
.\scripts\Create-Labels.ps1
For complete information including colors, descriptions, best practices, and troubleshooting, see LABELS.md.
When contributing to this repository:
- Follow branch naming conventions (see
docs/BRANCH_PROTECTION.md) - Use appropriate issue templates when reporting issues
- Fill out the PR template completely when submitting PRs
- Ensure all status checks pass before requesting review
- Address code owner feedback promptly
For more information, see:
This configuration should be reviewed and updated:
- When adding new workflows or automation
- When changing branch protection requirements
- When modifying contributor guidelines
- When updating security policies
Maintained By: @KyleC69, @OldSkoolzRoolz
Last Updated: 2025-12-17