GitHub Action
GitHub Project Connect Action
v1.3.0
Latest version
Connect Pull Request statuses to Issues on GitHub Project (classic) boards.
This idea is inspired by Waffle.io, which has shut down in 2019.
github-token
required: GitHub API token (classic) withrepo
access.⚠️ secrets.GITHUB_TOKEN
can't be used as this actions uses an preview API. Obtain one from Personal access tokens.
There are two ways to specify a project and a column where to move cards. URL or ID is required.
column-url
required (if you use URL): URL of the column to move cards.
project-id
requried (if you use ID): Numeric ID of the target GitHub Project.⚠️ It doesn't appear in URL. Find it from the API (see below).
column-id
required (if you use ID): Numeric ID of the destiation column.- It appears in URL but you can also find it from the API (see below).
# Find a Project ID (User)
curl --silent \
-H "accept: application/vnd.github.inertia-preview+json" \
-H "authorization: token <your_github_token>" \
https://api.github.com/users/<user_name>/projects \
| jq ".[] | { id: .id, name: .name, html_url: .html_url }"
# Find a Project ID (Organization)
curl --silent \
-H "accept: application/vnd.github.inertia-preview+json" \
-H "authorization: token <your_github_token>" \
https://api.github.com/orgs/<org_user_name>/projects \
| jq ".[] | { id: .id, name: .name, html_url: .html_url }"
# Find a column ID
curl --silent \
-H "accept: application/vnd.github.inertia-preview+json" \
-H "authorization: token <your_github_token>" \
https://api.github.com/projects/<project_id>/columns \
| jq ".[] | { id: .id, name: .name }"
name: github-project-connect-action
on:
pull_request:
types: [review_requested, closed]
pull_request_review:
types: [submitted]
jobs:
connect:
runs-on: ubuntu-latest
steps:
- name: When pull_request is review_requested, move the connected issue to the Reviewing column
if: github.event_name == 'pull_request' && github.event.action == 'review_requested'
uses: wktk/github-project-connect-action@v1
with:
github-token: ${{ secrets.REPO_TOKEN }}
column-url: https://github.com/users/wktk/projects/1#column-8564172
- name: When pull_request_review is approved, move the connected issue to the Ready column
if: github.event_name == 'pull_request_review' && github.event.review.state == 'approved'
uses: wktk/github-project-connect-action@v1
with:
github-token: ${{ secrets.REPO_TOKEN }}
column-url: https://github.com/wktk/sandbox/projects/1#column-5250623
- name: When pull_request is merged, move the connected issue to the Done column
if: github.event_name == 'pull_request' && github.event.pull_request.merged_at != ''
uses: wktk/github-project-connect-action@v1
with:
github-token: ${{ secrets.REPO_TOKEN }}
# Instead of URL you may use ID
project-id: 4226438
column-id: 8564174