From 0f6a580ceb9b70fdf39af2e97f123c8f5a1a950b Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Tue, 10 Feb 2026 17:50:58 +0100 Subject: [PATCH] feat: add GitHub Project automation for feature request tracking (#114) * Initial plan * feat: add GitHub Project automation for feature request tracking Co-authored-by: DanielVolz <3275994+DanielVolz@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: DanielVolz <3275994+DanielVolz@users.noreply.github.com> --- .github/workflows/add-to-project.yml | 19 +++++++ docs/PROJECT_SETUP.md | 80 ++++++++++++++++++++++++++++ 2 files changed, 99 insertions(+) create mode 100644 .github/workflows/add-to-project.yml create mode 100644 docs/PROJECT_SETUP.md diff --git a/.github/workflows/add-to-project.yml b/.github/workflows/add-to-project.yml new file mode 100644 index 0000000..573b9f1 --- /dev/null +++ b/.github/workflows/add-to-project.yml @@ -0,0 +1,19 @@ +name: Add to Project + +on: + issues: + types: [opened, labeled] + +permissions: {} + +jobs: + add-to-project: + name: Add issue to project + runs-on: ubuntu-latest + steps: + - uses: actions/add-to-project@v1.0.2 + with: + project-url: ${{ vars.PROJECT_URL }} + github-token: ${{ secrets.ADD_TO_PROJECT_PAT }} + labeled: enhancement, bug, triage + label-operator: OR diff --git a/docs/PROJECT_SETUP.md b/docs/PROJECT_SETUP.md new file mode 100644 index 0000000..1fe72ec --- /dev/null +++ b/docs/PROJECT_SETUP.md @@ -0,0 +1,80 @@ +# GitHub Project Setup + +This repository includes a GitHub Actions workflow that automatically adds new issues to a GitHub Project for tracking feature requests and bugs. + +## Setup Steps + +### 1. Create a GitHub Project + +1. Go to your GitHub profile → **Projects** → **New project** +2. Choose the **Board** template (recommended for feature tracking) +3. Name it e.g. **MedAssist-ng Roadmap** +4. Configure the default columns: + - **Triage** – New issues land here + - **Backlog** – Accepted but not yet started + - **In Progress** – Currently being worked on + - **Done** – Completed + +### 2. Create a Personal Access Token (PAT) + +The workflow needs a token with project permissions. The built-in `GITHUB_TOKEN` does not support GitHub Projects. + +1. Go to **Settings** → **Developer settings** → **Personal access tokens** → **Fine-grained tokens** +2. Click **Generate new token** +3. Set: + - **Token name**: `add-to-project` + - **Expiration**: Choose an appropriate duration + - **Repository access**: Select **Only select repositories** → `DanielVolz/medassist-ng` + - **Permissions**: + - Repository permissions: **Issues** → Read + - Organization permissions (if applicable): **Projects** → Read and write + - For **user-owned projects**, you need a **classic** token with the `project` scope instead +4. Copy the generated token + +### 3. Add Repository Secrets and Variables + +1. Go to the repository → **Settings** → **Secrets and variables** → **Actions** +2. Add a **secret**: + - Name: `ADD_TO_PROJECT_PAT` + - Value: The PAT from step 2 +3. Add a **variable** (under the **Variables** tab): + - Name: `PROJECT_URL` + - Value: The full URL of your GitHub Project (e.g. `https://github.com/users/DanielVolz/projects/1`) + +### 4. Verify + +1. Create a test issue using the **✨ Feature Request** template +2. Check the **Actions** tab to see the workflow run +3. Verify the issue appears in your GitHub Project under **Triage** + +## How It Works + +The workflow (`.github/workflows/add-to-project.yml`) triggers when: +- A new issue is **opened** +- A label is **added** to an existing issue + +Issues with any of these labels are automatically added to the project: +- `enhancement` – Feature requests +- `bug` – Bug reports +- `triage` – New issues needing review + +Both the feature request and bug report issue templates automatically apply the `triage` label, so all new issues from templates are captured. + +## Customization + +### Adding more labels + +Edit `.github/workflows/add-to-project.yml` and add labels to the `labeled` field: + +```yaml +labeled: enhancement, bug, triage, documentation +``` + +### Restricting to feature requests only + +Change the `labeled` field to only include `enhancement`: + +```yaml +labeled: enhancement +label-operator: OR +```