From 215a35e0f10468794aac1767e6953d53a086a34b Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 1 Jul 2025 21:07:59 +0000 Subject: [PATCH 1/2] Initial plan From abb51bef3cb75c717decf44f38a20982ac10f0f4 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 1 Jul 2025 21:13:04 +0000 Subject: [PATCH 2/2] Add comprehensive GitHub Copilot + MCP Server organization templates and configuration Co-authored-by: wesship <37167955+wesship@users.noreply.github.com> --- .github/ISSUE_TEMPLATE/bug_report.yml | 97 ++++++ .github/ISSUE_TEMPLATE/feature_request.yml | 118 +++++++ .github/PULL_REQUEST_TEMPLATE.md | 56 ++++ README.md | 342 +++++++++++++++++++++ copilot-agent-profile.json | 245 +++++++++++++++ mcp-server.config.yaml | 200 ++++++++++++ 6 files changed, 1058 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/bug_report.yml create mode 100644 .github/ISSUE_TEMPLATE/feature_request.yml create mode 100644 .github/PULL_REQUEST_TEMPLATE.md create mode 100644 README.md create mode 100644 copilot-agent-profile.json create mode 100644 mcp-server.config.yaml diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 0000000..8e8684a --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,97 @@ +name: ๐Ÿ› Bug Report +description: Create a report to help us improve +title: "[BUG] " +labels: ["bug", "needs-triage"] +assignees: [] + +body: + - type: markdown + attributes: + value: | + Thanks for taking the time to fill out this bug report! Please provide as much detail as possible to help us investigate and resolve the issue. + + - type: textarea + id: description + attributes: + label: Bug Description + description: A clear and concise description of what the bug is. + placeholder: Describe the bug... + validations: + required: true + + - type: textarea + id: steps-to-reproduce + attributes: + label: Steps to Reproduce + description: Steps to reproduce the behavior + placeholder: | + 1. Go to '...' + 2. Click on '....' + 3. Scroll down to '....' + 4. See error + validations: + required: true + + - type: textarea + id: expected-behavior + attributes: + label: Expected Behavior + description: A clear and concise description of what you expected to happen. + placeholder: What should have happened? + validations: + required: true + + - type: textarea + id: actual-behavior + attributes: + label: Actual Behavior + description: A clear and concise description of what actually happened. + placeholder: What actually happened? + validations: + required: true + + - type: textarea + id: system-info + attributes: + label: System Information + description: Please provide details about your environment + placeholder: | + - OS: [e.g. Windows 10, macOS 13.1, Ubuntu 22.04] + - Browser: [e.g. Chrome 108, Firefox 107, Safari 16.1] + - Version: [e.g. v1.2.3] + - Node.js version: [e.g. 18.12.1] + - Package manager: [e.g. npm 8.19.2, yarn 1.22.19] + validations: + required: true + + - type: textarea + id: logs + attributes: + label: Relevant Log Output + description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks. + render: shell + + - type: textarea + id: screenshots + attributes: + label: Screenshots/Videos + description: If applicable, add screenshots or videos to help explain your problem. + + - type: textarea + id: additional-context + attributes: + label: Additional Context + description: Add any other context about the problem here, such as related issues, workarounds, or potential solutions you've tried. + + - type: checkboxes + id: verification + attributes: + label: Verification + description: Please confirm the following + options: + - label: I have searched for existing issues that describe the same problem + required: true + - label: I have provided all the information requested above + required: true + - label: I am using the latest version of the software + required: false \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml new file mode 100644 index 0000000..41e2186 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -0,0 +1,118 @@ +name: โœจ Feature Request +description: Suggest an idea for this project +title: "[FEATURE] " +labels: ["enhancement", "needs-triage"] +assignees: [] + +body: + - type: markdown + attributes: + value: | + Thanks for taking the time to suggest a new feature! Please provide as much detail as possible to help us understand your needs and implement the best solution. + + - type: textarea + id: problem-statement + attributes: + label: Problem Statement + description: Is your feature request related to a problem? Please describe the problem you're trying to solve. + placeholder: I'm always frustrated when... + validations: + required: true + + - type: textarea + id: motivation + attributes: + label: Motivation + description: Why is this feature important? What use cases does it enable? + placeholder: This feature would help users to... + validations: + required: true + + - type: textarea + id: proposed-solution + attributes: + label: Proposed Solution + description: Describe the solution you'd like to see implemented. + placeholder: I would like to see... + validations: + required: true + + - type: textarea + id: detailed-design + attributes: + label: Detailed Design (Optional) + description: If you have a specific implementation in mind, please describe it here. + placeholder: | + - API changes: + - UI changes: + - Configuration options: + - Dependencies: + + - type: textarea + id: alternatives + attributes: + label: Alternatives Considered + description: Describe any alternative solutions or features you've considered. + placeholder: Alternative approaches could be... + validations: + required: true + + - type: textarea + id: examples + attributes: + label: Examples/Mockups + description: If applicable, provide examples, mockups, or references to similar implementations. + + - type: dropdown + id: priority + attributes: + label: Priority + description: How important is this feature to you? + options: + - Low - Nice to have + - Medium - Would improve workflow + - High - Critical for adoption + - Critical - Blocking current work + validations: + required: true + + - type: dropdown + id: complexity + attributes: + label: Implementation Complexity (Your Assessment) + description: Based on your understanding, how complex do you think this feature would be to implement? + options: + - Simple - Minor changes + - Medium - Moderate effort + - Complex - Significant changes + - Very Complex - Major architectural changes + - Unknown + + - type: textarea + id: acceptance-criteria + attributes: + label: Acceptance Criteria + description: What specific criteria must be met for this feature to be considered complete? + placeholder: | + - [ ] Criterion 1 + - [ ] Criterion 2 + - [ ] Criterion 3 + + - type: textarea + id: additional-context + attributes: + label: Additional Context + description: Add any other context, links, or references about the feature request here. + + - type: checkboxes + id: verification + attributes: + label: Verification + description: Please confirm the following + options: + - label: I have searched for existing feature requests that describe the same functionality + required: true + - label: I have provided a clear description of the problem and proposed solution + required: true + - label: I understand this is a request and not a guarantee of implementation + required: true \ No newline at end of file diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..d822a82 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,56 @@ +# Pull Request + +## Description + + + +## Related Issues + +- Related to: +- Closes: + +## Type of Change + +- [ ] ๐Ÿ› Bug fix (non-breaking change that fixes an issue) +- [ ] โœจ New feature (non-breaking change that adds functionality) +- [ ] ๐Ÿ’ฅ Breaking change (fix or feature that would cause existing functionality to not work as expected) +- [ ] ๐Ÿ“ Documentation update +- [ ] ๐ŸŽจ Code style update (formatting, renaming) +- [ ] โ™ป๏ธ Refactoring (no functional changes) +- [ ] โšก Performance improvement +- [ ] ๐Ÿ”ง Configuration change +- [ ] ๐Ÿงช Test addition or update + +## Testing + +- [ ] I have tested these changes locally +- [ ] I have added tests that prove my fix is effective or that my feature works +- [ ] New and existing unit tests pass locally with my changes +- [ ] I have checked my code doesn't introduce any linting errors + +### Test Cases + +1. +2. + +## Screenshots/Recordings + + + +## Deployment Notes + + + +## Reviewer Checklist + +- [ ] Code follows the project's coding standards and conventions +- [ ] Changes are well-documented and self-explanatory +- [ ] All tests pass and new tests are added where appropriate +- [ ] Security implications have been considered +- [ ] Performance impact has been evaluated +- [ ] Breaking changes are properly documented +- [ ] Documentation has been updated if necessary +- [ ] The PR title and description are clear and accurate + +## Additional Context + diff --git a/README.md b/README.md new file mode 100644 index 0000000..75b0b14 --- /dev/null +++ b/README.md @@ -0,0 +1,342 @@ +# wesship Organization - GitHub Copilot + MCP Server Workflows + +Welcome to the wesship organization! This repository contains organization-wide templates, configurations, and workflows designed to enhance development productivity through GitHub Copilot and MCP (Model Context Protocol) Server integration. + +## ๐Ÿš€ Quick Start + +### Prerequisites + +Before you begin, ensure you have the following installed and configured: + +- **GitHub Account** with access to wesship organization +- **GitHub Copilot** subscription (Individual or Business) +- **Git** (version 2.20 or higher) +- **Node.js** (version 16 or higher) - for npm-based projects +- **Visual Studio Code** or **GitHub Codespaces** (recommended) + +### Required Extensions + +Install these VS Code extensions for the optimal development experience: + +1. **GitHub Copilot** (`GitHub.copilot`) +2. **GitHub Copilot Chat** (`GitHub.copilot-chat`) +3. **GitHub Pull Requests and Issues** (`GitHub.vscode-pull-request-github`) +4. **GitLens** (`eamodio.gitlens`) +5. **MCP Client** (if available) - for MCP server integration + +```bash +# Install via VS Code CLI +code --install-extension GitHub.copilot +code --install-extension GitHub.copilot-chat +code --install-extension GitHub.vscode-pull-request-github +code --install-extension eamodio.gitlens +``` + +## ๐Ÿ”ง Setup Guide + +### 1. Authentication Setup + +#### GitHub Authentication +```bash +# Configure Git with your GitHub credentials +git config --global user.name "Your Name" +git config --global user.email "your.email@wesship.com" + +# Set up GitHub CLI (optional but recommended) +gh auth login +``` + +#### GitHub Copilot Authentication +1. Open VS Code +2. Sign in to GitHub when prompted by Copilot +3. Verify authentication: `Ctrl+Shift+P` โ†’ "GitHub Copilot: Check Status" + +### 2. MCP Server Configuration + +The MCP server enhances GitHub Copilot with organization-specific context and automation. Our configuration is located at `mcp-server.config.yaml`. + +#### Key Features Enabled: +- **Issue Triage**: Automatic labeling and assignment +- **PR Automation**: Reviewer assignment and conflict detection +- **Code Quality**: Automated suggestions and security scanning +- **Workflow Integration**: Seamless GitHub Actions integration + +#### Local Development Setup +```bash +# Clone this repository to access configurations +git clone https://github.com/wesship/.github.git +cd .github + +# Copy configurations to your project (if needed) +cp mcp-server.config.yaml /path/to/your/project/ +cp copilot-agent-profile.json /path/to/your/project/ +``` + +## ๐Ÿ“‹ Templates and Workflows + +### Issue Templates + +We provide standardized issue templates to ensure consistent reporting: + +- **๐Ÿ› Bug Report** (`.github/ISSUE_TEMPLATE/bug_report.yml`) + - Steps to reproduce + - Expected vs actual behavior + - System information + - Screenshots/logs + +- **โœจ Feature Request** (`.github/ISSUE_TEMPLATE/feature_request.yml`) + - Problem statement and motivation + - Proposed solution + - Alternative approaches + - Acceptance criteria + +### Pull Request Template + +Our PR template (`.github/PULL_REQUEST_TEMPLATE.md`) includes: +- Clear description and related issues +- Type of change classification +- Testing checklist +- Reviewer guidelines +- Security and performance considerations + +### Creating Issues and PRs + +```bash +# Create a new branch for your work +git checkout -b feature/your-feature-name + +# Make your changes and commit +git add . +git commit -m "feat: add new feature" + +# Push and create PR +git push origin feature/your-feature-name +gh pr create --template +``` + +## ๐Ÿค– GitHub Copilot Best Practices + +### Code Generation + +1. **Write Clear Comments**: Copilot works best with descriptive comments + ```javascript + // Create a function that validates email addresses using regex + function validateEmail(email) { + // Copilot will suggest implementation + } + ``` + +2. **Use Descriptive Function Names**: Help Copilot understand intent + ```python + def calculate_monthly_recurring_revenue(subscriptions): + # Copilot will suggest business logic + ``` + +3. **Provide Context**: Include relevant imports and type definitions + ```typescript + import { User } from './types'; + + // Function to create user profile with validation + async function createUserProfile(userData: User): Promise { + ``` + +### Chat and Assistance + +Use GitHub Copilot Chat for: +- **Code Explanation**: `@copilot explain this function` +- **Bug Fixing**: `@copilot help me fix this error` +- **Testing**: `@copilot generate tests for this class` +- **Refactoring**: `@copilot refactor this code to be more performant` +- **Documentation**: `@copilot write documentation for this API` + +### Copilot CLI Commands + +```bash +# Ask for help with git commands +gh copilot suggest "undo last commit" + +# Get shell command suggestions +gh copilot suggest "find large files in directory" + +# Explain complex commands +gh copilot explain "docker run -it --rm -v $(pwd):/app node:16" +``` + +## ๐Ÿ”’ Security Guidelines + +### Code Security + +1. **Never commit secrets**: Use environment variables and `.env.example` files +2. **Review Copilot suggestions**: Always review generated code for security issues +3. **Use organization patterns**: Follow established security patterns in the codebase +4. **Enable security scanning**: Ensure GitHub security features are enabled + +### Sensitive Data Handling + +```bash +# Use environment variables for sensitive data +export DATABASE_URL="your-database-url" +export API_KEY="your-api-key" + +# Never commit these patterns: +*.env +*.key +*.pem +*secret* +*password* +``` + +### MCP Server Security + +- Configured secret scanning patterns +- Automatic dependency vulnerability detection +- Code quality gates with security thresholds +- Integration with GitHub security advisories + +## ๐ŸŽฏ Sample Automation Commands + +### Issue Management + +```bash +# Create bug report with template +gh issue create --template bug_report.yml + +# Create feature request +gh issue create --template feature_request.yml + +# List issues assigned to you +gh issue list --assignee @me + +# Close issue with reference +gh issue close 123 --comment "Fixed in PR #456" +``` + +### Pull Request Workflows + +```bash +# Create PR with template +gh pr create --template + +# Request specific reviewers +gh pr create --reviewer @wesship/dev-team + +# Auto-merge after reviews +gh pr merge --auto --squash + +# Check PR status +gh pr status +``` + +### Automated Code Quality + +```bash +# Run linting (configured in MCP server) +npm run lint + +# Run tests with coverage +npm run test:coverage + +# Security audit +npm audit + +# Check for outdated dependencies +npm outdated +``` + +## ๐Ÿ”„ Development Workflow + +### Standard Workflow + +1. **Create Issue**: Use appropriate template +2. **Create Branch**: `git checkout -b type/description` +3. **Develop with Copilot**: Leverage suggestions and chat +4. **Write Tests**: Use Copilot to generate test cases +5. **Create PR**: Use template and link to issues +6. **Code Review**: Automated and manual review process +7. **Merge**: Automated merge after approvals + +### MCP Server Integration Points + +- **Issue Creation**: Auto-labeling and assignment +- **PR Creation**: Automatic reviewer assignment based on files changed +- **Code Review**: Quality gates and security checks +- **Merge**: Automated workflows and notifications + +## ๐Ÿ›  Troubleshooting + +### Common Issues + +1. **Copilot Not Working** + ```bash + # Check Copilot status + gh copilot status + + # Reload VS Code window + Ctrl+Shift+P โ†’ "Developer: Reload Window" + ``` + +2. **MCP Server Issues** + - Check `mcp-server.config.yaml` syntax + - Verify GitHub App permissions + - Review webhook configurations + +3. **Template Issues** + - Ensure templates are in correct directories + - Check YAML syntax for issue templates + - Verify markdown formatting for PR template + +### Getting Help + +- **Internal**: Create issue using bug report template +- **GitHub Copilot**: [GitHub Support](https://support.github.com/) +- **MCP Server**: Check configuration documentation +- **Organization**: Contact `@wesship/dev-team` + +## ๐Ÿ“š Additional Resources + +### Documentation +- [GitHub Copilot Documentation](https://docs.github.com/en/copilot) +- [GitHub CLI Documentation](https://cli.github.com/manual/) +- [VS Code GitHub Integration](https://code.visualstudio.com/docs/editor/github) + +### Learning Resources +- [GitHub Copilot Best Practices](https://github.blog/2023-06-20-how-to-write-better-prompts-for-github-copilot/) +- [AI-Powered Development Workflows](https://github.blog/2023-10-30-the-architecture-of-todays-llm-applications/) + +### Community +- Organization discussions in `wesship/.github` +- Internal Slack: `#dev-general`, `#github-copilot` +- Weekly office hours: Fridays 3-4 PM EST + +## ๐Ÿ“ˆ Metrics and Feedback + +We track the following metrics to improve our workflows: +- Copilot suggestion acceptance rate +- PR review time reduction +- Issue resolution time +- Code quality improvements +- Developer satisfaction + +Provide feedback through: +- Issues in this repository +- Internal surveys +- Team retrospectives +- Direct feedback to `@wesship/dev-team` + +--- + +## ๐Ÿค Contributing + +To improve these templates and configurations: + +1. Fork this repository +2. Create a feature branch +3. Make your improvements +4. Submit a PR with detailed description +5. Participate in the review process + +Your contributions help make our development workflows more efficient and enjoyable for everyone! + +--- + +**Happy coding with GitHub Copilot and MCP Server! ๐Ÿš€** \ No newline at end of file diff --git a/copilot-agent-profile.json b/copilot-agent-profile.json new file mode 100644 index 0000000..c7af025 --- /dev/null +++ b/copilot-agent-profile.json @@ -0,0 +1,245 @@ +{ + "name": "wesship-copilot-agent", + "version": "1.0.0", + "description": "GitHub Copilot agent configuration for wesship organization development workflows", + "organization": "wesship", + + "coding_style": { + "general": { + "indentation": "2 spaces", + "line_length": 100, + "semicolons": true, + "trailing_commas": true, + "quote_style": "double" + }, + "javascript_typescript": { + "prefer_const": true, + "arrow_functions": true, + "destructuring": true, + "template_literals": true, + "async_await": true, + "eslint_config": "@wesship/eslint-config", + "prettier_config": "@wesship/prettier-config" + }, + "python": { + "formatter": "black", + "line_length": 88, + "import_order": "isort", + "type_hints": true, + "docstring_style": "google" + }, + "go": { + "formatter": "gofmt", + "linter": "golangci-lint", + "naming_convention": "camelCase", + "error_handling": "explicit" + }, + "yaml": { + "indentation": "2 spaces", + "quote_strings": false, + "flow_mapping": false + }, + "markdown": { + "line_length": 80, + "emphasis_marker": "*", + "strong_marker": "**", + "unordered_list_marker": "-" + } + }, + + "context_window": { + "max_tokens": 16000, + "prioritize_recent_changes": true, + "include_related_files": true, + "max_related_files": 5, + "context_strategies": [ + "file_imports", + "function_calls", + "type_definitions", + "test_files", + "documentation" + ] + }, + + "pr_template": { + "location": ".github/PULL_REQUEST_TEMPLATE.md", + "auto_fill": true, + "required_sections": [ + "description", + "type_of_change", + "testing", + "related_issues" + ], + "suggestions": { + "link_issues": true, + "suggest_reviewers": true, + "add_labels": true, + "estimate_size": true + } + }, + + "preferred_tests": { + "javascript_typescript": { + "framework": "jest", + "test_location": "src/**/*.test.{js,ts}", + "coverage_threshold": 80, + "test_patterns": [ + "unit_tests", + "integration_tests", + "snapshot_tests" + ], + "mocking_library": "@jest/mock" + }, + "python": { + "framework": "pytest", + "test_location": "tests/", + "coverage_tool": "pytest-cov", + "coverage_threshold": 85, + "test_patterns": [ + "test_*.py", + "*_test.py" + ], + "fixtures": true + }, + "go": { + "framework": "builtin", + "test_location": "*_test.go", + "coverage_threshold": 80, + "benchmark_tests": true, + "table_driven_tests": true + }, + "general": { + "prefer_table_driven": true, + "test_isolation": true, + "setup_teardown": true, + "mock_external_deps": true, + "test_edge_cases": true + } + }, + + "code_generation": { + "documentation": { + "auto_generate": true, + "include_examples": true, + "document_parameters": true, + "document_return_values": true, + "document_exceptions": true, + "style_guide": "jsdoc" + }, + "comments": { + "explain_complex_logic": true, + "todo_format": "TODO(username): description", + "fixme_format": "FIXME(username): description", + "hack_format": "HACK(username): description" + }, + "naming_conventions": { + "functions": "camelCase", + "variables": "camelCase", + "constants": "UPPER_SNAKE_CASE", + "classes": "PascalCase", + "files": "kebab-case", + "directories": "kebab-case" + } + }, + + "security": { + "scan_for_secrets": true, + "validate_dependencies": true, + "suggest_secure_patterns": true, + "highlight_vulnerabilities": true, + "security_frameworks": [ + "owasp", + "cwe" + ], + "sensitive_patterns": [ + "api_key", + "password", + "token", + "secret", + "private_key", + "certificate" + ] + }, + + "performance": { + "suggest_optimizations": true, + "highlight_anti_patterns": true, + "async_recommendations": true, + "memory_usage_awareness": true, + "database_query_optimization": true + }, + + "collaboration": { + "code_review": { + "suggest_improvements": true, + "check_style_consistency": true, + "validate_tests": true, + "security_review": true, + "performance_review": true + }, + "mentoring": { + "explain_suggestions": true, + "provide_learning_resources": true, + "encourage_best_practices": true, + "skill_level_adaptation": "adaptive" + } + }, + + "automation": { + "auto_imports": true, + "auto_format": true, + "auto_fix_linting": true, + "suggest_refactoring": true, + "generate_boilerplate": true, + "update_dependencies": false + }, + + "integrations": { + "mcp_server": { + "enabled": true, + "config_file": "mcp-server.config.yaml", + "auto_sync": true, + "priority_notifications": true + }, + "ci_cd": { + "github_actions": true, + "suggest_workflows": true, + "optimize_pipelines": true + }, + "issue_tracking": { + "link_code_to_issues": true, + "suggest_issue_labels": true, + "estimate_effort": true + } + }, + + "learning": { + "adapt_to_codebase": true, + "learn_patterns": true, + "remember_preferences": true, + "improve_suggestions": true, + "feedback_integration": true + }, + + "experimental_features": { + "ai_pair_programming": false, + "predictive_coding": false, + "auto_documentation": true, + "intelligent_refactoring": true, + "context_aware_suggestions": true + }, + + "limits": { + "max_suggestion_length": 1000, + "max_file_size_mb": 10, + "max_concurrent_operations": 5, + "suggestion_timeout_ms": 5000 + }, + + "feedback": { + "collect_usage_stats": true, + "anonymous_telemetry": true, + "improvement_suggestions": true, + "satisfaction_tracking": true + } +} \ No newline at end of file diff --git a/mcp-server.config.yaml b/mcp-server.config.yaml new file mode 100644 index 0000000..f4c3051 --- /dev/null +++ b/mcp-server.config.yaml @@ -0,0 +1,200 @@ +# MCP Server Configuration for GitHub Copilot + Automation Workflows +# This configuration enables robust integration between MCP servers and GitHub Copilot +# for enhanced development workflows, issue triage, and PR automation. + +version: "1.0" +organization: "wesship" + +# Default repositories that MCP servers should monitor and interact with +repositories: + default: + - "wesship/*" # All repositories in the organization + priority: + - "wesship/core" + - "wesship/api" + - "wesship/frontend" + +# MCP Server Settings +mcp: + # Issue Triage Configuration + issue_triage: + enabled: true + auto_label: true + priority_detection: true + assignment_rules: + bug_reports: ["@wesship/dev-team"] + feature_requests: ["@wesship/product-team"] + security_issues: ["@wesship/security-team"] + + # Auto-labeling rules based on content analysis + labeling_rules: + - pattern: "(?i)(crash|error|exception|fail)" + labels: ["bug", "high-priority"] + - pattern: "(?i)(security|vulnerability|exploit)" + labels: ["security", "critical"] + - pattern: "(?i)(performance|slow|timeout)" + labels: ["performance", "optimization"] + - pattern: "(?i)(documentation|docs|readme)" + labels: ["documentation"] + - pattern: "(?i)(test|testing|spec)" + labels: ["testing"] + + # Pull Request Automation + pr_automation: + enabled: true + auto_review_request: true + conflict_detection: true + size_labeling: true + + # Automatic reviewer assignment based on file patterns + reviewer_rules: + - pattern: "*.md" + reviewers: ["@wesship/docs-team"] + - pattern: "*.yml|*.yaml" + reviewers: ["@wesship/devops-team"] + - pattern: "*.js|*.ts|*.jsx|*.tsx" + reviewers: ["@wesship/frontend-team"] + - pattern: "*.py|*.go|*.java" + reviewers: ["@wesship/backend-team"] + - pattern: "Dockerfile|docker-compose.*" + reviewers: ["@wesship/devops-team"] + + # PR size classification + size_rules: + small: 10 # lines changed + medium: 100 + large: 500 + xlarge: 1000 + + # Code Agent Features + code_agent: + enabled: true + auto_suggestions: true + code_quality_checks: true + security_scanning: true + + # Copilot integration settings + copilot_integration: + context_window: 16000 + code_completion: true + documentation_generation: true + test_generation: true + refactoring_suggestions: true + + # Quality gates + quality_gates: + - name: "test_coverage" + threshold: 80 + required: true + - name: "code_complexity" + threshold: 10 + required: false + - name: "security_score" + threshold: 8 + required: true + +# Notification Settings +notifications: + slack: + enabled: false # Configure with your Slack webhook URL + channels: + general: "#dev-general" + critical: "#dev-alerts" + security: "#security-alerts" + + email: + enabled: false # Configure with SMTP settings + recipients: + - "dev-team@wesship.com" + +# Security Configuration +security: + secret_scanning: true + dependency_scanning: true + code_scanning: true + + # Sensitive file patterns to monitor + sensitive_patterns: + - "*.key" + - "*.pem" + - "*.env" + - "*secret*" + - "*password*" + - "*token*" + +# Workflow Automation +workflows: + # Auto-close stale issues + stale_issues: + enabled: true + days_before_stale: 60 + days_before_close: 7 + exempt_labels: ["pinned", "security", "critical"] + + # Auto-merge dependabot PRs + dependabot_auto_merge: + enabled: true + auto_approve: true + security_updates_only: true + + # Release automation + release_automation: + enabled: true + auto_changelog: true + semantic_versioning: true + tag_format: "v{version}" + +# Integration Settings +integrations: + github_copilot: + enabled: true + suggestions_enabled: true + chat_enabled: true + cli_enabled: true + + github_actions: + enabled: true + auto_trigger_workflows: true + status_checks_required: true + + third_party: + jira: + enabled: false + # Configure with your Jira instance details + linear: + enabled: false + # Configure with your Linear API key + notion: + enabled: false + # Configure with your Notion integration token + +# Logging and Monitoring +logging: + level: "info" + format: "json" + destinations: + - "console" + - "file" + + # Audit trail for all MCP server actions + audit: + enabled: true + retention_days: 90 + include_payloads: false # Set to true for debugging + +# Rate Limiting +rate_limiting: + github_api: + requests_per_hour: 5000 + burst_limit: 100 + + webhook_processing: + max_concurrent: 10 + queue_size: 1000 + +# Feature Flags +feature_flags: + experimental_ai_features: false + advanced_code_analysis: true + multi_repo_insights: true + predictive_issue_routing: false \ No newline at end of file