Files
blackroad/scripts/blackroad-fork-enhancer.sh
Alexa Amundson 4f0bac406e
Some checks failed
Lint & Format / detect (push) Failing after 39s
Monorepo Lint / lint-shell (push) Failing after 41s
Monorepo Lint / lint-js (push) Failing after 38s
Lint & Format / js-lint (push) Has been skipped
Lint & Format / py-lint (push) Has been skipped
Lint & Format / sh-lint (push) Has been skipped
Lint & Format / go-lint (push) Has been skipped
sync: 2026-03-15 23:30 — 23 files from Alexandria
RoadChain-SHA2048: af46e6a9314c50fd
RoadChain-Identity: alexa@sovereign
RoadChain-Full: af46e6a9314c50fddd4a6fa4df62988ead75ad66dc383f6fb38c1824a5d184b6d98a78f10dacb6cdbf2ac198396fe3ab2e07c187ab6e41b1dbc44f60de268c283ce6519708dba7899d2faa19e687ce9b6f590a9c89cd995ce5636bdb24a6b0406eb730e9ed1033171839e7d82b903fd60f3c2c2e3c9ef6fbbc3ef52f7ca87ede13bedc69fee77c465a1fe292e4580cf9e9661b2321ee66483dc6368ee913231aa830a83b267901a304701129a337a81f15e67c8e808f7d519ffd1303cf652ce9ef8c98a42df19a7ca69236ee0be44a0569cef18eaeaf14b16fb284e99ae357375380a3c76dd0588e7993aea0c8a0326a3b751bd44f0943251f86ee164fb1786c
2026-03-15 23:30:01 -05:00

209 lines
6.9 KiB
Bash
Executable File

