Files
discourse/plugins/discourse-github
Régis Hanol 318eb49a30 FIX: Skip GitHub linkback when topic is already linked (#37633)
The GitHub linkback feature posts comments on PRs/issues/commits when
they are mentioned in Discourse posts. However, it never checked whether
the GitHub PR/issue/commit already contained a link back to the same
Discourse topic (in its description or existing comments). This led to
redundant linkback comments when a PR already referenced the topic.

Before posting a linkback comment, we now fetch the PR/issue body and
existing comments (or commit comments) from the GitHub API and check
whether any of them already contain a URL pointing to the same Discourse
topic. URL matching uses Discourse.route_for — the same mechanism used
by the oneboxer, search, and TopicLink — to reliably recognize all topic
URL formats (/t/slug/id, /t/id, /t/id/post_number, etc.).

On any GitHub API error, the check fails open (still posts the linkback)
to preserve the pre-existing behavior — and because if the GET fails,
the subsequent POST will likely fail too.
2026-02-09 14:31:27 +01:00
..
2026-02-04 12:32:16 +01:00

Discourse Github

https://meta.discourse.org/t/discourse-github/99895/

This plugin combines functionality of deprecated github_badges and discourse-github-linkback plugins.

Installation

Follow the plugin installation guide.

Github Badges

Assign badges to your users based on GitHub contributions.

How to use:

  1. Enable github badges enabled in Settings -> Plugins.

  2. Generate an access token on Github. Be sure to give it only the public_repo scope. Paste that token into the github linkback access token setting.

  3. Add URL of the GitHub repo to scan for contributions to the github badges repo site setting.

Github Linkback

Create a link from a Github pull request or commit back to a Discourse post where it is mentioned.

How to use:

  1. Enable github linkback enabled in Settings -> Plugins.

  2. Generate an access token on Github. Be sure to give it only the public_repo scope. Paste that token into the github linkback access token setting.

  3. Finally, add the projects you wish to post to in the github linkback projects site setting in the formats:

    • username/repository for specific repositories
    • username/* for all repositories of a certain user

Replace Github non-permalinks with permalinks.

How to use:

  1. Enable github permalinks enabled in Settings -> Plugins.
  2. If you want to exclude certain files or directories from permalink overwrites, you can modify that in the github permalinks exclude site setting in the following formats:
    • filename links to all files with matching filename
    • username/* links to all repositories belonging to the user/organization
    • username/repository/* links to any file in the repository
    • username/repository/directory/* links to any file in the directory within repository
    • username/repository/file.rb a specific file