The PR status webhook only knows the canonical PR URL, but posts can link the PR in forms the onebox engine also accepts: with a path suffix (/changes, /files), query, fragment, http scheme, or www host. Oneboxes are cached per exact URL (and full oneboxes under the normalized encoding), so invalidating only the canonical URL left every other variant stale. The rebake then re-cooked the old status straight from cache and the icon never updated. Match links with an anchored, scheme/host-tolerant pattern and invalidate the exact URLs stored in TopicLink/Chat::MessageLink (plus their normalized encodings), so whichever variant a post used gets a fresh fetch on rebake. The anchoring also stops a webhook for `/pull/12` from rebaking posts for `/pull/123`, which the old prefix match did. |
||
|---|---|---|
| .. | ||
| app | ||
| assets | ||
| config | ||
| db/migrate | ||
| spec | ||
| package.json | ||
| plugin.rb | ||
| README.md | ||
| tsconfig.json | ||
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:
-
Enable
github badges enabledin Settings -> Plugins. -
Generate an access token on Github. Be sure to give it only the
public_reposcope. Paste that token into thegithub linkback access tokensetting. -
Add URL of the GitHub repo to scan for contributions to the
github badges reposite 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:
-
Enable
github linkback enabledin Settings -> Plugins. -
Generate an access token on Github. Be sure to give it only the
public_reposcope. Paste that token into thegithub linkback access tokensetting. -
Finally, add the projects you wish to post to in the
github linkback projectssite setting in the formats:username/repositoryfor specific repositoriesusername/*for all repositories of a certain user
Github Permalink
Replace Github non-permalinks with permalinks.
How to use:
- Enable
github permalinks enabledin Settings -> Plugins. - If you want to exclude certain files or directories from permalink overwrites, you can modify that in the
github permalinks excludesite setting in the following formats:filenamelinks to all files with matching filenameusername/*links to all repositories belonging to the user/organizationusername/repository/*links to any file in the repositoryusername/repository/directory/*links to any file in the directory within repositoryusername/repository/file.rba specific file