Repository navigation
Conversation
Contributors sign once, by commenting on their first pull request, and grant the licensor the right to relicense their contributions under any terms, including commercial ones. ThinkWatch sells commercial licences, and code moves between ThinkWatch, ThinkWatch Lite and ThinkWatch Core, so outside contributions need that grant. CLA.md is the agreement, the same in all three repositories, with a Chinese translation in which the English text governs. The CLA workflow runs CLA Assistant Lite v2.6.1, pinned by commit, on pull_request_target and issue_comment. It never checks out PR code, uses only GITHUB_TOKEN, and records signatures in signatures/cla.json on an orphan cla-signatures branch of this repository. A step before the action creates that branch, because the action cannot start the file itself: it compares the 404 for a missing file with the string "404". The Business Source License now names the same licensor as the agreement: the holder of the GitHub account @fylorn, and that holder's heirs, successors and assigns, replacing "ThinkWatch Contributors", which is not a party that can grant or receive a licence. The README contributing sections link the agreement. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this adds
CLA.md, the Contributor License Agreement, identical in ThinkWatch, ThinkWatch Lite and ThinkWatch Core and naming all three as the covered repositories. The contributor keeps copyright and grants a perpetual, worldwide, non-exclusive, royalty-free, irrevocable licence to use, modify, distribute, sublicense and relicense under any terms, including proprietary and commercial ones; a patent licence that ends for anyone who brings patent litigation over the contribution or the project; the usual representations (original work or identified third-party material, right to grant, employer permission); no obligation to use the contribution; no warranty; a duty to report inaccuracies. The licensor is the holder of the GitHub account @fylorn (https://github.com/fylorn), and that holder's heirs, successors and assigns, and section 6 lets the licensor assign the rights, in whole or in part, to any person or entity (for example a company formed later to run the project), with the grant then benefiting the assignee. Section 10 tells signers which signature data is stored publicly.CLA.zh-CN.md, a Chinese translation that states the English text governs..github/workflows/cla.yml, which runs CLA Assistant Lite v2.6.1, pinned toca4a40a7d1004f18d9960b404b97e5f30a505a08(the latest release; the tag points directly at that commit).CONTRIBUTING.md: a short section on signing once.How the workflow behaves
pull_request_target(opened, synchronize, reopened, closed) andissue_comment(created). The job runs for PR events (a close only if merged, to lock it), and for PR comments that are exactlyI have read the CLA Document and I hereby sign the CLAorrecheck.actions/checkout, no build. It uses onlyGITHUB_TOKEN; no personal access token, no cross-repository token.signatures/cla.jsonon acla-signaturesbranch of this repository. A first step creates that branch if it is missing, as an orphan holding only the signature file. This step is needed: the action's own "create the file" path never runs, because v2.6.1 compares the 404 for a missing file with the string"404"(dist/index.jsline 984), so a missing branch or file fails every run. The orphan branch has no workflows on it and writes made withGITHUB_TOKENstart no workflow runs, so recording a signature triggers no CI; no CI trigger needed an exclusion.actions: write(the action re-runs the failed check after someone signs),contents: write(signature file),pull-requests: write(comments, post-merge lock). The action's README also listsstatuses: write, but the action never calls the commit status API (checked in its source at the pinned commit), so it is left out.fylorn,dependabot[bot],renovate[bot],github-actions[bot],*[bot](the action supports*wildcards).lock-pullrequest-aftermerge: true), as the action recommends.path-to-documentpoints atCLA.mdonmain, the default branch.When it starts working
pull_request_targetruns the workflow from the PR's base branch, so once this is merged intodev, PRs opened againstdevafter that get the bot's comment and the check. Signing by comment works only oncecla.ymlis onmain(the next release, whendevreachesmain):issue_commentalways runs the copy on the default branch. Until then a signature comment is not acted on right away; the next push to that PR picks it up, because thesynchronizerun reads the PR's comments. TheCLA.mdlink in the bot's comment points atmaintoo, so it returns 404 until then. Nothing was pushed tomainfor this.Licensor in the Business Source License
Every changed line outside the new files and CONTRIBUTING.md:
LICENSE(BSL 1.1 text and every other parameter unchanged):README.md, Contributing section, one added line:+Your first pull request asks you to sign the [Contributor License Agreement](CLA.md) once; [CONTRIBUTING.md](CONTRIBUTING.md) explains how.README.zh-CN.md, 贡献 section, one added line:+首次提交 PR 时需签署一次[贡献者许可协议](CLA.zh-CN.md),签署方法见 [CONTRIBUTING.md](CONTRIBUTING.md)。Searched for other places that name a licensor or a party granting commercial licences:
LICENSING.md,LICENSING.zh-CN.md, both READMEs,docs/,web/(i18n strings, the Usage & License page),deploy/helm/think-watch/Chart.yaml,web/package.json, Cargo metadata. None do, so nothing else changed. "ThinkWatch Contributors" appeared only inLICENSE.Open items for the maintainer:
LICENSEthey shipped with.LICENSEsaysCopyright (c) 2026 ThinkWatch, and Lite'sNOTICEsaysCopyright (c) ThinkWatch Project.Not changed here
Verified
actionlint1.7.12 with shellcheck: no findings forcla.yml.jqpayloads of the branch-creation step locally; the file content parses as{"signedContributors": []}, the shape the action reads and appends to.🤖 Generated with Claude Code