Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
b8898cf
Ultralytics CLA Action
UltralyticsAssistant Oct 20, 2024
a892cae
Ultralytics CLA Action
UltralyticsAssistant Oct 20, 2024
0632ac5
Auto-format by https://ultralytics.com/actions
UltralyticsAssistant Oct 20, 2024
02b94d7
Update action.yml
glenn-jocher Oct 21, 2024
68efcb7
Merge branch 'main' into cla-branch
glenn-jocher Oct 21, 2024
0c12b0f
Auto-format by https://ultralytics.com/actions
UltralyticsAssistant Oct 21, 2024
e13f5b9
Simplify Actions
UltralyticsAssistant Oct 21, 2024
62d31c0
Auto-format by https://ultralytics.com/actions
UltralyticsAssistant Oct 21, 2024
4e5b295
Simplify Actions
UltralyticsAssistant Oct 21, 2024
c68104a
Simplify Actions
UltralyticsAssistant Oct 21, 2024
1395196
Simplify Actions
UltralyticsAssistant Oct 21, 2024
5eb4caa
Simplify Actions
UltralyticsAssistant Oct 21, 2024
dfb9b60
Simplify Actions
UltralyticsAssistant Oct 21, 2024
b56f11b
Merge branch 'main' into cla-branch
glenn-jocher Oct 21, 2024
7705f58
Update action.yml
glenn-jocher Oct 21, 2024
0534a9e
Merge branch 'main' into cla-branch
glenn-jocher Oct 21, 2024
9255e68
Merge branch 'main' into cla-branch
glenn-jocher Oct 23, 2024
c1c2b12
Merge branch 'main' into cla-branch
glenn-jocher Oct 26, 2024
6fc2263
Update action.yml
glenn-jocher Oct 27, 2024
5cf3b37
Merge branch 'main' into cla-branch
glenn-jocher Oct 27, 2024
b8eca82
Merge branch 'main' into cla-branch
glenn-jocher Nov 7, 2024
cc6dba1
Merge branch 'main' into cla-branch
glenn-jocher Nov 18, 2024
f5c49f7
Update action.yml
glenn-jocher Nov 18, 2024
ebe6a4a
Merge branch 'main' into cla-branch
glenn-jocher Nov 19, 2024
deb279f
Auto-format by https://ultralytics.com/actions
UltralyticsAssistant Nov 19, 2024
3c2ee16
Merge branch 'main' into cla-branch
glenn-jocher Nov 21, 2024
f36e315
Merge branch 'main' into cla-branch
glenn-jocher Nov 21, 2024
8f4198b
Merge branch 'main' into cla-branch
glenn-jocher Nov 26, 2024
23ceca5
Merge branch 'main' into cla-branch
UltralyticsAssistant Dec 5, 2024
bf9385d
Merge branch 'main' into cla-branch
glenn-jocher Dec 8, 2024
8e46a29
Merge branch 'main' into cla-branch
glenn-jocher Jan 1, 2025
5b707f4
Merge branch 'main' into cla-branch
glenn-jocher Jan 8, 2025
c141d66
Merge branch 'main' into cla-branch
glenn-jocher Apr 28, 2025
1c69bf1
Merge branch 'main' into cla-branch
glenn-jocher Apr 28, 2025
58e8aad
Merge branch 'main' into cla-branch
glenn-jocher Apr 29, 2025
91ba653
Merge branch 'main' into cla-branch
glenn-jocher Apr 29, 2025
4b35227
Update check_cla.py
glenn-jocher Apr 29, 2025
de1180e
Auto-format by https://ultralytics.com/actions
UltralyticsAssistant Apr 29, 2025
586a0dd
Merge branch 'main' into cla-branch
glenn-jocher May 10, 2025
5096bf5
Merge branch 'main' into cla-branch
glenn-jocher May 11, 2025
4f13f92
Auto-format by https://ultralytics.com/actions
UltralyticsAssistant May 11, 2025
9541ccb
Merge branch 'main' into cla-branch
glenn-jocher May 11, 2025
77f8582
Merge branch 'main' into cla-branch
glenn-jocher May 13, 2025
a5a35ac
Merge branch 'main' into cla-branch
glenn-jocher May 25, 2025
a79606e
Merge branch 'main' into cla-branch
glenn-jocher May 30, 2025
c130a8b
Merge branch 'main' into cla-branch
glenn-jocher Oct 19, 2025
de48a5e
Merge branch 'main' into cla-branch
glenn-jocher Oct 19, 2025
684fd80
Merge branch 'main' into cla-branch
glenn-jocher Oct 21, 2025
fadbf2a
Merge branch 'main' into cla-branch
glenn-jocher Oct 21, 2025
235696b
Merge branch 'main' into cla-branch
glenn-jocher Oct 29, 2025
31298ca
Merge branch 'main' into cla-branch
glenn-jocher Oct 30, 2025
e61c390
Merge branch 'main' into cla-branch
glenn-jocher Oct 31, 2025
fd5b446
Merge branch 'main' into cla-branch
glenn-jocher Nov 6, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 26 additions & 0 deletions actions/check_cla.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Ultralytics πŸš€ AGPL-3.0 License - https://ultralytics.com/license

