Skip to content

Commit d6d89b2

Browse files
feat: add CLA Assistant and Scorecard configuration (#579)
- Add CLA Assistant workflow using DCO (Developer Certificate of Origin) - Add .scorecard.yml with annotations explaining legitimate binary artifacts - Create signatures/cla.json to store CLA signatures The CLA workflow integrates with existing DCO requirements and provides a better contributor experience with automated signature tracking. The Scorecard configuration documents why binary artifacts (HybridCLR, YooAsset bundles, AOT DLLs) are required for this Unity framework and cannot be removed. Signed-off-by: Jason Xu <jasonxudeveloper@gmail.com> Signed-off-by: JasonXuDeveloper - 傑 <jason@xgamedev.net>
1 parent 0838b30 commit d6d89b2

3 files changed

Lines changed: 75 additions & 0 deletions

File tree

.github/workflows/cla.yml

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
name: CLA Assistant
2+
3+
on:
4+
issue_comment:
5+
types: [created]
6+
pull_request_target:
7+
types: [opened, closed, synchronize]
8+
9+
# Explicit permissions following least-privilege principle
10+
permissions: read-all
11+
12+
jobs:
13+
cla:
14+
runs-on: ubuntu-latest
15+
permissions:
16+
actions: write
17+
contents: write
18+
pull-requests: write
19+
statuses: write
20+
if: |
21+
(github.event_name == 'pull_request_target') ||
22+
(github.event_name == 'issue_comment' && github.event.issue.pull_request && github.event.comment.body == 'recheck')
23+
steps:
24+
- name: CLA Assistant
25+
uses: contributor-assistant/github-action@v2.6.1
26+
env:
27+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
28+
with:
29+
# Use Developer Certificate of Origin (same as existing DCO check)
30+
path-to-document: 'https://developercertificate.org/'
31+
# Store signatures in the repository
32+
path-to-signatures: 'signatures/cla.json'
33+
branch: 'master'
34+
# Allowlist for bots that don't need to sign
35+
allowlist: 'bot*,*[bot],dependabot*,github-actions*,jengine-release-bot*'
36+
# Custom messages
37+
custom-notsigned-prcomment: |
38+
Thank you for your contribution! Before we can merge this PR, we need you to sign the [Developer Certificate of Origin](https://developercertificate.org/).
39+
40+
**To sign, please reply with the following comment:**
41+
```
42+
I have read the Developer Certificate of Origin and I hereby sign the DCO
43+
```
44+
45+
You can also sign all future contributions by adding `Signed-off-by: Your Name <your.email@example.com>` to your commit messages (use `git commit -s`).
46+
custom-pr-sign-comment: 'I have read the Developer Certificate of Origin and I hereby sign the DCO'
47+
custom-allsigned-prcomment: 'All contributors have signed the DCO. Thank you!'

.scorecard.yml

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# OpenSSF Scorecard Configuration
2+
# See https://github.com/ossf/scorecard/blob/main/docs/config.md
3+
4+
annotations:
5+
# Binary artifacts that are required for Unity framework functionality
6+
- checks:
7+
- binary-artifacts
8+
reasons:
9+
- reason: not-applicable
10+
annotation: |
11+
JEngine is a Unity hot-update framework that requires certain binary files:
12+
13+
1. HybridCLR Plugin (com.code-philosophy.hybridclr):
14+
- Native DLLs for IL2CPP hot-update functionality
15+
- Required for runtime C# code execution
16+
17+
2. YooAsset Bundles (Assets/StreamingAssets/yoo):
18+
- Pre-built asset bundles for sample project
19+
- Demonstrate framework capabilities
20+
21+
3. AOT Compiled DLLs (Assets/HotUpdate/Compiled/AOT):
22+
- Unity engine module references
23+
- Required for IL2CPP builds
24+
25+
These binaries are from trusted sources (Unity, HybridCLR) and are
26+
essential for the framework to function. They cannot be built from
27+
source as they are platform-specific Unity artifacts.

signatures/cla.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"signedContributors": []}

0 commit comments

Comments
 (0)