Repository navigation
feat(jira): REST + token fallback for clients without the Atlassian MCP - #89
Merged
Merged
Conversation
Make this repo a proper consuming repo of its own kit so contributors (human and agent) develop new work through the kit's flow — file a GitHub issue, run /work-story, and let the repo's own gates apply to the kit's PRs. - CLAUDE.md: the agent-facing conventions the kit reads — canonical sources vs. the generated bundle (never hand-edit plugins/), the repo's real gates (build → validate → node --test → rebuild-no-op; coverage/e2e N/A for a Markdown+scripts repo, don't scaffold), writing/frontmatter conventions, docs-travel-with-behavior, telemetry privacy, and a versioning heads-up pointing at the release-job migration (#87). - .claude/dev-kit.json: tracker=github, prHost=github, stacks=[node] (no secrets, safe to commit). Not bundled into the plugin, so no version bump and no rebuild drift (build/validate/35 tests still green). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Jira was MCP-only, so a client without the Atlassian MCP couldn't use the
tracker at all. Add an opt-in REST path:
- issue-fetch / issue-update: honor tracker `authMode` ("mcp" default |
"rest"). In REST mode, call the Jira REST API directly — Basic auth
(JIRA_EMAIL + JIRA_API_TOKEN) for Cloud, Bearer (JIRA_PAT) for
Server/DC, base URL JIRA_BASE_URL — with credentials from the
environment, never from .claude/dev-kit.json. Fetch issue+comments+AC
fields; comment, transition (persist reviewState), and assign via REST.
- Automatic fallback: if authMode is mcp but the MCP is unavailable and
the JIRA_* env vars are present, use REST and say so; if neither is
available, stop and offer both paths.
- dev-kit-setup: offer the mode, note the env vars + .env gitignore, and
resolve field IDs via the REST field API when there's no MCP. Added
optional `authMode` to the config shape/example.
- README: headless note documents the Jira REST fallback.
Config stays secret-free (credentials only in a git-ignored .env), matching
the token pattern already used by the Bitbucket/GitLab PR hosts.
Bundle rebuilt; validator + 35 tests pass. Kit -> 0.19.16.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub. 1 Skipped Deployment
|
This was referenced Sep 23, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Jira was MCP-only — a client without the Atlassian MCP couldn't use the tracker at all (the #1 adoption friction, since MCP OAuth is the hard part). This adds an opt-in REST path, exactly the fallback the README already anticipated.
What it adds
Set
"authMode": "rest"in the Jira tracker config; credentials come from the environment, never the committed config:Jira Cloud:
JIRA_EMAIL+JIRA_API_TOKEN(Basic auth), basehttps://<site>orJIRA_BASE_URL.Jira Server / Data Center:
JIRA_PAT(Bearer), baseJIRA_BASE_URL.issue-fetch—GET /rest/api/3/issue/<KEY>for summary, description, status, comments, and the configured AC/sprint/points field IDs.issue-update— comment (POST .../comment), transition (GET/POST .../transitions, persistingreviewState), assign (PUT .../assignee).Automatic fallback — if
authModeis unset/mcpbut the MCP is unavailable and theJIRA_*vars are present, use REST and say so; if neither is available, stop and offer both paths.dev-kit-setup— offers the mode, tells the user to keep credentials in a git-ignored.env(never in.claude/dev-kit.json), and resolves field IDs viaGET /rest/api/3/fieldwhen there's no MCP.Default stays
"mcp". Config stays secret-free — the same token-from-env pattern the Bitbucket/GitLab PR hosts already use.Verification
node --test35/35, rebuild a no-op, source/bundle byte-identical.🤖 Generated with Claude Code