makeplane / makeplane/plane

GitHub `@mentions` corrupted to `[From GitHub: user](url)` on sync

Open
#9,071 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
59.6k
Forks
5.8k
Avg merge
1d 22h
Merged PRs (30d)
49

Description

Affected: Plane Cloud, official GitHub integration. See also: meta-issue on destructive overwrite (issue 01).

Symptom

GitHub markdown @username written in an issue or comment body, after a GH→Plane import + Plane→GH round-trip, comes back as [From GitHub: username](https://github.com/username).

stage content
GitHub input @someuser
Plane stored HTML <a href="https://github.com/someuser" rel="noopener noreferrer">From GitHub: someuser</a>
GH after Plane→GH push [From GitHub: someuser](https://github.com/someuser)

The From GitHub: <handle> text is injected at GH→Plane import time by the closed makeplane/silo-commercial image. The Plane→GH markdown serialisation then faithfully emits it.

Impact

  • Loses GitHub-native mention semantics: no notification to the mentioned user, no avatar in GH rendering, no auto-link styling.
  • Visually ugly: @user becomes From GitHub: user everywhere.
  • Words that look like mentions but aren't valid users still get linked to broken URLs. e.g. the literal text @mentions becomes [From GitHub: mentions](https://github.com/mentions) — a 404.

Ask

Preserve @user mentions as bare @user text across the round-trip. Do not invent [From GitHub: user](url) link forms.

If conversion to a link is unavoidable, validate the handle against GitHub's user API and skip the rewrite for non-existent users rather than producing a broken link.

Reproduction

  1. Connect a GitHub repo to a Plane workspace via the official GitHub integration. Set sync to bidirectional.
  2. Create a GitHub issue with body cc @someuser. Apply the Plane label.
  3. Within seconds the Plane work item appears with description_html already containing <a href="https://github.com/someuser">From GitHub: someuser</a>.
  4. To exercise the destructive Plane→GH push, follow the trigger recipe in meta-issue 01.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No source file or test is identified; start by tracing the official GitHub integration's Plane→GitHub markdown serialization and compare it with the closed silo-commercial import behavior described here. Done means preserving bare @user mentions across the round-trip without inventing broken links, but the import-side change may be outside this repository.

Written by the indexing model from the issue text.

Assessment

Tech stack
github, typescript
Domain
api, backend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.