Skip to content

feat(create): create a task from a GitHub issue/PR URL (--from-issue)#615

Open
bborn wants to merge 1 commit into
mainfrom
task/4470-create-a-task-from-a-github-issuepr-url
Open

feat(create): create a task from a GitHub issue/PR URL (--from-issue)#615
bborn wants to merge 1 commit into
mainfrom
task/4470-create-a-task-from-a-github-issuepr-url

Conversation

@bborn

@bborn bborn commented Jun 23, 2026

Copy link
Copy Markdown
Owner

Summary

Adds ty create --from-issue <github-url> so a GitHub issue, PR, or discussion can become a TaskYou task in one step.

  • Parses issue/PR/discussion URLs and fetches title, body, and labels via the existing internal/github (gh-backed) layer.
  • Pre-fills the new task's title/body, appends a Source: <url> link back, and carries labels over as tags (deduped, case-insensitive).
  • Auto-detects the project by matching a project's git origin remote to the URL's owner/repo.
  • For PR URLs, --branch-from-pr reuses the existing --branch/SourceBranch path to check out the PR's head branch in the worktree.
  • Discussions are best-effort via the GraphQL API (gh has no native discussion view).
  • Updates CLI help + examples.

User-provided values always win: an explicit title, --body, --project, or --branch is never overwritten by imported data.

Testing

  • internal/github: URL parsing (issue/PR/discussion, anchors, http, non-GitHub, malformed), NameWithOwner, and remote-slug extraction (https/ssh/scp forms).
  • cmd/task: body merge (imported vs. user-supplied + link) and tag merge (dedup/trim/empty handling).
  • go build ./..., gofmt, and golangci-lint run (v2.8.0) all clean.

Files

  • internal/github/source.go (new) — URL parsing, gh-backed fetch for issue/PR/discussion, remote-slug helper.
  • internal/github/source_test.go (new)
  • cmd/task/main.go--from-issue / --branch-from-pr flags, wiring, and merge/detect helpers.
  • cmd/task/from_issue_test.go (new)

🤖 Generated with Claude Code

Add `ty create --from-issue <github-url>` accepting issue, PR, and
discussion URLs. Pulls title/body/labels via the existing internal/github
gh-backed layer, pre-fills the new task, carries labels as tags, links
back to the source, and auto-detects the project by matching a project's
git origin remote to the URL's owner/repo.

For PR URLs, `--branch-from-pr` reuses the existing --branch/SourceBranch
path to check out the PR's head branch in the worktree.

Adds URL-parsing + remote-slug helpers in internal/github and tests for
URL parsing, slug extraction, and task body/tag construction.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@bborn bborn marked this pull request as ready for review June 23, 2026 22:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant