|
@@ -0,0 +1,46 @@
|
|
|
|
+name: Label PR if failed
|
|
|
|
+on:
|
|
|
|
+ workflow_run:
|
|
|
|
+ workflows: [ "build" ]
|
|
|
|
+ types:
|
|
|
|
+ - completed
|
|
|
|
+jobs:
|
|
|
|
+ apply_label:
|
|
|
|
+ if: ${{ github.event.workflow_run.event == 'pull_request' && github.event.workflow_run.conclusion == 'failure' }}
|
|
|
|
+ runs-on: ubuntu-20.04
|
|
|
|
+ steps:
|
|
|
|
+ - name: 'Download artifact'
|
|
|
|
+ uses: actions/[email protected]
|
|
|
|
+ with:
|
|
|
|
+ # scripts lightly modified from https://securitylab.github.com/research/github-actions-preventing-pwn-requests
|
|
|
|
+ script: |
|
|
|
|
+ var artifacts = await github.actions.listWorkflowRunArtifacts({
|
|
|
|
+ owner: context.repo.owner,
|
|
|
|
+ repo: context.repo.repo,
|
|
|
|
+ run_id: ${{github.event.workflow_run.id }},
|
|
|
|
+ });
|
|
|
|
+ var matchArtifact = artifacts.data.artifacts.filter((artifact) => {
|
|
|
|
+ return artifact.name == "pr"
|
|
|
|
+ })[0];
|
|
|
|
+ var download = await github.actions.downloadArtifact({
|
|
|
|
+ owner: context.repo.owner,
|
|
|
|
+ repo: context.repo.repo,
|
|
|
|
+ artifact_id: matchArtifact.id,
|
|
|
|
+ archive_format: 'zip',
|
|
|
|
+ });
|
|
|
|
+ var fs = require('fs');
|
|
|
|
+ fs.writeFileSync('${{github.workspace}}/pr.zip', Buffer.from(download.data));
|
|
|
|
+ - run: unzip pr.zip
|
|
|
|
+ - name: Label PR
|
|
|
|
+ uses: actions/github-script@v3
|
|
|
|
+ with:
|
|
|
|
+ github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
+ script: |
|
|
|
|
+ var fs = require('fs');
|
|
|
|
+ var issue_number = Number(fs.readFileSync('./NR'));
|
|
|
|
+ await github.issues.addLabels({
|
|
|
|
+ owner: context.repo.owner,
|
|
|
|
+ repo: context.repo.repo,
|
|
|
|
+ issue_number: issue_number,
|
|
|
|
+ labels: ['PR: Please Update']
|
|
|
|
+ });
|