GitHub Actions adding GitHub Issues & Pull requests to the specified GitHub Project column automatically ♻️. This GitHub Action is inspired by https://github.com/masutaka/github-actions-all-in-one-project
GitHub Projects belong to organizations, repositories, and users. This GitHub action currently does not support user-based GitHub Project. For any type of GitHub Projects, you need to change GITHUB_PROJECT_URL
and GITHUB_PROJECT_COLUMN_NAME
depending on your GitHub Project URL and column name to which you want to add new cards. Create .github/workflows/issues.yml
file on your repository and edit like below.
name: Add a new GitHub Project card linked to a GitHub issue to the specified project column
on: [issues, pull_request]
jobs:
github-actions-automate-projects:
runs-on: ubuntu-latest
steps:
- name: add-new-issues-to-repository-based-project-column
uses: docker://takanabe/github-actions-automate-projects:v0.0.1
if: github.event_name == 'issues' && github.event.action == 'opened'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITHUB_PROJECT_URL: https://github.com/takanabe/github-actions-automate-projects/projects/1
GITHUB_PROJECT_COLUMN_NAME: To do
- name: add-new-prs-to-repository-based-project-column
uses: docker://takanabe/github-actions-automate-projects:v0.0.1
if: github.event_name == 'pull_request' && github.event.action == 'opened'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITHUB_PROJECT_URL: https://github.com/takanabe/github-actions-automate-projects/projects/1
GITHUB_PROJECT_COLUMN_NAME: To do
- Replace the URL set on
GITHUB_PROJECT_URL
to the URL of your repository project to place issues/pull-requests - Replace the URL set on
GITHUB_PROJECT_COLUMN_NAME
to the string which your repository project has and want to place issues/pull-requests
name: Add a new GitHub issue to the specified project column
on: [issues, pull_request]
jobs:
add-new-issues-to-project-column:
runs-on: ubuntu-latest
steps:
- name: add-new-issues-to-organization-based-project-column
uses: docker://takanabe/github-actions-automate-projects:v0.0.1
if: github.event_name == 'issues' && github.event.action == 'opened'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_PERSONAL_TOKEN_TO_ADD_PROJECT }}
GITHUB_PROJECT_URL: https://github.com/orgs/organization_name/projects/1
GITHUB_PROJECT_COLUMN_NAME: To Do
- Replace the URL set on
GITHUB_PROJECT_URL
to the URL of your repository project to place issues/pull-requests - Replace the URL set on
GITHUB_PROJECT_COLUMN_NAME
to the string which your repository project has and want to place issues/pull-requests - Replace the secret set on ${{ secrets.GITHUB_PERSONAL_TOKEN_TO_ADD_PROJECT }} to your personal GitHub token
- Create a new personal access token from https://github.com/settings/tokens
- Create a new personal access token from https://github.com/organization_name/repository_name/settings/secrets with the value of personal access token you created above
- Replace the personal token name from ${{ secrets.GITHUB_PERSONAL_TOKEN_TO_ADD_PROJECT }} to ${{ secrets.YOUR_NEW_PERSONAL_TOKEN }}
- Link repositories to the project from https://github.com/orgs/organization_name/projects/1/settings/linked_repositories
User-based project is not supported yet
Environment variable | Value | Description |
---|---|---|
GITHUB_TOKEN | ${{ secrets.GITHUB_TOKEN }}, ${{ secrets.GITHUB_PERSONAL_ACCESS_TOKEN }} | An Access token to access your repository and projects. if you use repository-based projects, ${{ secrets.GITHUB_TOKEN }} provides appropriate access privileges to this GitHub action (See). If that is not enough, you need to pass ${{ secrets.GITHUB_PERSONAL_ACCESS_TOKEN }} by issuing personal access token with appropriate grants. |
GITHUB_PROJECT_URL | https://github.com/username/reponame/projects/1, https://github.com/orgname/reponame/projects/1, https://github.com/orgs/orgname/projects/1 | A GitHub Project URL you want to use |
GITHUB_PROJECT_COLUMN_NAME | Anything (e.g: To Do) | A GitHub Project column name you want to place issues/pull-requests |
DEBUG | Anything (e.g: true) | A flag to produce debug messages for this GitHub Actions if this environment variable exists |
You can easily detect event contexts and use them in if statements. Here are some lists of the useful contexts for this GitHub action.
Property name | Values | Description |
---|---|---|
github.event.action | opened, closed, edited, and so on | The name of actions (references for issues and for pull_request |
github.event_name | issues, pull_request | The name of the event that triggered the workflow run |
Change IMAGE_NAME
, DOCKER_REPO
and TAG_NAME
in Makefile
based on your DockerHub settings.
make
Except for sandbox
tag, takanabe/github-actions-automate-projects
lists production ready Docker images matching GitHub release tag.