Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
name: CI
on:
pull_request:
push:
branches: [main]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: actions/setup-node@v7
with:
node-version: 22
package-manager-cache: false
- run: npm ci
- run: npm run typecheck
- run: npm test
33 changes: 33 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# Publishes to npm with Trusted Publishing (OIDC, no token stored), same setup as coderbuzz/codex.
# Trigger: push a tag vX.Y.Z that equals package.json "version".
# npmjs.com > @coderbuzz/dsh > Settings > Trusted Publisher: GitHub Actions, coderbuzz / dsh / release.yml,
# "Allow npm publish" checked. The package must exist first: version 0.1.0 is published once by hand.
name: Release
on:
push:
tags: ["v*"]
concurrency:
group: release
cancel-in-progress: false
jobs:
publish:
runs-on: ubuntu-latest
permissions:
contents: read
id-token: write # OIDC token npm exchanges for a short-lived publish credential
steps:
- uses: actions/checkout@v7
# Trusted Publishing needs Node 22.14+ and npm 11.5.1+.
- uses: actions/setup-node@v7
with:
node-version: latest
registry-url: https://registry.npmjs.org
package-manager-cache: false
- run: npm install -g npm@latest && npm --version
- name: Tag matches package.json version
run: |
v=$(node -p "require('./package.json').version")
[ "v$v" = "$GITHUB_REF_NAME" ] || { echo "::error::tag $GITHUB_REF_NAME != package.json version $v"; exit 1; }
- run: npm ci
# No NODE_AUTH_TOKEN: with none set, npm uses OIDC. prepublishOnly runs the tests.
- run: npm publish --access public
5 changes: 5 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,11 @@ Node OpenAI SDK passes through as a literal key and DeepSeek ignores; dsh patche
a tool call, a resume, overrides, usage accounting, a stable message prefix, plan mode without bash,
timeout killing child processes, parallel runs in one project, and telemetry staying off.

## Release

Bump `version` in `package.json`, merge, then push tag `vX.Y.Z`: `.github/workflows/release.yml` tests and publishes
to npm with Trusted Publishing (OIDC, provenance, no token).

## Upstream sync

`scripts/sync-upstream.sh <ref>` re-vendors `packages/core` and re-applies `vendor/patches/`.
5 changes: 5 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,11 @@
"version": "0.1.0",
"description": "DeepSeek harness for orchestrators: structured JSON SDK and CLI on top of the deepcode-cli engine",
"license": "MIT",
"repository": {
"type": "git",
"url": "git+https://github.com/coderbuzz/dsh.git"
},
"homepage": "https://github.com/coderbuzz/dsh#readme",
"type": "module",
"bin": {
"dsh": "./dist/cli.js"
Expand Down
Loading