refined-github: Fix PR commit links on submission (GitHub’s bug)

Issuehunt badges

GitHub has had this really annoying bug that changes PR commit links (e.g. this one) into non-PR-related links like this: https://github.com/sindresorhus/refined-github/commit/cb44a4eb8cd5c66def3dc26dca0f386645fa29bb

This only happens to auto-linked URLS like https://...etc and not to [text](https://...etc)

We can’t fix these links after they’ve been submitted but we can do it before submission.


This feature should should:

  1. Listen to comment form submissions
  2. Detect plain URLs to PR commits (and skip markdown links)
  3. Replace plain urls with identical markdown links, like [https://...etc](https://...etc)

Step 2 is easy to implement in most places (e.g. find a URL surrounded by spaces) but it can be tripped with content like [this url https://... is the problem](https://...) (which… probably does not happen)

Test comment content:

https://github.com/sindresorhus/refined-github/pull/3/commits/cb44a4eb8cd5c66def3dc26dca0f386645fa29bb

IssueHunt Summary

max-arias max-arias has been rewarded.

Backers (Total: $18.81)

Submitted pull Requests


Tips

About this issue

  • Original URL
  • State: closed
  • Created 5 years ago
  • Reactions: 8
  • Comments: 15 (8 by maintainers)

Most upvoted comments

This is really cool—the find of feature that makes me proud to use Refined GitHub. Nice work everyone. The styling of the warning is especially nice.

@sindresorhus has rewarded $16.92 to @max-arias. See it on IssueHunt

  • 💰 Total deposit: $18.81
  • 🎉 Repository reward(0%): $0.00
  • 🔧 Service fee(10%): $1.89

This doesn’t really explain why GitHub changing the link is a problem. I.e. what is wrong with the link they transform the original into?

The difference is subtle, but you can open the 2 links in the first paragraph of this PR and compare them.

What the user pastes:
// https://github.com/sindresorhus/refined-github/pull/3/commits/cb44a4eb8cd5c66def3dc26dca0f386645fa29bb

What GitHub displays:
// https://github.com/sindresorhus/refined-github/commit/cb44a4eb8cd5c66def3dc26dca0f386645fa29bb

In short: The correct link shows the commit on the PR page, while GitHub drops this piece of information, showing a link to the plain commit, without any connection to the PR.

@Maxim-Mazurok I opened an issue about that, thanks!

Glad you like it, this bug annoyed me for a long time.

Some fixes to this feature are coming in #3223

I’ll give this a shot!

Nope. I just posted 1 but the link points to 2

1. https://github.com/sindresorhus/refined-github/pull/3/commits/cb44a4eb8cd5c66def3dc26dca0f386645fa29bb
2. https://github.com/sindresorhus/refined-github/commit/cb44a4eb8cd5c66def3dc26dca0f386645fa29bb

This issue is considered solved (by GitHub) when the link I just posted points to a PR commit, not a plain commit.

Thanks for the ping @fregante! Did you submit a bug report to our Support team? And if so, do you think you could DM (twitter, email) me the ticket reference?