๐Ÿ”‘ CP3405 ยท Design Thinking III
TR3 2026
Do this before Sprint 2, not during it

GitHub Personal Access Token โ€” Setup Checklist

Your pipeline needs a token to read and write your repo automatically. Fine-grained PATs split permissions into separate scopes โ€” get the wrong ones and your Action fails with a permissions error that looks nothing like "you're missing a scope." Set it up right, once, now.

Steps

1
Go to GitHub โ†’ Settings โ†’ Developer settings โ†’ Personal access tokens โ†’ Fine-grained tokens.

Not the "classic" token type โ€” use fine-grained, so you can scope it tightly to just your team's repo.

2
Set "Resource owner" and "Repository access" to your team's repo only.

Don't grant access to all repos. One token, one repo.

3
Set an expiration.

90 days comfortably covers the trimester. Note the date somewhere your team can see it โ€” an expired token mid-sprint looks identical to a broken pipeline.

4
Grant exactly these permission scopes โ€” no more, no fewer:
ScopeAccess levelWhat it's for
ContentsRead and writeCommitting pipeline output, reading data files
ActionsRead and writeTriggering / re-running workflow runs
WorkflowsRead and writeEditing files under .github/workflows/
SecretsRead and writeOnly if your automation manages repo secrets itself โ€” most teams won't need this one
5
Store it as a repo secret โ€” never in a committed file.

Repo โ†’ Settings โ†’ Secrets and variables โ†’ Actions โ†’ New repository secret. Reference it in your workflow as ${{ secrets.YOUR_SECRET_NAME }}.

6
Test it with one small write before you build anything on top of it.

A simple Action that commits a one-line timestamp file is enough to confirm the token actually has the access you think it has.

Common failure mode: a token with Contents but not Workflows access will let your pipeline commit data fine, but any change to the workflow file itself gets silently rejected. If your Action runs but a workflow-file edit doesn't take effect, this is almost always why.