import os


def main():
"""Check CLA on pull requests."""
print("RUNNING CHECK_CLA FUNCTION")
os.environ.get("GITHUB_TOKEN")
os.environ.get("CLA_REPOSITORY")
os.environ.get("CLA_BRANCH")
os.environ.get("CLA_SIGNATURES_PATH")
os.environ.get("CLA_DOCUMENT_URL")
os.environ.get("ALLOWLIST", "").split(",")
os.environ.get("SIGN_COMMENT")
os.environ.get("ALLSIGNED_COMMENT")

# Your CLA check logic here
# Note: You can extract the organization and repository name if needed:
# org, repo = cla_repository.split('/', 1) if '/' in cla_repository else ('', cla_repository)

# ... rest of your CLA check logic ...

Comment on lines +8 to +23

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

❗ CRITICAL: main() exits successfully without consuming any of the inputs or performing a CLA check, so the action will never catch unsigned contributors. Please implement the verification logic (and fail fast when checks fail) before wiring this into workflows; otherwise every run will report success regardless of CLA status.


if __name__ == "__main__":
main()
76 changes: 76 additions & 0 deletions cla/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
# Ultralytics πŸš€ AGPL-3.0 License - https://ultralytics.com/license

name: "Ultralytics CLA"
description: "Checks if contributors have signed the Ultralytics Contributor License Agreement"
inputs:
github-token:
description: "GitHub token"
required: true
cla_repository:
description: "GitHub repository name for storing CLA signatures (including organization, e.g., 'org/repo')"
required: true
cla_branch:
description: "Branch to store CLA signatures"
required: true
default: "cla-signatures"
cla_signatures_path:
description: "Path to the JSON file containing CLA signatures"
required: true
default: "signatures/version1/cla.json"
cla_document_url:
description: "URL to the CLA document"
required: true
default: "https://docs.ultralytics.com/help/CLA"
allowlist:
description: "Comma-separated list of users/bots to ignore"
required: false
default: "dependabot[bot],github-actions,bot*"
sign_comment:
description: "Comment to trigger CLA signing"
required: true
default: "I have read the CLA Document and I sign the CLA"
allsigned_comment:
description: "Comment to post when all contributors have signed"
required: true
default: "All Contributors have signed the CLA. βœ…"
openai_api_key:
description: "OpenAI API Key"
required: false
openai_model:
description: "OpenAI Model"
required: false
default: "gpt-4o"

runs:
using: "composite"
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.x"

- name: Install dependencies
run: |
python -m pip install --upgrade pip wheel
pip install -q git+https://github.com/ultralytics/actions@cla-branch
# pip install -q ultralytics-actions
ultralytics-actions-info
shell: bash

- name: Check CLA
env:
GITHUB_TOKEN: ${{ inputs.github-token }}
CLA_REPOSITORY: ${{ inputs.cla_repository }}
CLA_BRANCH: ${{ inputs.cla_branch }}
CLA_SIGNATURES_PATH: ${{ inputs.cla_signatures_path }}
CLA_DOCUMENT_URL: ${{ inputs.cla_document_url }}
ALLOWLIST: ${{ inputs.allowlist }}
SIGN_COMMENT: ${{ inputs.sign_comment }}
ALLSIGNED_COMMENT: ${{ inputs.allsigned_comment }}
OPENAI_API_KEY: ${{ inputs.openai_api_key }}
OPENAI_MODEL: ${{ inputs.openai_model }}
run: ultralytics-actions-check-cla
shell: bash
1 change: 1 addition & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,7 @@ ultralytics-actions-update-markdown-code-blocks = "actions.update_markdown_code_
ultralytics-actions-headers = "actions.update_file_headers:main"
ultralytics-actions-format-python-docstrings = "actions.format_python_docstrings:main"
ultralytics-actions-info = "actions.utils:ultralytics_actions_info"
ultralytics-actions-check-cla = "actions.check_cla:main"

[tool.setuptools]
packages = { find = { where = ["."], include = ["actions", "actions.*"] } }
Expand Down
Loading