Add BlackRoad OS Proprietary License — universal jurisdiction #6
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: 🤖 BlackRoad Auto-Merge | ||
| on: | ||
| pull_request: | ||
| types: [opened, synchronize, reopened] | ||
| check_suite: | ||
| types: [completed] | ||
| workflow_run: | ||
| workflows: ["🔍 BlackRoad Compliance Check"] | ||
| types: [completed] | ||
| permissions: | ||
| contents: write | ||
| pull-requests: write | ||
| checks: read | ||
| jobs: | ||
| auto-merge: | ||
| name: Auto-Merge Compliant PRs | ||
| runs-on: ubuntu-latest | ||
| # Only run for bot-created PRs | ||
| if: | | ||
| github.event.pull_request.user.login == 'github-actions[bot]' || | ||
| github.actor == 'github-actions[bot]' | ||
| steps: | ||
| - name: 📥 Checkout Repository | ||
| uses: actions/checkout@v4 | ||
| - name: 🔍 Get PR Details | ||
| id: pr | ||
| env: | ||
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
| run: | | ||
| # Get PR number | ||
| if [ -n "${{ github.event.pull_request.number }}" ]; then | ||
| PR_NUMBER="${{ github.event.pull_request.number }}" | ||
| else | ||
| # If triggered by workflow_run, find the PR | ||
| PR_NUMBER=$(gh pr list --head blackroad-auto-fix --json number --jq '.[0].number') | ||
| fi | ||
| if [ -z "$PR_NUMBER" ]; then | ||
| echo "No PR found, exiting..." | ||
| exit 0 | ||
| fi | ||
| echo "number=$PR_NUMBER" >> $GITHUB_OUTPUT | ||
| # Get PR status | ||
| PR_DATA=$(gh pr view "$PR_NUMBER" --json statusCheckRollup,headRefName,mergeable,mergeStateStatus) | ||
| # Extract status | ||
| STATUS=$(echo "$PR_DATA" | jq -r '.statusCheckRollup[] | select(.conclusion != null) | .conclusion' | sort -u) | ||
| MERGEABLE=$(echo "$PR_DATA" | jq -r '.mergeable') | ||
| MERGE_STATE=$(echo "$PR_DATA" | jq -r '.mergeStateStatus') | ||
| BRANCH=$(echo "$PR_DATA" | jq -r '.headRefName') | ||
| echo "status=$STATUS" >> $GITHUB_OUTPUT | ||
| echo "mergeable=$MERGEABLE" >> $GITHUB_OUTPUT | ||
| echo "merge_state=$MERGE_STATE" >> $GITHUB_OUTPUT | ||
| echo "branch=$BRANCH" >> $GITHUB_OUTPUT | ||
| echo "PR #$PR_NUMBER status: $STATUS, mergeable: $MERGEABLE, state: $MERGE_STATE" | ||
| - name: ✅ Validate PR for Auto-Merge | ||
| id: validate | ||
| run: | | ||
| CAN_MERGE="false" | ||
| # Check 1: Is this from blackroad-auto-fix branch? | ||
| if [[ "${{ steps.pr.outputs.branch }}" == "blackroad-auto-fix" ]]; then | ||
| echo "✅ PR is from auto-fix branch" | ||
| # Check 2: Is mergeable? | ||
| if [[ "${{ steps.pr.outputs.mergeable }}" == "MERGEABLE" ]]; then | ||
| echo "✅ PR is mergeable (no conflicts)" | ||
| # Check 3: All checks passed or no checks? | ||
| if [[ -z "${{ steps.pr.outputs.status }}" ]] || [[ "${{ steps.pr.outputs.status }}" == "SUCCESS" ]]; then | ||
| echo "✅ All checks passed (or no checks required)" | ||
| CAN_MERGE="true" | ||
| else | ||
| echo "⚠️ Some checks failed or are pending: ${{ steps.pr.outputs.status }}" | ||
| fi | ||
| else | ||
| echo "⚠️ PR has merge conflicts or is not mergeable" | ||
| fi | ||
| else | ||
| echo "ℹ️ Not an auto-fix PR (branch: ${{ steps.pr.outputs.branch }}), skipping" | ||
| fi | ||
| echo "can_merge=$CAN_MERGE" >> $GITHUB_OUTPUT | ||
| - name: 🚀 Merge PR | ||
| if: steps.validate.outputs.can_merge == 'true' && steps.pr.outputs.number != '' | ||
| env: | ||
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
| run: | | ||
| PR_NUMBER="${{ steps.pr.outputs.number }}" | ||
| echo "🤖 Merging PR #$PR_NUMBER..." | ||
| # Merge with squash and delete branch | ||
| gh pr merge "$PR_NUMBER" \ | ||
| --squash \ | ||
| --delete-branch \ | ||
| --body "✅ Auto-merged by BlackRoad Auto-Merge System | ||
| This PR passed all compliance checks and was automatically merged. | ||
| 🤖 Automated by BlackRoad Auto-Merge | ||
| © 2025-2026 BlackRoad OS, Inc." | ||
| echo "✅ PR #$PR_NUMBER merged successfully!" | ||
| - name: 💬 Add Success Comment | ||
| if: steps.validate.outputs.can_merge == 'true' && steps.pr.outputs.number != '' | ||
| env: | ||
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
| run: | | ||
| PR_NUMBER="${{ steps.pr.outputs.number }}" | ||
| gh pr comment "$PR_NUMBER" --body "🤖 **Auto-Merge Successful** | ||
| This PR has been automatically merged because: | ||
| - ✅ Created by BlackRoad auto-fix bot | ||
| - ✅ All compliance checks passed | ||
| - ✅ No merge conflicts | ||
| - ✅ No manual review required | ||
| The changes are now live on the default branch. | ||
| --- | ||
| 🤖 Automated by BlackRoad Auto-Merge System | ||
| © 2025-2026 BlackRoad OS, Inc." || true | ||
| - name: 📝 Create Issue on Validation Failure | ||
| if: | | ||
| steps.validate.outputs.can_merge == 'false' && | ||
| steps.pr.outputs.number != '' && | ||
| steps.pr.outputs.branch == 'blackroad-auto-fix' | ||
| env: | ||
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
| run: | | ||
| PR_NUMBER="${{ steps.pr.outputs.number }}" | ||
| REPO="${{ github.repository }}" | ||
| gh issue create \ | ||
| --title "⚠️ Auto-Fix PR Requires Manual Review: #$PR_NUMBER" \ | ||
| --body "## Auto-Fix PR Could Not Be Auto-Merged | ||
| **PR:** #$PR_NUMBER | ||
| **Status:** Manual review needed ⚠️ | ||
| **Reason:** Checks failed or merge conflicts detected | ||
| ### Details: | ||
| The auto-fix PR did not pass automatic validation. | ||
| **Branch:** \`${{ steps.pr.outputs.branch }}\` | ||
| **Mergeable:** \`${{ steps.pr.outputs.mergeable }}\` | ||
| **Merge State:** \`${{ steps.pr.outputs.merge_state }}\` | ||
| **Check Status:** \`${{ steps.pr.outputs.status }}\` | ||
| ### Action Required: | ||
| Please review the PR manually and resolve any issues. | ||
| **PR Link:** https://github.com/$REPO/pull/$PR_NUMBER | ||
| --- | ||
| 🤖 Automated Alert from BlackRoad Auto-Merge System | ||
| © 2025-2026 BlackRoad OS, Inc." \ | ||
| --label "auto-fix-failed,needs-review" || true | ||
| - name: 🚨 Notify on Critical Failure | ||
| if: failure() | ||
| env: | ||
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
| run: | | ||
| echo "🚨 Auto-merge workflow encountered an error" | ||
| echo "This may require manual intervention" | ||
| # If Slack webhook is configured, uncomment below: | ||
| # curl -X POST "${{ secrets.SLACK_WEBHOOK }}" -H 'Content-Type: application/json' \ | ||
| # -d '{"text":"🚨 Auto-merge failed in ${{ github.repository }}"}' | ||