Skip to content

Add pull requests to the overview board #1513

Add pull requests to the overview board

Add pull requests to the overview board #1513

# SPDX-FileCopyrightText: 2023 Alliander N.V.
#
# SPDX-License-Identifier: Apache-2.0
name: Add pull requests to the overview board
on:
workflow_run:
workflows: [Prepare PR data]
types: [completed]
env:
todo: Pending
changes_requested: Changes Requested
approved: Approved
jobs:
read-data-and-automate:
runs-on: ubuntu-latest
if: github.event.workflow_run.conclusion == 'success'
outputs:
pr_node_id: ${{ steps.pr_node_id.outputs.content }}
event_action: ${{ steps.event_action.outputs.content }}
review_pr_node_id: ${{ steps.review_pr_node_id.outputs.content }}
review_state: ${{ steps.review_state.outputs.content }}
steps:
# Data retrieval steps in case of a PR event
- name: Download PR data artifact
if: github.event.workflow_run.event == 'pull_request' || github.event.workflow_run.event == 'pull_request_target'
uses: dawidd6/action-download-artifact@v2
with:
workflow: Prepare PR data
run_id: ${{ github.event.workflow_run.id }}
name: PR_DATA
- name: Read PR event's PR_NODE_ID.txt
if: github.event.workflow_run.event == 'pull_request' || github.event.workflow_run.event == 'pull_request_target'
id: pr_node_id
uses: juliangruber/read-file-action@v1
with:
path: ./PR_NODE_ID.txt
trim: true
- name: Read PR event's EVENT_ACTION.txt
if: github.event.workflow_run.event == 'pull_request' || github.event.workflow_run.event == 'pull_request_target'
id: event_action
uses: juliangruber/read-file-action@v1
with:
path: ./EVENT_ACTION.txt
trim: true
# Data retrieval steps in case of a PR review event
- name: Download PR review data artifact
if: github.event.workflow_run.event == 'pull_request_review'
uses: dawidd6/action-download-artifact@v2
with:
workflow: Prepare PR data
run_id: ${{ github.event.workflow_run.id }}
name: REVIEW_DATA
- name: Read PR review event's PR_NODE_ID.txt
if: github.event.workflow_run.event == 'pull_request_review'
id: review_pr_node_id
uses: juliangruber/read-file-action@v1
with:
path: ./PR_NODE_ID.txt
trim: true
- name: Read PR review event's REVIEW_STATE.txt
if: github.event.workflow_run.event == 'pull_request_review'
id: review_state
uses: juliangruber/read-file-action@v1
with:
path: ./REVIEW_STATE.txt
trim: true
# Project automation steps
- name: Move PR to ${{ env.todo }}
if: ((github.event.workflow_run.event == 'pull_request' ||
github.event.workflow_run.event == 'pull_request_target') &&
(steps.event_action.outputs.content == 'opened' ||
steps.event_action.outputs.content == 'reopened')) ||
(github.event.workflow_run.event == 'pull_request_review' &&
steps.review_state.outputs.content == 'dismissed')
uses: leonsteinhaeuser/[email protected]
with:
project_id: 7
gh_token: ${{ secrets.ORG_GITHUB_ACTION_SECRET }}
organization: openscd
resource_node_id: ${{ github.event.workflow_run.event == 'pull_request_review' && steps.review_pr_node_id.outputs.content || steps.pr_node_id.outputs.content }}
status_value: ${{ env.todo }}
- name: Move PR to ${{env.approved}}
if: github.event.workflow_run.event == 'pull_request_review' && steps.review_state.outputs.content == 'approved'
uses: leonsteinhaeuser/[email protected]
with:
project_id: 7
gh_token: ${{ secrets.ORG_GITHUB_ACTION_SECRET }}
organization: openscd
resource_node_id: ${{ steps.review_pr_node_id.outputs.content }}
status_value: ${{ env.approved }}
- name: Move PR to ${{env.changes_requested}}
if: github.event.workflow_run.event == 'pull_request_review' && steps.review_state.outputs.content == 'changes_requested'
uses: leonsteinhaeuser/[email protected]
with:
project_id: 7
gh_token: ${{ secrets.ORG_GITHUB_ACTION_SECRET }}
organization: openscd
resource_node_id: ${{ steps.review_pr_node_id.outputs.content }}
status_value: ${{ env.changes_requested }}