我的组织希望在我们的公共转发上使用我们的CI工具。目前,任何人都可以触发工作流程并侵蚀我们的AWS帐户。有没有办法设置我们的工作流程,使其只能由我们的组织成员运行?
您不需要更改任何默认设置,因为只有对您的repo具有写访问权限的用户才能触发操作,并且默认情况下,公众不应具有直接写访问权限。
不幸的是,目前无法检查您的组织是否包含触发工作流的github.actor
。
如果您拥有GitHub Enterprise,则可以创建一个受保护的环境,在该环境中,工作流运行前需要获得批准。
从技术上讲,可以根据用户名列表(如下所示(检查谁在触发操作,但没有什么能阻止具有写入权限的人修改工作流yml,将自己添加到可以触发workflow_dispatch操作的用户列表中因此不建议这样做
if: contains('["kingthorin","lpoulter"]', github.actor)
例如:
name: Docker Build Action
on:
workflow_dispatch:
jobs:
build:
if: contains('["kingthorin","lpoulter"]', github.actor)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Build the Docker image
run: docker build .