Tenemos un control que se ejecuta en PR:
name: check_time on: pull_request: types: - synchronize - opened - reopened issue_comment: types: - created jobs: check_time: runs-on: ubuntu-latest # run this if this event is not triggered by comment created (ie triggered by PR opened) # or run this if the comment was created on a PR if: ${{ !github.event.comment || (github.event.issue.pull_request && contains(github.event.comment.body, '/check_time')) }} steps: ...Nos gustaría poder activar esta verificación en un horario. Entonces, de vez en cuando, para cada solicitud de extracción abierta, vuelva a ejecutar esta verificación. Aquí está el intento de implementación a continuación:
name: trigger_check_time on: workflow_dispatch: inputs: reason: description: 'Manual trigger of check-time' required: false schedule: - cron: '5 20 * * *' jobs: provide_prs_json: runs-on: ubuntu-latest outputs: matrix: ${{ steps.set_matrix.outputs.matrix }} steps: - uses: actions/checkout@v3 - name: List Pull Requests id: list_prs uses: actions/github-script@v6 with: github-token: ${{secrets.GITHUB_TOKEN}} script: | const response = await github.rest.pulls.list({ owner: 'xxxx', repo: 'yyyy', }); const prs = response.data.map(pr => pr.number); console.log(`found ${prs.length} prs: ${JSON.stringify(prs)}`); return prs; - name: Set Matrix id: set_matrix run: echo ::set-output name=matrix::'${{ steps.list_prs.outputs.result }}' dispatch_event: needs: provide_prs_json runs-on: ubuntu-latest strategy: # the real magic happens here - create dynamic matrix from the json matrix: pr: ${{ fromJson(needs.provide_prs_json.outputs.matrix) }} steps: - name: Comment PR id: comment_pr uses: actions/github-script@v6 with: github-token: ${{secrets.GITHUB_TOKEN}} result-encoding: string script: | try { github.rest.issues.createComment({ owner: 'xxxx', repo: 'yyyy', issue_number: ${{ matrix.pr }}, body: "/check_time", }); } catch (e) {} Todo lo anterior funciona bien en el sentido de que encuentra todos los PR y comentarios en sus hilos, pero el comentario no activa la ejecución del flujo de trabajo check_time . Supongo que esto se debe a que los eventos github-actions no desencadenan otros eventos. ¿Hay alguna forma de comentar como usuario en su lugar?
También analicé el uso del evento workflow_dispatch , pero no estoy seguro de cómo ejecutar el flujo de trabajo check_time en el contexto de cada PR (es decir, si el flujo de trabajo check_time falla, los PR ya no deberían poder fusionarse).