---
title: "Project board sync"
description: "Keep a GitHub Project board holding the issues that have a milestone and the pull requests Renovate opens, or remove the workflow if you don't track work that way."
canonical_url: "https://nuxtstart.com/docs/configuration/project-board-sync"
---

Your project inherits `.github/workflows/sync-github-project.yml` from NuxtStart. It puts two kinds
of cards on a GitHub Project board:

<table>
<thead>
  <tr>
    <th>
      Card
    </th>
    
    <th>
      Added when
    </th>
    
    <th>
      Removed when
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      Issue
    </td>
    
    <td>
      The issue gets a milestone
    </td>
    
    <td>
      The milestone goes
    </td>
  </tr>
  
  <tr>
    <td>
      Renovate's pull request
    </td>
    
    <td>
      Renovate opens the pull request
    </td>
    
    <td>
      Never, the board keeps it
    </td>
  </tr>
</tbody>
</table>

[Milestone Project Sync](https://github.com/jd-solanki/milestone-project-sync) handles issues. A
Renovate pull request lands in whichever column your board's **Item added to project** workflow
sets.

The workflow points at NuxtStart's board and has no token, so every run fails until you either
remove it or point it at your own board.

```mermaid
flowchart LR
    I["Your project inherits<br/>the workflow"] --> Q{"Do you track<br/>work on a board?"}
    Q -- "no" --> D["Delete the file"]
    Q -- "yes" --> P["Point it at your board<br/>and add a token"]
```

## If you don't need it

Delete the file:

```shell
git rm .github/workflows/sync-github-project.yml
```

## Point it at your board

<steps level="3">

### Set your board

Open your board. Its URL reads `https://github.com/users/<owner>/projects/<number>`, or
`/orgs/<owner>/` for a board an organization owns. Set both values in the workflow's top-level
`env:` block:

<table>
<thead>
  <tr>
    <th>
      Variable
    </th>
    
    <th>
      Value
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      <code>
        PROJECT_OWNER
      </code>
    </td>
    
    <td>
      <code>
        <owner>
      </code>
      
       from the URL
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        PROJECT_NUMBER
      </code>
    </td>
    
    <td>
      <code>
        <number>
      </code>
      
       from the URL
    </td>
  </tr>
</tbody>
</table>

### Add the token

Create the token and store it as the `PROJECT_PAT` secret, following
[Token](https://github.com/jd-solanki/milestone-project-sync#token) in the action's README. It lists
the scopes and the `gh secret set` command.

</steps>

Check it works by adding a milestone to an issue: its card appears on the board within a minute,
and the run shows in the repository's **Actions** tab. [Behaviour](https://github.com/jd-solanki/milestone-project-sync#behaviour)
in the README covers what happens on removal and to issues that had a milestone already.

## Sitemap

See the full [sitemap](/sitemap.md) for all pages.
