CLA助手GitHub Action使用教程
github-action CLA Assistant GitHub Action 项目地址: https://gitcode.com/gh_mirrors/git/github-action
1. 项目介绍
CLA助手GitHub Action是一个用于自动化处理贡献者许可协议(CLA)和开发者原创证书(DCO)的GitHub Action。它简化了开源项目中法律方面的贡献管理流程,允许贡献者在Pull Request中直接签署CLA。通过这个GitHub Action,我们可以避免集中式数据库的需求,将贡献者的签名数据存储在项目的文件系统中,甚至可以存储在远程私有仓库中。
主要特性
- 去中心化数据存储:签名数据存储在项目仓库中,无需集中式数据库。
- 完全集成在GitHub环境:无需额外的用户界面,贡献者可以通过Pull Request评论签署CLA。
- 灵活的签名存储:签名可以存储在本地仓库或远程仓库,甚至可以是私有仓库。
- 版本化签名:支持签名的版本管理。
2. 项目快速启动
2.1 添加Workflow文件
首先,在你的GitHub仓库中添加一个Workflow文件,路径为github/workflows/cla.yml
。以下是一个示例配置:
name: "CLA Assistant"
on:
issue_comment:
types: [created]
pull_request_target:
types: [opened, closed, synchronize]
permissions:
actions: write
contents: write
pull-requests: write
statuses: write
jobs:
CLAAssistant:
runs-on: ubuntu-latest
steps:
- name: "CLA Assistant"
if: >
(github.event.comment.body == 'recheck' || github.event.comment.body == 'I have read the CLA Document and I hereby sign the CLA') ||
github.event_name == 'pull_request_target'
uses: contributor-assistant/github-action@v2.6.1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
path-to-signatures: 'signatures/version1/cla.json'
path-to-document: 'https://github.com/cla-assistant/github-action/blob/master/SAPCLA.md'
branch: 'main'
allowlist: user1,bot*
2.2 触发CLA工作流
当Pull Request被打开、同步或关闭时,CLA工作流将被触发。工作流将在基础仓库中运行,确保所有贡献者签署CLA。
2.3 签署CLA
CLA工作流会在Pull Request中创建一个评论,要求未签署CLA的贡献者签署。贡献者可以通过在Pull Request评论中复制粘贴以下内容来签署CLA:
I have read the CLA Document and I hereby sign the CLA
2.4 签名存储
贡献者签署CLA后,签名数据将存储在指定的JSON文件中。默认路径为signatures/version1/cla.json
。如果需要将签名存储在远程仓库中,可以在Workflow文件中配置remote-organization-name
和remote-repository-name
。
3. 应用案例和最佳实践
3.1 开源项目管理
CLA助手GitHub Action特别适用于需要管理大量贡献者的开源项目。通过自动化CLA签署流程,项目维护者可以确保所有贡献者都遵守项目的法律要求,同时减少手动管理的工作量。
3.2 企业内部项目
在企业内部项目中,CLA助手GitHub Action可以帮助确保所有贡献者都签署了必要的法律协议。通过将签名存储在私有仓库中,企业可以更好地控制和保护敏感数据。
4. 典型生态项目
4.1 GitHub Actions生态
CLA助手GitHub Action是GitHub Actions生态系统中的一个重要组成部分。它与其他GitHub Actions无缝集成,帮助开发者自动化各种工作流程,包括CLA和DCO管理。
4.2 开源社区
许多知名的开源项目,如Kubernetes、TensorFlow等,都使用CLA助手GitHub Action来管理贡献者的法律协议。这些项目通过自动化CLA签署流程,提高了贡献者的参与度和项目的合规性。
通过以上步骤,你可以轻松地在你的GitHub项目中集成CLA助手GitHub Action,简化CLA管理流程,确保所有贡献者都遵守项目的法律要求。
github-action CLA Assistant GitHub Action 项目地址: https://gitcode.com/gh_mirrors/git/github-action