← All posts

How to Turn Website Feedback Into GitHub Issues

For a lot of small teams, the repository is the project tracker. Bugs live in GitHub Issues, next to the code and the pull requests that fix them. Feedback from clients and testers doesn't arrive there, though. It arrives as screenshots in chat, and someone has to rewrite it as an issue.

PinReview opens the issue for you. A reviewer pins a comment on the live page, and a GitHub issue appears in your repository with the screenshot, page, browser and console errors already in it.

What ends up in the GitHub issue

  • Title — the title the reviewer wrote
  • Body — their comment, then the page URL, severity, who reported it, browser and viewport size, in Markdown
  • Screenshot — embedded in the body, with the pin drawn on it
  • Console errors — any JavaScript errors captured on the page, in a code block
  • A link back — "View #42 in PinReview", which opens the original task

On the PinReview board, the task shows a link like website#57 that opens the issue.

Set it up in a few minutes

1. Create a fine-grained personal access token

Go to GitHub's Settings → Developer settings → Personal access tokens → Fine-grained tokens and click Generate new token.

  • Repository access: choose Only select repositories and pick the repo (or repos) issues should go to.
  • Permissions → Repository permissions: add Issues and change it from Read-only to Read and write. This is the one people miss: a Read-only token connects fine but can't create issues. Metadata (Read-only) is added automatically. Leave it.
  • Expiration: pick what suits you. When the token expires, issues stop being created until you connect a new one, so put a reminder in your calendar or choose a longer period.

Click Generate token and copy it. It starts with github_pat_.

2. Connect

  1. In PinReview, open your project's Integrations and choose GitHub Issues.
  2. Paste the token and click Continue.
  3. Pick the repository. Only repos the token can reach, with Issues turned on, are listed.
  4. Choose whether to open an issue automatically for every new piece of feedback, then click Connect GitHub Issues.

Integrations are included on PinReview's paid plans.

Automatic or one at a time

Automatic fits internal testing and developer-led reviews, where each report is a real bug.

Manual fits client reviews. Keep automatic creation off, triage on the PinReview board, and use Send to… → GitHub Issues on the tasks that need code changes. Your issue list stays free of questions and duplicates.

You can connect more than one repository — a marketing site and an app, say — and pick per task where the issue goes.

Things to get right

Scope the token tightly. Give it only the repositories it needs and only the Issues permission. If the token ever leaks, that's all it can touch.

Use a bot or shared account for teams. Issues are opened as the token's owner. A dedicated account makes the source obvious, and the integration survives people leaving.

Decide where status lives. The connection is one-way: closing the issue — or merging a PR that closes it — doesn't move the task in PinReview. Close the loop on the board so the reporter sees their feedback was handled.

Mind public repositories. In a public repo, the issue, the screenshot and the page URL are public. Use a private repository for client work.

If it doesn't work

  • "The GitHub token can't create issues in …" — the token's Issues permission is Read-only. Edit the token, set Issues to Read and write, and save. The token value doesn't change, so there's nothing to reconnect.
  • "The GitHub token can't see …" — the repository isn't in the token's Repository access. Add it to the token.
  • "GitHub rejected the credentials" — the token expired or was deleted. Generate a new one, then disconnect and connect again with it.
  • The repo isn't in the picker — it's archived, Issues is turned off in the repo's settings, or the token doesn't include it.

The bottom line

Create a fine-grained token with Issues: Read and write on the right repository, paste it into PinReview, and website feedback becomes a GitHub issue a developer can act on straight away.

Prefer another tracker? See the guides for Jira, ClickUp and Linear. Or skip the issue and hand bugs to your editor directly: fix website bugs in Cursor.

Start free →

Turn website feedback into action.

Start free