Skip to content

Commit

Permalink
NEW Create GitHub Action for adding PRs to the new project (#1)
Browse files Browse the repository at this point in the history
  • Loading branch information
GuySartorelli authored Jun 14, 2024
1 parent b5d2af0 commit 1bab9b1
Show file tree
Hide file tree
Showing 2 changed files with 73 additions and 0 deletions.
29 changes: 29 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# GitHub Actions - Add PR to project

Add community-created pull requests to the [Community Contributions project](https://github.com/orgs/silverstripe/projects/4) when they're opened.

## Usage

**.github/workflows/add-pr-to-project.yml**
```yml
name: Add new pull requests to a github project

on:
pull_request:
types:
- opened
- ready_for_review

permissions: {}

jobs:
addprtoproject:
# Only run on the silverstripe account
if: github.repository_owner == 'silverstripe'
runs-on: ubuntu-latest
steps:
- name: Add PR to github project
uses: silverstripe/add-pr-to-project@v1
```
This action has no inputs.
44 changes: 44 additions & 0 deletions action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
name: Add pull request to project
description: GitHub Action to add new pull requests to the Community Contributions GitHub project

runs:
using: composite
steps:

- name: Check if should be added
id: check-if-should-add
env:
PR_AUTHOR: ${{ github.event.pull_request.user.login }}
IS_DRAFT: ${{ github.event.pull_request.draft }}
run: |
if [[ $IS_DRAFT == 'true' ]]; then
echo "PR is draft. Skipping."
echo "should_add_to_project=false" >> $GITHUB_OUTPUT
exit 0
fi
# We don't want CMS Squad member PRs to clutter the project board
echo "Author is $PR_AUTHOR"
for squad_member in 'GuySartorelli' 'emteknetnz' 'maxime-rainville'; do
if [[ $PR_AUTHOR == $squad_member ]]; then
echo "Author is in CMS Squad. Skipping."
echo "should_add_to_project=false" >> $GITHUB_OUTPUT
exit 0
fi
done
echo "should_add_to_project=true" >> $GITHUB_OUTPUT
- name: Generate token
id: generate-token
if: steps.check-if-should-add.outputs.should_add_to_project == 'true' && github.repository_owner == 'silverstripe'
uses: actions/create-github-app-token@v1
with:
app-id: ${{ vars.PROJECT_PERMISSIONS_APP_ID }}
private-key: ${{ secrets.PROJECT_PERMISSIONS_APP_PRIVATE_KEY }}

- name: Add to project
if: steps.check-if-should-add.outputs.should_add_to_project == 'true'
uses: actions/[email protected]
with:
# Add to the Community Contributions project
project-url: https://github.com/orgs/silverstripe/projects/4
github-token: ${{ steps.generate-token.outputs.token }}

0 comments on commit 1bab9b1

Please sign in to comment.