#!/bin/bash
# BlackRoad Fork Enhancer v2
# Adds BlackRoad integration layer to forked repos WITHOUT breaking upstream
# Uses GitHub API (no cloning needed)
#
# Usage: ./blackroad-fork-enhancer.sh [org/user] [--dry-run]
set -e
PINK='\033[38;5;205m'
GREEN='\033[38;5;82m'
YELLOW='\033[1;33m'
CYAN='\033[38;5;69m'
RED='\033[0;31m'
NC='\033[0m'
ORG="${1:-blackboxprogramming}"
DRY_RUN="${2:---execute}"
ENHANCED=0
SKIPPED=0
FAILED=0
echo -e "${PINK}╔════════════════════════════════════════════════════════════╗${NC}"
echo -e "${PINK}${NC} ${CYAN}BlackRoad Fork Enhancer v2${NC} ${PINK}${NC}"
echo -e "${PINK}╚════════════════════════════════════════════════════════════╝${NC}"
echo -e " ${CYAN}Target:${NC} $ORG"
echo -e " ${CYAN}Mode:${NC} $DRY_RUN"
echo ""
# Get all forked repos
FORKS=$(gh repo list "$ORG" --fork --limit 100 --json name -q '.[].name' 2>/dev/null)
TOTAL=$(echo "$FORKS" | wc -l | tr -d ' ')
echo -e "${GREEN}Found $TOTAL forks${NC}"
echo ""
# Content templates
INTEGRATION_README='# BlackRoad Integration
This is a fork maintained by [BlackRoad OS, Inc.](https://blackroad.io) for integration with the BlackRoad ecosystem.
## What We Added
- `.blackroad/` directory with integration configs
- BlackRoad CI/CD workflow
- Integration documentation
## Upstream
This repo tracks the upstream project. BlackRoad additions live exclusively in `.blackroad/` and `.github/workflows/blackroad-ci.yml` to avoid merge conflicts.
## Links
- [BlackRoad OS](https://blackroad.io)
- [Documentation](https://docs.blackroad.io)
- [GitHub](https://github.com/blackboxprogramming)
---
© 2025-2026 BlackRoad OS, Inc. All rights reserved.
BlackRoad OS — Pave Tomorrow.
'
INTEGRATION_CONFIG='{
"name": "REPO_NAME",
"type": "fork",
"org": "ORG_NAME",
"integration": {
"status": "active",
"added": "DATE_NOW",
"version": "1.0.0"
},
"upstream": {
"synced": true,
"branch": "main"
},
"blackroad": {
"category": "CATEGORY",
"tags": [],
"fleet_node": null,
"docs": "https://docs.blackroad.io"
}
}'
CI_WORKFLOW='name: BlackRoad CI
on:
push:
branches: [main, master]
paths:
- ".blackroad/**"
pull_request:
branches: [main, master]
paths:
- ".blackroad/**"
jobs:
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Validate integration config
run: |
if [ -f .blackroad/config.json ]; then
python3 -c "import json; json.load(open('"'"'.blackroad/config.json'"'"'))" && echo "Config valid" || echo "Config invalid"
fi
- name: Check integration README
run: test -f .blackroad/README.md && echo "README present" || echo "README missing"
'
# Categorize repo
categorize() {
local name="$1"
case "$name" in
pixel-*|isometric-*|tiny-world|SanAndreasUnity|GameBoyWorlds|OpenViking|OpenSandbox|NotBlox|bit-office|superpowers|openclaw)
echo "game" ;;
*agent*|*claude*|*squad*|BitNet|sgpt|rowboat|hindsight|skills|lucidia-*)
echo "ai" ;;
pi-*|awesome-sysadmin|awesome-selfhosted*|awesome-raspberry*|hailo*|nginx*|ish|git|git.*)
echo "infrastructure" ;;
algorithm*|the-book-*|PDF4QT|A2UI|system-prompts*|htmldocs|clerk-docs|alfred-*|alexa-*)
echo "reference" ;;
*)
echo "general" ;;
esac
}
# Process each fork
COUNT=0
for REPO in $FORKS; do
COUNT=$((COUNT + 1))
echo -e "${CYAN}[$COUNT/$TOTAL]${NC} $REPO"
# Check if already enhanced
EXISTS=$(gh api "repos/$ORG/$REPO/contents/.blackroad/config.json" 2>/dev/null | python3 -c "import json,sys; d=json.load(sys.stdin); print('yes' if 'name' in d else 'no')" 2>/dev/null || echo "no")
if [ "$EXISTS" = "yes" ]; then
echo -e " ${YELLOW}Already enhanced — skipping${NC}"
SKIPPED=$((SKIPPED + 1))
continue
fi
# Get default branch
DEFAULT_BRANCH=$(gh repo view "$ORG/$REPO" --json defaultBranchRef -q '.defaultBranchRef.name' 2>/dev/null || echo "main")
CATEGORY=$(categorize "$REPO")
NOW=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
# Build config
CONFIG=$(echo "$INTEGRATION_CONFIG" | sed "s/REPO_NAME/$REPO/g; s/ORG_NAME/$ORG/g; s/DATE_NOW/$NOW/g; s/CATEGORY/$CATEGORY/g")
if [ "$DRY_RUN" = "--dry-run" ]; then
echo -e " ${YELLOW}[DRY RUN] Would add .blackroad/ to $ORG/$REPO ($CATEGORY)${NC}"
continue
fi
# Add files via GitHub API (no clone needed)
# 1. .blackroad/README.md
README_B64=$(echo "$INTEGRATION_README" | base64 | tr -d '\n')
gh api -X PUT "repos/$ORG/$REPO/contents/.blackroad/README.md" \
-f message="chore: add BlackRoad integration layer" \
-f content="$README_B64" \
-f branch="$DEFAULT_BRANCH" \
--silent 2>/dev/null
if [ $? -ne 0 ]; then
echo -e " ${RED}Failed to add README${NC}"
FAILED=$((FAILED + 1))
continue
fi
# 2. .blackroad/config.json
CONFIG_B64=$(echo "$CONFIG" | base64 | tr -d '\n')
gh api -X PUT "repos/$ORG/$REPO/contents/.blackroad/config.json" \
-f message="chore: add BlackRoad integration config" \
-f content="$CONFIG_B64" \
-f branch="$DEFAULT_BRANCH" \
--silent 2>/dev/null
# 3. .github/workflows/blackroad-ci.yml
CI_B64=$(echo "$CI_WORKFLOW" | base64 | tr -d '\n')
gh api -X PUT "repos/$ORG/$REPO/contents/.github/workflows/blackroad-ci.yml" \
-f message="ci: add BlackRoad CI workflow" \
-f content="$CI_B64" \
-f branch="$DEFAULT_BRANCH" \
--silent 2>/dev/null
# 4. Update description to include BlackRoad
CURRENT_DESC=$(gh repo view "$ORG/$REPO" --json description -q '.description' 2>/dev/null)
if [[ ! "$CURRENT_DESC" == *"BlackRoad"* ]] && [[ ! "$CURRENT_DESC" == *"fork"* ]]; then
NEW_DESC="${CURRENT_DESC} (BlackRoad integration)"
gh repo edit "$ORG/$REPO" --description "$NEW_DESC" 2>/dev/null || true
fi
# 5. Add topics
gh repo edit "$ORG/$REPO" --add-topic "blackroad" --add-topic "blackroad-fork" --add-topic "$CATEGORY" 2>/dev/null || true
echo -e " ${GREEN}Enhanced ($CATEGORY)${NC}"
ENHANCED=$((ENHANCED + 1))
# Rate limit: 1 per 2 seconds to avoid GitHub abuse
sleep 2
done
echo ""
echo -e "${PINK}╔════════════════════════════════════════════════════════════╗${NC}"
echo -e "${PINK}${NC} ${GREEN}Done!${NC} ${PINK}${NC}"
echo -e "${PINK}╚════════════════════════════════════════════════════════════╝${NC}"
echo -e " ${GREEN}Enhanced:${NC} $ENHANCED"
echo -e " ${YELLOW}Skipped:${NC} $SKIPPED"
echo -e " ${RED}Failed:${NC} $FAILED"
echo -e " ${CYAN}Total:${NC} $TOTAL"