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
- Go to Project Settings > Integrations > GitHub
- Click Connect to GitHub
- Authorize SimpleCommenter in the popup
- Click Authorize to grant repository access
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
simplecommenteridentifier 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:
- A comment is added to the issue describing the change
- Labels are automatically swapped (old label removed, new label added)
- If the new status is Done or Cancelled, the issue is closed
- 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?
- Check the toggle — Make sure the integration is enabled (not just connected)
- Check authorization — Verify GitHub shows as connected with your username
- Verify repository — The selected repository must still exist and you must have write access
- Check routing rules — In Advanced mode, at least one rule must be active with matching conditions
- 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
- Go to Project Settings > Integrations > GitHub
- Click Disconnect
- 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.