我对GitHub操作非常陌生。试图构建一个工作流程,可以给予我的目标目录列表的基础上,最新的标签,我可以把矩阵作业作进一步处理(地形应用)。
我的labeler.yml
有下面的路径,我正在使用actions/labeler@v4
在我的主pull_request工作流中添加相应的标签,没有任何问题。
dev_us-west-1: env/dev/us-west-1/*
tst_us-west-2: env/tst/us-west-2/*
prd_eu-west-1: env/prd/eu-west-1/*
第二个工作流程:在这里,我想获取标签,并在此基础上,我想选择各自的目标目录。下面是我未完成的工作流程,现在可以获取JSON数组中的标签。但是,如何从输出中获取标签名称,并循环遍历labeler.yml
文件,以获得可用于进一步处理的目录列表?
name: label_target_check
on:
issue_comment:
permissions:
contents: read
pull-requests: write
issues: write
jobs:
help:
if: ${{ github.event.issue.pull_request && startsWith(github.event.comment.body, 'apply') }}
runs-on: ubuntu-latest
steps:
- name: Fetch PR Branch
uses: xt0rted/pull-request-comment-branch@v2
id: comment-branch
- name: Checkout
uses: actions/checkout@v3
with:
ref: ${{ steps.comment-branch.outputs.head_ref }}
- name: Generate token
uses: tibdex/github-app-token@v1
id: get_installation_token
with:
app_id: ${{ secrets.APP_ID }}
private_key: ${{ secrets.PRIVATE_KEY }}
- uses: octokit/request-action@v2.x
id: get_latest_label
with:
route: GET /repos/${{ github.repository }}/issues/${{ github.event.issue.number }}/labels
env:
GITHUB_TOKEN: ${{ steps.get_installation_token.outputs.token }}
- run: "echo labels: '${{ steps.get_latest_label.outputs.data }}'"
问题的标签输出:
[
{
"id": 5447687240,
"node_id": "LA_kwDOJME-rhrtrtjnK1lSA",
"url": "https://api.github.com/repos/MyOrg/MyRepo/labels/dev_us-west-1",
"name": "dev_us-west-1",
"color": "ededed",
"default": false,
"description": null
},
{
"id": 5898781642,
"node_id": "LA_kwDOJME-derhehehK1lSg",
"url": "https://api.github.com/repos/MyOrg/MyRepo/labels/prd_eu-west-1",
"name": "prd_eu-west-1",
"color": "ededed",
"default": false,
"description": null
}
]
1条答案
按热度按时间djp7away1#
您可以使用
jq
和yq
执行以下操作:使用上面的JSON,输出将是:
您可以根据您的用例进一步处理此问题。