From 18364826dcc3317244c208cb3d3ad03107c04a76 Mon Sep 17 00:00:00 2001 From: Hibryda Date: Sun, 22 Mar 2026 04:37:09 +0100 Subject: [PATCH] feat: CLA configuration + community sync workflow --- .github/cla.yml | 4 ++ .github/workflows/community-sync.yml | 91 ++++++++++++++++++++++++++++ CLA.md | 84 +++++++++++++++++++++++++ 3 files changed, 179 insertions(+) create mode 100644 .github/cla.yml create mode 100644 .github/workflows/community-sync.yml create mode 100644 CLA.md diff --git a/.github/cla.yml b/.github/cla.yml new file mode 100644 index 0000000..f2d33ad --- /dev/null +++ b/.github/cla.yml @@ -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 diff --git a/.github/workflows/community-sync.yml b/.github/workflows/community-sync.yml new file mode 100644 index 0000000..e285642 --- /dev/null +++ b/.github/workflows/community-sync.yml @@ -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" diff --git a/CLA.md b/CLA.md new file mode 100644 index 0000000..cdbf9fe --- /dev/null +++ b/CLA.md @@ -0,0 +1,84 @@ +# Individual Contributor License Agreement + +Thank you for your interest in contributing to Agent Orchestrator ("the Project"). +This Contributor License Agreement ("Agreement") documents the rights granted by +contributors to the Project maintainers. This is a legally binding document, so +please read it carefully before agreeing. + +## 1. Definitions + +"You" (or "Your") means the individual who submits a Contribution to the Project. + +"Contribution" means any original work of authorship, including any modifications +or additions to existing work, that You intentionally submit to the Project for +inclusion. "Submit" means any form of electronic or written communication sent to +the Project, including but not limited to pull requests, patches, issues, and +comments on any of these. + +"Project Maintainers" means the owners and administrators of the +`DexterFromLab/agent-orchestrator` and `agents-orchestrator/agents-orchestrator` +repositories. + +## 2. Grant of Copyright License + +Subject to the terms of this Agreement, You hereby grant to the Project Maintainers +and to recipients of software distributed by the Project Maintainers a perpetual, +worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to +reproduce, prepare derivative works of, publicly display, publicly perform, +sublicense, and distribute Your Contributions and such derivative works. + +## 3. Grant of Patent License + +Subject to the terms of this Agreement, You hereby grant to the Project Maintainers +and to recipients of software distributed by the Project Maintainers a perpetual, +worldwide, non-exclusive, no-charge, royalty-free, irrevocable patent license to +make, have made, use, offer to sell, sell, import, and otherwise transfer the +Contribution, where such license applies only to those patent claims licensable by +You that are necessarily infringed by Your Contribution alone or by combination of +Your Contribution with the Project to which such Contribution was submitted. + +## 4. Representations + +You represent that: + +(a) You are legally entitled to grant the above licenses. If your employer has +rights to intellectual property that you create, you represent that you have received +permission to make Contributions on behalf of that employer, or that your employer +has waived such rights for your Contributions. + +(b) Each of Your Contributions is Your original creation. You represent that Your +Contribution submissions include complete details of any third-party license or +other restriction of which you are personally aware and which are associated with +any part of Your Contributions. + +(c) Your Contribution does not violate any existing agreement or obligation you have +with any third party. + +## 5. No Obligation + +You understand that the decision to include Your Contribution in any product or +project is entirely at the discretion of the Project Maintainers and that this +Agreement does not guarantee that Your Contribution will be included. + +## 6. Support + +You are not expected to provide support for Your Contributions, except to the extent +You desire to provide support. You may provide support for free, for a fee, or not +at all. + +## 7. Ownership + +You retain ownership of the copyright in Your Contributions. This Agreement does +not transfer ownership; it only grants the licenses described above. + +## 8. Dual-License Usage + +You acknowledge that Your Contributions may be used in both the open-source +community edition (MIT License) and the commercial edition of the Project. The +licenses granted above permit this dual usage. + +--- + +To sign this CLA, submit a pull request to the community repository +(`DexterFromLab/agent-orchestrator`). The CLA-assistant bot will guide you through +the signing process automatically.