mirror of
https://github.com/blackboxprogramming/BlackRoad-Operating-System.git
synced 2026-03-17 03:57:13 -05:00
- Add Railway configuration (railway.toml) - Add GitHub Actions workflows - Railway deployment automation - Python/Node.js testing - Health check monitoring - Add GitHub templates (CODEOWNERS, PR template) - Add requirements files if missing - Standardize deployment across all services This ensures consistent deployment patterns across the entire BlackRoad OS infrastructure. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
104 lines
3.2 KiB
YAML
104 lines
3.2 KiB
YAML
# ============================================================================
|
|
# BlackRoad OS - Auto-Assign Reviewers
|
|
# Copyright (c) 2025 BlackRoad OS, Inc. / Alexa Louise Amundson
|
|
# All Rights Reserved.
|
|
# ============================================================================
|
|
#
|
|
# Automatically assigns reviewers to pull requests based on files changed.
|
|
# ============================================================================
|
|
|
|
name: Auto Assign
|
|
|
|
on:
|
|
pull_request:
|
|
types: [opened, ready_for_review]
|
|
|
|
permissions:
|
|
pull-requests: write
|
|
|
|
jobs:
|
|
auto-assign:
|
|
name: Auto Assign Reviewers
|
|
runs-on: ubuntu-latest
|
|
if: github.event.pull_request.draft == false
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Get changed files
|
|
id: changed
|
|
uses: tj-actions/changed-files@v41
|
|
with:
|
|
files_yaml: |
|
|
quantum:
|
|
- 'blackroad-quantum*.py'
|
|
- 'quantum-ml/**'
|
|
operator:
|
|
- 'operator_http.py'
|
|
- 'ledger_*.py'
|
|
- 'promotion_engine.py'
|
|
agents:
|
|
- 'agents/**'
|
|
- 'agent-*.sh'
|
|
infrastructure:
|
|
- 'blackroad-docker.sh'
|
|
- 'blackroad-k8s.sh'
|
|
- 'blackroad-railway.sh'
|
|
- 'pi-setup/**'
|
|
docs:
|
|
- '**/*.md'
|
|
- 'docs/**'
|
|
ci:
|
|
- '.github/**'
|
|
|
|
- name: Add labels based on changed files
|
|
uses: actions/github-script@v7
|
|
with:
|
|
script: |
|
|
const labels = [];
|
|
|
|
if ('${{ steps.changed.outputs.quantum_any_changed }}' === 'true') {
|
|
labels.push('quantum');
|
|
}
|
|
if ('${{ steps.changed.outputs.operator_any_changed }}' === 'true') {
|
|
labels.push('operator');
|
|
}
|
|
if ('${{ steps.changed.outputs.agents_any_changed }}' === 'true') {
|
|
labels.push('agents');
|
|
}
|
|
if ('${{ steps.changed.outputs.infrastructure_any_changed }}' === 'true') {
|
|
labels.push('infrastructure');
|
|
}
|
|
if ('${{ steps.changed.outputs.docs_any_changed }}' === 'true') {
|
|
labels.push('documentation');
|
|
}
|
|
if ('${{ steps.changed.outputs.ci_any_changed }}' === 'true') {
|
|
labels.push('ci');
|
|
}
|
|
|
|
if (labels.length > 0) {
|
|
await github.rest.issues.addLabels({
|
|
owner: context.repo.owner,
|
|
repo: context.repo.repo,
|
|
issue_number: context.issue.number,
|
|
labels: labels
|
|
});
|
|
console.log(`Added labels: ${labels.join(', ')}`);
|
|
}
|
|
|
|
- name: Auto-assign author
|
|
uses: actions/github-script@v7
|
|
with:
|
|
script: |
|
|
const pr = context.payload.pull_request;
|
|
|
|
// Assign the PR author
|
|
await github.rest.issues.addAssignees({
|
|
owner: context.repo.owner,
|
|
repo: context.repo.repo,
|
|
issue_number: pr.number,
|
|
assignees: [pr.user.login]
|
|
});
|
|
|
|
console.log(`Assigned ${pr.user.login} to PR #${pr.number}`);
|