This guide walks you through integrating the CLAassistant bot with your GitHub repository to automate CLA signing enforcement.
CLAassistant is a third-party service that:
- Automatically checks PR authors against a CLA registry
- Posts a comment on PRs with a signing link (if not signed)
- Provides a status check that can be required before merge
- Stores signatures securely with immutable audit trail
- Works with GitHub Pull Requests natively
Benefits:
- ✅ Zero maintenance — no custom code required
- ✅ Contributor-friendly — simple 2-minute signing process
- ✅ Immutable audit trail — signatures recorded in PR comments
- ✅ Optional branch protection — can enforce hard requirement to sign
- GitHub repository with admin/maintainer access
- No GitHub App installation required initially (can authorize on first login)
- Go to claassistant.io
- Click "Sign in with GitHub"
- Authorize the CLAassistant GitHub App to access your profile
- Permissions: Read public profile, access repositories (for linking)
- You'll be redirected to the CLAassistant dashboard
- In the CLAassistant dashboard, click "New Project" or "Add Repository"
- Select the SlateFlow repository from the dropdown
- If not listed, click "Refresh" to sync your repos
- You must have admin access to the repository
- Click "Link" or "Next"
-
In the project settings, navigate to "CLA Document" or "Agreement"
-
Choose upload method:
- Option A: Direct Paste — Copy the full text from CLA.md and paste into the text editor
- Option B: Upload File — If available, upload the
CLA.mdfile directly - Option C: URL — If CLA.md is publicly hosted, link the URL
-
Paste the CLA text:
# SlateFlow Individual Contributor License Agreement [Full text from CLA.md starting at line 1] ... -
Click "Save" or "Confirm"
-
In project settings, look for "Settings" or "Configuration" section
-
Configure these options:
Setting Value Notes CLA Type Individual We only use Individual CLA (not Corporate) Require Email Yes Contributor must provide valid email Allow GitHub OAuth Yes (optional) Simplifies sign-in if contributors want it Whitelist Mode Off (initially) Enable later if whitelisting maintainers Allow PR to proceed No CLA check must pass before merge consideration Signature retention Unlimited Keep signatures indefinitely for audit trail -
Click "Save Settings"
- Back in the project settings, look for "GitHub Integration" or "Authorize App"
- Click "Install GitHub App" or "Authorize"
- You'll be redirected to GitHub's authorization page
- Select the SlateFlow repository to grant CLAassistant access
- Click "Install" or "Authorize"
- CLAassistant will be redirected back to confirm success
To make the CLA check a hard requirement before merge, configure GitHub branch protection:
- Go to your GitHub repository
- Navigate to Settings → Branches → Branch protection rules
- Click "Add rule" (if none exist) or edit the existing rule for
main - Under "Require status checks to pass before merging":
- Search for
"CLAassistant"and select it - Checkmark it as required
- Search for
- Scroll down and click "Create" or "Update"
Result: PRs cannot be merged without ✅ "CLA Signed" status.
-
Create a test branch in your local repo:
git checkout -b test/cla-check git commit --allow-empty -m "test: CLA bot integration" git push origin test/cla-check -
Open a Draft Pull Request on GitHub from
test/cla-check→main- Title: "Test: CLA Bot Integration"
- Description: "This is a test PR to verify CLAassistant bot integration"
- Mark as Draft (don't request review yet)
-
Wait a few seconds for CLAassistant bot to post a comment
- You should see a comment like: ❌ "CLA Not Signed — Please sign the CLA to proceed"
- The comment includes a link: "Sign CLA"
-
Click the "Sign CLA" link
- A modal or new tab opens with the CLA signing form
- Fill in: Full Name, Email, optionally GitHub OAuth
- Click "Sign"
-
Return to the GitHub PR
- Refresh the page
- CLAassistant bot should post an update: ✅ "CLA Signed"
- The PR status check should now show green
-
Clean up:
git push origin --delete test/cla-check # delete remote branch git branch -D test/cla-check # delete local branch
- Try to merge the test PR directly (without re-opening or changing status)
- You should see: "Branch protection rule" blocks merge until CLA check passes
- Try merging after CLA signature is confirmed (✅ status)
- Merge should succeed
If you want core maintainers to skip CLA signing for rapid iteration:
- In CLAassistant project settings, find "Whitelisted Users" or "Exemptions"
- Add GitHub usernames of maintainers (e.g.,
@your-github-handle,@coauthor1) - These users' PRs will skip CLA check automatically (status will show ✅ without signing)
- Click "Save"
Once CLAassistant is live, inform your contributor community:
- Update README.md — Add a line: "All contributions require a signed CLA (see CONTRIBUTING.md and CLA.md)"
- Announce in Discussions or Issues — Post a pinned issue explaining the new CLA requirement
- Existing PRs — Comment on open PRs to let contributors know they'll need to sign before merge
- Welcome guide — Reference CLA_FAQ.md in your onboarding docs
Possible causes:
- CLAassistant GitHub App not authorized for the repository
- Bot is experiencing downtime
- PR was created before bot authorization
Fix:
- Check CLAassistant dashboard — verify repository is linked and active
- Re-authorize the app: GitHub Settings → Integrations → CLAassistant → Re-authorize
- Close and reopen the PR (or mention @CLAssistant in a comment to trigger re-check)
Possible causes:
- Branch protection rule not configured
- Status check named differently
Fix:
- In GitHub repo settings, verify branch protection rule includes CLAassistant status check
- In CLAassistant, verify GitHub App is authorized
Possible causes:
- GitHub username misspelled
- Whitelist setting not saved
- User not signed in with the whitelisted GitHub account when creating PR
Fix:
- Verify usernames in CLAassistant whitelist (double-check spelling)
- Whitelist user must create/push PR with the whitelisted account (if they use multiple accounts, it won't work)
Possible causes:
- User signed with different email than their GitHub-associated email
- Account linking issue
Fix:
- User can re-sign the CLA with their GitHub-associated email
- CLAassistant will recognize the new signature on the next PR
- CLAassistant Official Docs: https://claassistant.io/docs
- SlateFlow CLA: CLA.md
- CLA FAQ: docs/CLA_FAQ.md
- GitHub Branch Protection Docs: https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-protected-branches
- CLAassistant Support: Support email or chat at claassistant.io
- SlateFlow Maintainers: File an issue or discussion in the SlateFlow repo
Last updated: May 2026