Skip to content

feat(publish): add direct Linear API publication and assignees - #470

Merged
daneschneider-oai merged 105 commits into
mainfrom
dev/kyleb/linear-publish-api-key
Aug 16, 2026
Merged

feat(publish): add direct Linear API publication and assignees#470
daneschneider-oai merged 105 commits into
mainfrom
dev/kyleb/linear-publish-api-key

Conversation

@kmbroai

@kmbroai kmbroai commented Aug 15, 2026

Copy link
Copy Markdown
Collaborator

Summary

Add an opt-in direct Linear publication path using the official @linear/sdk, alongside the existing connected-app workflow, with optional projects, unassigned issues by default, and explicit assignee selection.

Changes

  • Select direct publication through --linear-api-key or CODEX_SECURITY_LINEAR_API_KEY; retain the existing Codex and connected Linear app behavior when neither credential is supplied.
  • Instantiate LinearClient directly in the existing publisher instead of maintaining a separate GraphQL client, SDK wrapper, or transport implementation.
  • Leave issues unassigned by default and resolve --linear-assignee as either an email address or a Linear user ID when assignment is requested.
  • Support team-only publication by omitting project identifiers when no project is selected.
  • Preserve finding descriptions, batches of 20, sealed-scan validation, private recovery handoffs, SQLite associations, progress, cancellation recovery, partial results, and original error details.
  • Pin @linear/sdk to 89.0.0 and update its package lockfile.

Testing

  • 99 focused CLI, publisher, and publication-event tests passed with 868 assertions.
  • Seven direct-publication regressions cover credential selection, unassigned-by-default behavior, email/user-ID overrides, optional projects, partial batches, cancellation recovery, CLI validation, and real SQLite persistence.
  • TypeScript compilation, formatting, and a freshly built npm tarball passed; the built CLI exposes --linear-api-key and --linear-assignee.
  • Hosted CI runs the real sealed-scan SQLite integration and installed-package dry-run smoke on Linux, macOS, and Windows.

Risk and rollout

Direct Linear API publication remains opt-in. The official SDK owns GraphQL transport and authenticated requests, while existing publication storage and recovery code remains the source of truth for durable issue mappings.

Public disclosure review

  • No customer, partner, prospect, or user identities, data, or identifying details are included.
  • No credentials, personal data, private source, scan findings, or nonpublic links or tickets are included.
  • I reviewed the branch name, title, description, commits, changes, comments, logs, screenshots, attachments, and links for public disclosure.

kmbroai added 30 commits August 15, 2026 05:59
kmbroai added 24 commits August 16, 2026 00:11
# Conflicts:
#	sdk/typescript/scripts/check-package.mjs
# Conflicts:
#	sdk/typescript/scripts/check-package.mjs
# Conflicts:
#	sdk/typescript/src/publish.ts
Base automatically changed from dev/kyleb/linear-publish-presentation to main August 16, 2026 01:24
@github-actions github-actions Bot added the enhancement New feature or request label Aug 16, 2026
@daneschneider-oai
daneschneider-oai merged commit a4076de into main Aug 16, 2026
54 of 57 checks passed
@daneschneider-oai
daneschneider-oai deleted the dev/kyleb/linear-publish-api-key branch August 16, 2026 01:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants