GitHub Integration

Turn feedback into GitHub issues. When users submit feedback, an issue is created in your chosen repository with the details, screenshots, and colored labels for status and priority.

Setup

Step 1: Connect GitHub

  1. Go to Project Settings > Integrations > GitHub
  2. Click Connect to GitHub
  3. Authorize SimpleCommenter in the popup
  4. Click Authorize to grant repository access
You need access to the repositories you want to sync feedback to. The integration requests the repo scope to create issues in both public and private repositories.

Step 2: Choose a Routing Mode

After connecting, pick how feedback reaches your repositories.

Simple Mode

One repository for all feedback. Select the repository from the dropdown.

Good for single-project teams or when all feedback maps to one repo.

Advanced Mode

Create routing rules that send feedback to different repositories based on conditions. For example, route frontend bugs to acme/web-app and API issues to acme/backend.

See Routing Rules below for the full list of options.

New projects default to Simple mode. You can switch between modes at any time without losing your configuration.

Step 3: Enable the Integration

Use the toggle in the header to turn the integration on. You can disable it at any time to pause syncing without disconnecting or losing your settings.

Where to Configure

You can set up GitHub in two places:

Project Settings

Go to Project > Settings > Integrations > GitHub

  • Applies only to this specific project
  • Overrides any default settings

Default Settings

Go to Default Settings > Integrations > GitHub

  • Applies to all new projects automatically
  • Useful if you want every project to create issues in the same repository

Project-level settings always take priority. If you configure GitHub for a specific project, that configuration is used instead of the defaults.

Routing Rules

In Advanced mode, each rule has four parts:

Triggers

Choose which events fire the rule:

| Trigger | When it fires | |---------|---------------| | New comment | Someone submits feedback | | Reply | Someone replies to existing feedback | | Status update | A comment's status or priority changes |

New rules default to New comment and Reply enabled.

Conditions

Filter which feedback matches the rule. No conditions means the rule matches everything. Multiple conditions use AND logic — all must match.

| Field | Operators | Values | |-------|-----------|--------| | Priority | is, is not | Low, Normal, High, Urgent | | Status | is, is not | To Do, In Progress, Review, Rework, On Hold, Blocked, Done, Cancelled, Won't Fix | | Commenter role | is, is not | Client, Team Lead, Workspace Admin | | Tagged user | includes | Any team member | | Page URL | is, contains, starts with | Text (e.g. /blog, /pricing) |

Destination

Each rule sends matching feedback to a specific GitHub repository.

Examples

  • Frontend bugs to the web repo: Condition = "Page URL starts with /app" → Repository: acme/web-app
  • High priority to a dedicated repo: Condition = "Priority is High or Urgent" → Repository: acme/urgent-fixes
  • Client feedback separate: Condition = "Commenter role is Client" → Repository: acme/client-feedback

What Gets Synced

New Feedback → GitHub Issue

When someone submits feedback, an issue is created with:

Issue title:

#123 | Button not working on checkout page

Issue body includes:

  • The feedback message
  • Who submitted it (name, email)
  • Date and time
  • Page URL where feedback was left
  • Current status and priority
  • Link back to SimpleCommenter

Screenshots: Screenshots are embedded directly in the issue body as Markdown images. Other file attachments are included as download links.

GitHub does not support file uploads via the API. Screenshots and attachments appear as linked images and files in the issue body.

Labels:

  • A simplecommenter identifier label (purple)
  • Status label (e.g., sc:status:todo)
  • Priority label (e.g., sc:priority:high)

Replies → Issue Comments

When you reply to feedback in SimpleCommenter, a comment is added to the GitHub issue with the reply text and any attachment links.

Status & Priority Updates

When you change status or priority:

  1. A comment is added to the issue describing the change
  2. Labels are automatically swapped (old label removed, new label added)
  3. If the new status is Done or Cancelled, the issue is closed
  4. If a closed issue is moved back to an open status, the issue is reopened

Status Labels

SimpleCommenter creates and manages labels automatically on your repository:

  • Name
    To Do
    Type
    sc:status:todo
    Description

    #2563eb — Blue

  • Name
    In Progress
    Type
    sc:status:in-progress
    Description

    #2563eb — Blue

  • Name
    Review
    Type
    sc:status:review
    Description

    #f97316 — Orange

  • Name
    Rework
    Type
    sc:status:rework
    Description

    #eab308 — Yellow

  • Name
    On Hold
    Type
    sc:status:on-hold
    Description

    #6b7280 — Gray

  • Name
    Blocked
    Type
    sc:status:blocked
    Description

    #ef4444 — Red

  • Name
    Done
    Type
    sc:status:done
    Description

    #22c55e — Green (closes the issue)

  • Name
    Cancelled
    Type
    sc:status:cancelled
    Description

    #6b7280 — Gray (closes the issue)

Priority Labels

  • Name
    Low
    Type
    sc:priority:low
    Description

    #0ea5e9 — Sky blue

  • Name
    Normal
    Type
    sc:priority:normal
    Description

    #2563eb — Blue

  • Name
    High
    Type
    sc:priority:high
    Description

    #ef4444 — Red

Labels are created automatically on your repository the first time they are needed. A purple simplecommenter label is also added to every issue for easy filtering.

Enabling and Disabling

The toggle in the integration header lets you pause syncing without disconnecting. Your repository selection and routing rules are preserved.

  • Enabled: Feedback syncs to GitHub as configured
  • Disabled: No issues are created or updated. Settings stay intact

Troubleshooting

Issues Not Creating?

  1. Check the toggle — Make sure the integration is enabled (not just connected)
  2. Check authorization — Verify GitHub shows as connected with your username
  3. Verify repository — The selected repository must still exist and you must have write access
  4. Check routing rules — In Advanced mode, at least one rule must be active with matching conditions
  5. Re-authorize — Click Disconnect, then Connect again to refresh your access token

Labels Not Appearing?

  • Make sure you have permission to create labels on the repository
  • Try disconnecting and reconnecting

Issue Closed Unexpectedly?

Setting a comment's status to Done or Cancelled closes the GitHub issue. Change the status back to any open status to reopen it.

Disconnecting

  1. Go to Project Settings > Integrations > GitHub
  2. Click Disconnect
  3. Confirm the disconnection

Existing GitHub issues are not deleted when you disconnect. They remain in your repository. You can also revoke access from your GitHub settings under Settings > Applications > Authorized OAuth Apps.

Next Steps

Was this page helpful?