feat: CLA configuration + community sync workflow

This commit is contained in:
Hibryda 2026-03-22 04:37:09 +01:00
parent 105107dd84
commit 18364826dc
3 changed files with 179 additions and 0 deletions

4
.github/cla.yml vendored Normal file
View 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
View 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"

84
CLA.md Normal file
View file

@ -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.