-
Notifications
You must be signed in to change notification settings - Fork 0
chore: narrow BSL Additional Use Grant and add CLA #408
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
5173853
3fdd487
cf66128
f3d3abf
d19562a
9f3b733
82a3b5b
8f53b02
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -0,0 +1,45 @@ | ||||||||||||||
| name: CLA | ||||||||||||||
|
|
||||||||||||||
| on: | ||||||||||||||
| issue_comment: | ||||||||||||||
| types: [created] | ||||||||||||||
| pull_request_target: | ||||||||||||||
| types: [opened, synchronize, reopened] | ||||||||||||||
|
|
||||||||||||||
| permissions: {} | ||||||||||||||
|
|
||||||||||||||
| jobs: | ||||||||||||||
| cla-check: | ||||||||||||||
| name: CLA Signature Check | ||||||||||||||
| runs-on: ubuntu-latest | ||||||||||||||
| if: | | ||||||||||||||
| (github.event_name == 'pull_request_target' && github.event.pull_request.user.login != 'dependabot[bot]') || | ||||||||||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Missing bot/owner allowlist — CLA bot will fire on Release Please PRs The only excluded actor is
Suggested change
Or, preferably, pass an with:
# …existing params…
allowlist: Aureliolo,github-actions[bot],release-please[bot]Prompt To Fix With AIThis is a comment left during a code review.
Path: .github/workflows/cla.yml
Line: 16
Comment:
**Missing bot/owner allowlist — CLA bot will fire on Release Please PRs**
The only excluded actor is `dependabot[bot]`, but Release Please also opens PRs to `main` — under `RELEASE_PLEASE_TOKEN`. If that token is a PAT, the CLA action will run against the PAT owner's GitHub account, prompting them (via bot comment) to sign the CLA on every release PR. If it is a GitHub App token, the action will attempt to check the app identity, which cannot sign.
`contributor-assistant/github-action` exposes an `allowlist` parameter for exactly this purpose. It accepts a comma-separated list of GitHub usernames (and supports wildcard `*bot*` patterns). Without it, every Release Please PR, plus any PR opened by the repo owner, generates an unnecessary CLA-unsigned comment.
```suggestion
if: |
(github.event_name == 'pull_request_target' &&
github.event.pull_request.user.login != 'dependabot[bot]' &&
!endsWith(github.event.pull_request.user.login, '[bot]')) ||
(github.event_name == 'issue_comment' && github.event.issue.pull_request && github.event.comment.body == 'I have read the CLA Document and I hereby sign the CLA')
```
Or, preferably, pass an `allowlist` to the action itself so the logic lives in one place:
```yaml
with:
# …existing params…
allowlist: Aureliolo,github-actions[bot],release-please[bot]
```
How can I resolve this? If you propose a fix, please make it concise. |
||||||||||||||
| (github.event_name == 'issue_comment' && github.event.issue.pull_request && github.event.comment.body == 'I have read the CLA Document and I hereby sign the CLA') | ||||||||||||||
| permissions: | ||||||||||||||
| contents: write | ||||||||||||||
| pull-requests: write | ||||||||||||||
| actions: read | ||||||||||||||
| steps: | ||||||||||||||
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 | ||||||||||||||
| with: | ||||||||||||||
| ref: main | ||||||||||||||
| persist-credentials: false | ||||||||||||||
| - uses: contributor-assistant/github-action@ca4a40a7d1004f18d9960b404b97e5f30a505a08 # v2.6.1 | ||||||||||||||
| env: | ||||||||||||||
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||||||||||||||
| with: | ||||||||||||||
| path-to-signatures: .github/cla-signatures.json | ||||||||||||||
| path-to-document: CLA.md | ||||||||||||||
| branch: main | ||||||||||||||
| custom-notsigned-prcomment: | | ||||||||||||||
| Thank you for your contribution! Before we can merge this PR, you need to sign the [Contributor License Agreement](https://github.com/${{ github.repository }}/blob/main/CLA.md). | ||||||||||||||
|
|
||||||||||||||
| **To sign**, please reply to this comment with the following exact text: | ||||||||||||||
|
|
||||||||||||||
| > I have read the CLA Document and I hereby sign the CLA | ||||||||||||||
|
|
||||||||||||||
| You only need to sign once — it covers all future contributions. | ||||||||||||||
| custom-pr-sign-comment: I have read the CLA Document and I hereby sign the CLA | ||||||||||||||
| custom-allsigned-prcomment: All contributors have signed the CLA. Thank you! | ||||||||||||||
| lock-pullrequest-aftermerge: false | ||||||||||||||
| use-dco-flag: false | ||||||||||||||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -16,7 +16,32 @@ jobs: | |
| pull-requests: write | ||
| steps: | ||
| - uses: googleapis/release-please-action@16a9c90856f42705d54a6fda1823352bdc62cf38 # v4.4.0 | ||
| id: release | ||
| with: | ||
| token: ${{ secrets.RELEASE_PLEASE_TOKEN }} | ||
| config-file: .github/release-please-config.json | ||
| manifest-file: .github/.release-please-manifest.json | ||
|
|
||
| # When Release Please creates/updates a release PR, update the BSL | ||
| # Change Date to 3 years from today. The date update ships as part | ||
| # of the release PR, so it goes through normal review + merge flow. | ||
| - name: Checkout Release PR branch | ||
| if: steps.release.outputs.pr != '' | ||
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 | ||
| with: | ||
| ref: release-please--branches--main # must match the repo default branch name | ||
| token: ${{ secrets.RELEASE_PLEASE_TOKEN }} | ||
|
Comment on lines
+28
to
+33
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
rg -n "actions/checkout@|persist-credentials|RELEASE_PLEASE_TOKEN|git push" .github/workflows/release.ymlRepository: Aureliolo/synthorg Length of output: 275 🏁 Script executed: cat -n .github/workflows/release.yml | head -60Repository: Aureliolo/synthorg Length of output: 2090 🌐 Web query:
💡 Result: Best practice (vs “inline token in git URL”)
Example (safe default: no persisted git creds)permissions:
contents: read
steps:
- uses: actions/checkout@v6
with:
persist-credentials: false
fetch-depth: 0Example (need to checkout another private repo)permissions:
contents: read
steps:
- uses: actions/checkout@v6
with:
repository: my-org/my-private-tools
token: ${{ secrets.GH_PAT }}
persist-credentials: falseWhy avoid “inline auth” (e.g., Avoid persisting PAT credentials during checkout. The code checks out with a PAT without Consider instead:
🧰 Tools🪛 GitHub Actions: Workflow Security[warning] 28-28: Checkout Release PR branch: persist-credentials not set to false. 🤖 Prompt for AI Agents |
||
|
|
||
| - name: Update BSL Change Date (release + 3 years) | ||
| if: steps.release.outputs.pr != '' | ||
|
Comment on lines
+29
to
+36
|
||
| run: | | ||
| new_date=$(LC_TIME=C date -d "+3 years" "+%B %-d, %Y") # GNU date (ubuntu-latest) | ||
| echo "Updating Change Date to: $new_date" | ||
| sed -i "s/^Change Date: .*/Change Date: $new_date/" LICENSE | ||
| grep -q "^Change Date:.*$new_date" LICENSE || { echo "ERROR: sed pattern did not match; Change Date was not updated"; exit 1; } | ||
| git config user.name "github-actions[bot]" | ||
| git config user.email "41898282+github-actions[bot]@users.noreply.github.com" | ||
| git add LICENSE | ||
| git diff --cached --quiet && echo "Change Date already up to date" && exit 0 | ||
|
greptile-apps[bot] marked this conversation as resolved.
|
||
| git commit -m "chore: update BSL Change Date to $new_date" | ||
| git push | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,119 @@ | ||
| # SynthOrg Contributor License Agreement | ||
|
|
||
| Thank you for your interest in contributing to SynthOrg. This Contributor | ||
| License Agreement ("Agreement") documents the rights granted by contributors | ||
| to the SynthOrg project. | ||
|
|
||
| This is a legally binding document, so please read it carefully before agreeing. | ||
|
|
||
| ## 1. Definitions | ||
|
|
||
| "You" (or "Your") means the copyright owner or legal entity authorized by the | ||
| copyright owner that is making this Agreement. For legal entities, the entity | ||
| making a contribution and all other entities that control, are controlled by, or | ||
| are under common control with that entity are considered to be a single | ||
| contributor. | ||
|
|
||
| "Contribution" means any original work of authorship, including any | ||
| modifications or additions to an existing work, that is intentionally submitted | ||
| by You to SynthOrg for inclusion in, or documentation of, the project. For the | ||
| purposes of this definition, "submitted" means any form of electronic, verbal, | ||
| or written communication sent to the project maintainers, including but not | ||
| limited to communication on electronic mailing lists, source code control | ||
| systems, and issue tracking systems that are managed by, or on behalf of, the | ||
| project for the purpose of discussing and improving the work. | ||
|
|
||
| "Project" means the SynthOrg software project, including all repositories under | ||
| the SynthOrg organization. | ||
|
|
||
| ## 2. Grant of Copyright License | ||
|
|
||
| Subject to the terms and conditions of this Agreement, You hereby grant to the | ||
| Project maintainers and to recipients of software distributed by the Project 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 and conditions of this Agreement, You hereby grant to the | ||
| Project maintainers and to recipients of software distributed by the Project 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 work, where such license applies only to those patent | ||
| claims licensable by You that are necessarily infringed by Your Contribution(s) | ||
| alone or by combination of Your Contribution(s) with the work to which such | ||
| Contribution(s) was submitted. | ||
|
|
||
| ## 4. Outbound Licensing | ||
|
|
||
| As a condition on the grant of rights in Sections 2 and 3, the Project | ||
| maintainers agree to license the Contribution under the terms of the license(s) | ||
| that the Project uses for the work at the time of the Contribution (including | ||
| any additional licensing arrangements). The Project may offer the Contribution | ||
| under additional license terms, including commercial licenses, to enable | ||
| dual-licensing. | ||
|
|
||
| ## 5. Representations | ||
|
|
||
| You represent that: | ||
|
|
||
| (a) You are legally entitled to grant the above licenses. If your employer(s) | ||
| has rights to intellectual property that you create that includes your | ||
| Contributions, 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 to the Project. | ||
|
|
||
| (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 (including, but not limited to, related patents and | ||
| trademarks) of which you are personally aware and which are associated with any | ||
| part of Your Contributions. | ||
|
|
||
| (c) 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. | ||
|
|
||
| ## 6. Retention of Rights | ||
|
|
||
| You retain ownership of the copyright in Your Contributions. This Agreement | ||
| does not transfer ownership; it only grants the licenses described above. You | ||
| are free to use Your Contributions in any way you see fit, including licensing | ||
| them to others under any terms you choose. | ||
|
|
||
| ## 7. Attribution | ||
|
|
||
| The Project maintainers will make reasonable efforts to include attribution to | ||
| contributors, such as maintaining a contributors list or preserving authorship | ||
| information in version control history. | ||
|
|
||
| ## 8. No Obligation | ||
|
|
||
| You acknowledge that the Project maintainers are under no obligation to accept | ||
| or include Your Contributions in the Project. | ||
|
|
||
| --- | ||
|
|
||
| ## How to Sign | ||
|
|
||
| When you open your first pull request to SynthOrg, a bot will comment asking | ||
| you to sign this CLA. To sign, reply to the bot's comment with the exact text | ||
| it specifies. Your signature is stored in this repository at | ||
| `.github/cla-signatures.json`. | ||
|
|
||
| You only need to sign once — the agreement covers all future contributions. | ||
|
|
||
| --- | ||
|
|
||
| ## Corporate Contributions | ||
|
|
||
| If you are making contributions on behalf of a company or organization, an | ||
| authorized representative of the organization must sign a Corporate CLA. To | ||
| initiate this, please open an issue titled "Corporate CLA: [Organization Name]" | ||
| and a maintainer will follow up. | ||
|
|
||
| The Corporate CLA covers the same terms as above, extended to all employees and | ||
| contractors authorized by the organization to contribute. The authorized | ||
| representative must list the GitHub usernames of individuals covered by the | ||
| agreement. |
Uh oh!
There was an error while loading. Please reload this page.