About pr-link-issue
A workflow skill that adds GitHub issue and Linear ticket references to a pull request description. It preserves existing content and replaces an existing `#### Issues` section rather than duplicating it.
Key features
- 01Finds the current branch's open PR
- 02Reads Linear linkback comments
- 03Appends or replaces the Issues section
- 04Preserves the rest of the PR body
- 05Reports when a Linear key is missing
Use cases
- 01Adding issue references to a PR
- 02Linking a PR to its Linear ticket
- 03Updating an existing Issues section
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ getsentry/ skills --skill pr-link-issueAfter installing, type/pr-link-issuein Claude Code to confirm it loaded.
Details
From the project READMELink a GitHub Issue + Linear Ticket on a PR
Appends a Sentry-style #### Issues block to a PR description, referencing both the GitHub issue and the Linear ticket pulled from the issue's linear-linkback comment.
Inputs
<issue-url>— GitHub issue URL likehttps://github.com/<owner>/<repo>/issues/<n>. Issue number alone is fine if the PR is in the same repo.- (optional)
<pr-number>— defaults to the open PR for the current branch.
Steps
-
Resolve the PR number — skip if user supplied one:
gh pr view --json number,body -q '.number'If no PR exists on the branch, stop and tell the user.
-
Extract issue number + repo from the input URL, or accept a bare
#1234for current repo. -
Fetch the Linear ticket from the issue's linear-linkback comment:
gh issue view <n> --repo <owner>/<repo> --json comments \ -q '.comments[] | select(.author.login=="linear-code") | .body' \ | grep -Eioe '[a-z]+-[0-9]+' | head -1If no match, fall back to asking the user for the Linear key, or omit it.
-
Read the existing PR body so you can append rather than overwrite:
gh pr view <pr-number> --json body -q '.body' -
Construct the new body. If the body is empty, use just the
#### Issuesblock. Otherwise, append it after a blank line. Don't duplicate — if#### Issuesis already present, replace that section instead of adding a second one.Format:
#### Issues * Resolves: #<n> * Resolves: <linear-key> -
Update the PR with a heredoc to preserve newlines:
gh pr edit <pr-number> --body "$(cat <<'EOF' <new body> EOF )" -
Confirm by echoing the resulting PR URL:
gh pr view <pr-number> --json url -q '.url'
Notes
- Linear linkback comments are posted by the GitHub user
linear-code. The body contains a markdown link whose text is the Linear key, e.g.PY-2357. - Project keys vary per repo (
PY-…for sentry-python,JS-…for sentry-javascript, etc.) — the regex[a-z]+-[0-9]+covers them. - Don't strip existing PR content. Always read first, append/replace second.
- If the issue doesn't have a Linear linkback yet (newly filed), proceed with just the GitHub issue reference and tell the user the Linear key is missing.