如何在GitHub Actions的if表达式中判断requested_reviewers数组非空?
解决GitHub Actions中判断PR请求审阅者数组非空的问题
直接用以下两种可靠写法即可实现需求:
写法1:先检查字段非空再判断长度
if: github.event.pull_request.requested_reviewers != null && length(github.event.pull_request.requested_reviewers) > 0
写法2:结合数组存在性与非空判断
if: (github.event.pull_request.requested_reviewers != null) && (github.event.pull_request.requested_reviewers != [])
为什么之前的写法不生效?
当PR没有请求任何审阅者时,GitHub API返回的requested_reviewers字段是null,而非空数组[]。这就导致:
- 直接使用
length(...) > 0会因null没有length属性而判断失效 - 直接和
[]比较时,null != []的结果为true,会错误触发步骤(实际此时没有审阅者)
完整示例
jobs: trigger-on-reviewers: runs-on: ubuntu-latest steps: - name: Execute when reviewers are requested if: github.event.pull_request.requested_reviewers != null && length(github.event.pull_request.requested_reviewers) > 0 run: | echo "Number of requested reviewers: ${{ length(github.event.pull_request.requested_reviewers) }}" echo "Reviewers: ${{ toJSON(github.event.pull_request.requested_reviewers) }}"
内容的提问来源于stack exchange,提问作者Asking
相关产品推荐
相关产品推荐

