feat: CLA configuration + community sync workflow
This commit is contained in:
parent
105107dd84
commit
18364826dc
3 changed files with 179 additions and 0 deletions
4
.github/cla.yml
vendored
Normal file
4
.github/cla.yml
vendored
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
# CLA-assistant configuration
|
||||
# See: https://github.com/cla-assistant/cla-assistant
|
||||
signedClaUrl: "https://github.com/DexterFromLab/agent-orchestrator/blob/main/CLA.md"
|
||||
allowOrganizationMembers: true
|
||||
91
.github/workflows/community-sync.yml
vendored
Normal file
91
.github/workflows/community-sync.yml
vendored
Normal file
|
|
@ -0,0 +1,91 @@
|
|||
name: Community Sync
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
dry_run:
|
||||
description: "Dry run (show what would be removed, don't push)"
|
||||
required: false
|
||||
default: "false"
|
||||
type: boolean
|
||||
release:
|
||||
types: [published]
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
sync:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Strip commercial content
|
||||
run: bash scripts/strip-commercial.sh
|
||||
|
||||
- name: Verify no commercial references remain
|
||||
run: |
|
||||
failed=0
|
||||
|
||||
if [ -d "agor-pro/" ]; then
|
||||
echo "::error::agor-pro/ directory still exists after strip"
|
||||
failed=1
|
||||
fi
|
||||
|
||||
content=$(find src/lib/commercial/ -type f ! -name '.gitkeep' 2>/dev/null | wc -l)
|
||||
if [ "$content" -gt 0 ]; then
|
||||
echo "::error::Commercial files remain in src/lib/commercial/"
|
||||
failed=1
|
||||
fi
|
||||
|
||||
if grep -r "LicenseRef-Commercial" --include="*.ts" --include="*.svelte" \
|
||||
--include="*.rs" --include="*.toml" --include="*.json" \
|
||||
src/ src-tauri/src/ agor-core/ 2>/dev/null; then
|
||||
echo "::error::LicenseRef-Commercial references remain in source"
|
||||
failed=1
|
||||
fi
|
||||
|
||||
if [ "$failed" -eq 1 ]; then
|
||||
exit 1
|
||||
fi
|
||||
echo "Verification passed: no commercial content remains."
|
||||
|
||||
- name: Show diff summary
|
||||
run: |
|
||||
echo "=== Files removed or modified ==="
|
||||
git status --short
|
||||
echo ""
|
||||
echo "=== Diff stats ==="
|
||||
git diff --stat
|
||||
|
||||
- name: Push to community repo
|
||||
if: ${{ github.event.inputs.dry_run != 'true' }}
|
||||
env:
|
||||
COMMUNITY_PAT: ${{ secrets.COMMUNITY_PAT }}
|
||||
run: |
|
||||
if [ -z "$COMMUNITY_PAT" ]; then
|
||||
echo "::error::COMMUNITY_PAT secret is not set"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
git config user.name "community-sync[bot]"
|
||||
git config user.email "community-sync[bot]@users.noreply.github.com"
|
||||
|
||||
git add -A
|
||||
git commit -m "chore: sync community edition from commercial repo
|
||||
|
||||
Stripped commercial content for community release.
|
||||
Source: ${{ github.sha }}"
|
||||
|
||||
SYNC_BRANCH="community-sync/${{ github.sha }}"
|
||||
git checkout -b "$SYNC_BRANCH"
|
||||
|
||||
git remote add community \
|
||||
"https://x-access-token:${COMMUNITY_PAT}@github.com/DexterFromLab/agent-orchestrator.git"
|
||||
|
||||
git push community "$SYNC_BRANCH"
|
||||
|
||||
echo "Pushed branch $SYNC_BRANCH to community repo."
|
||||
echo "Create a PR at: https://github.com/DexterFromLab/agent-orchestrator/compare/main...$SYNC_BRANCH"
|
||||
Loading…
Add table
Add a link
Reference in a new issue