• Stars
    star
    284
  • Rank 145,616 (Top 3 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created about 5 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

๐Ÿค– Automate GitHub Project cards with any webhook event

GitHub Project Automation+

๐Ÿค– Automate GitHub Project cards with any webhook event

This action allows you to use any of the pull_request and issue webhook events to automate your project cards. For example when an issue is opened create a card in the Backlog project, Triage column.

If the pull_request or issue card already exists it will be moved to the column provided. Otherwise the card will be created in the column.

Usage

Create a project with columns in your repository, user profile or organisation.

Create a new workflow .yml file in the .github/workflows/ directory. In the .ymlfile you have to decide what webhook events going move or create a card in a column. For more detailed explanation of the workflow file, check out the GitHub documentation. See the examples below to get started quickly.

.github/workflows/opened-issues-triage.yml

Move opened issues into the Triage column of the Backlog project

name: Move new issues into Triage

on:
  issues:
    types: [opened]

jobs:
  automate-project-columns:
    runs-on: ubuntu-latest
    steps:
      - uses: alex-page/[email protected]
        with:
          project: Backlog
          column: Triage
          repo-token: ${{ secrets.GITHUB_TOKEN }}

.github/workflows/assigned-pulls-todo.yml

Add assigned pull requests into the To Do column of the Backlog project

name: Move assigned pull requests into To do

on:
  pull_request:
    types: [assigned]

jobs:
  automate-project-columns:
    runs-on: ubuntu-latest
    steps:
      - uses: alex-page/[email protected]
        with:
          project: Backlog
          column: To do
          repo-token: ${{ secrets.GITHUB_TOKEN }}

Workflow options

Change these options in the workflow .yml file to meet your GitHub project needs.

Inputs Description Values
on When the automation is ran issues pull_request issue_comment pull_request_target pull_request_review
types The types of activity that will trigger a workflow run. opened, assigned, edited: See GitHub docs for more
project The name of the project Backlog
column The column to create or move the card to Triage
repo-token The personal access token ${{ secrets.GITHUB_TOKEN }}
action This determines the type of the action to be performed on the card, Default: update update, delete, archive, add

Personal access token

Most of the time GITHUB_TOKEN will work as your repo-token. This requires no set up. If you have a public project board and public repository this is the option for you.

Repository project, private repository or organisation projects

You will need a personal access token to send events from your issues and pull requests.

  1. Create a personal access token

    1. Public repository and repository project
    2. Private repository or private project
    3. Organisation project board or organisation repository
  2. Add a secret GHPROJECT_TOKEN with the personal access token.

  3. Update the repo-token in the workflow .yml to reference your new token name:

repo-token: ${{ secrets.GHPROJECT_TOKEN }}

Troubleshooting

GraphqlError: Resource not accessible by integration or Secrets are not currently available to forks.

This error happens on repository projects and forked repositories because GITHUB_TOKEN only has read permissions. Create a personal access token following the instructions above.

Parameter token or opts.auth is required

This error happens when using a personal access token to run the workflow on PRs from forked repositories. This is because GitHub secrets are not populated for workflows triggered by forks. Use pull_request_target as the webhook event instead to enable access to secrets.

SAML enforcement

With certain organisations there may be SAML enforcement. This means you will need to Enable SSO when you create the personal access token.

GraphqlError: Resource protected by organization SAML enforcement. You must grant your personal token access to this organization

Can't read repository null

Make sure your permissions for your personal access token are correctly configured. Follow the above guide on permissions.

Private repositories

You may need to enable policy settings to allow running workflows from forks. Please refer to GitHub's documentation to learn about enabling these settings at enterprise, organization, or repository level.

Release History

  • v0.8.3 - Update documentation so users get latest version
  • v0.8.2 - Update NodeJS support to use latest version
  • v0.8.1 - Fix issue_coment error with automation
  • v0.8.0 - Add new action type add
  • v0.7.1 - Move Node.js version back to v12
  • v0.7.0 - Update documentation and dependencies
  • v0.6.0 - Add support for pull_request_target and pull_request_review
  • v0.5.1 - Fix get event data from issue_coment
  • v0.5.0 - Add option to delete card
  • v0.4.0 - Add issue_comment event
  • v0.3.0 - Add pull_request_target event
  • v0.2.4 - Update dependencies
  • v0.2.3 - Replace reserved secret GITHUB_TOKEN with GITHUB_TOKEN in documentation
  • v0.2.2 - Refactor add and move card logic โœจ
  • v0.2.1 - Fix bug with move logic when card is already in project
  • v0.2.0 - Restructure project, add tests, change add and move logic
  • v0.1.3 - Exact match for project names
  • v0.1.2 - Fix action not running for a card that exists in multiple projects
  • v0.1.1 - Document type filter so action runs once
  • v0.1.0 - Add support for user projects
  • v0.0.3 - Automatic build before commit
  • v0.0.2 - Error handling using GitHub actions
  • v0.0.1 - Update icon and color for GitHub actions
  • v0.0.0 - Initial release

More Repositories

1

blazing-fast-gh-pages-deploy

๐Ÿ”ฅ The most blazingest action to deploy your GitHub pages website
JavaScript
33
star
2

a11ycolor

๐ŸŒˆ Generate the nearest accessible color
JavaScript
30
star
3

get-site-urls

๐Ÿ”— Get all of the URL's from a website.
JavaScript
26
star
4

sass-a11ycolor

๐ŸŒˆ Generate the nearest accessible color with Sass.
SCSS
25
star
5

jamzone.today

Worldwide collaboration made easy.
TypeScript
17
star
6

harmonograph.art

๐Ÿ‘ฉโ€๐ŸŽจ Draw, download and share a randomised harmonograph
Nunjucks
15
star
7

add-new-issue-project

โœจ GitHub action to magically add new issues to projects
JavaScript
11
star
8

pizza

๐Ÿ• Visual regression testing that is tasty and cheesy.
JavaScript
8
star
9

app-template

๐Ÿงช Minimal static application template for prototyping
Nunjucks
7
star
10

alexpage.dev

โšก๏ธ Modern technology and thoughtful design
CSS
7
star
11

api.harmonograph.art

๐Ÿ‘ฉโ€๐ŸŽจ Draw a harmonograph with a URL
JavaScript
6
star
12

add-new-pulls-project

โœจ GitHub action to magically add new pull requests to projects
JavaScript
5
star
13

harmonograph-svg

๐Ÿ‘ฉโ€๐ŸŽจ Draw and animate a harmonograph in SVG
JavaScript
4
star
14

batcave

๐Ÿฆ‡ Automated set up of ubuntu desktop for a development environment
Shell
4
star
15

rainbow

๐ŸŒˆ Find the accessible spectrum of light with a URL
JavaScript
3
star
16

move-assigned-issue-column

โœจ GitHub action to magically move assigned issue to a column
JavaScript
2
star
17

harmonograph-xy

๐Ÿ‘ฉโ€๐ŸŽจ Generate a harmonographs X and Y coordinates
JavaScript
2
star
18

alex-page

My profile description โšก๏ธ
2
star
19

fe-color

๐ŸŽจ Change a color based on a filter effect matrix
JavaScript
2
star
20

lognana

๐ŸŒ An emoji fueled log system with zero dependencies
JavaScript
2
star
21

figma-svg-cli

Export Figma frames as minified SVG files
JavaScript
1
star
22

black-lion

๐Ÿฆ Some experimentation with got and rethinkdb.
JavaScript
1
star
23

romantics

A house music label.
HTML
1
star
24

raspberry-pi-led-breakout

๐Ÿ’ก Control Raspberry Pi LED breakout's with Node JS
JavaScript
1
star
25

gold

๐Ÿฅ‡A backup of a prototype
HTML
1
star
26

helenbay.site

Explore and unlock our past, present and future.
JavaScript
1
star
27

lollipop

๐Ÿญ Prototype to generate a system with different flavours, colours and sizes
1
star