Skip to content
Back to skills

Jsr

ASecurity

jsr release workflow for Deno projects. Use when publishing or releasing packages to JSR (JavaScript Registry) using Deno.

  • 666 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added February 9, 2026
toolsjavascriptjavagit

Security analysis

A100/100

Scanned February 12, 2026

npx -y skills add majiayu000/claude-skill-registry --skill jsr --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Jsr?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Jsr
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/majiayu000-jsr/badge)](https://www.skillsdirectory.com/skills/majiayu000-jsr)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: jsr
description: jsr release workflow for Deno projects. Use when publishing or releasing packages to JSR (JavaScript Registry) using Deno.
---

## Add `deno task release`

```ts
// scripts/release.ts
const denoJsonPath = new URL("../deno.json", import.meta.url);
const denoJson = JSON.parse(Deno.readTextFileSync(denoJsonPath));
const currentVersion = denoJson.version;

let newVersion = Deno.args[0];

if (!newVersion) {
  console.log(`Current version: ${currentVersion}`);
  const input = prompt("Enter new version:");
  if (!input) {
    console.error("Version is required");
    Deno.exit(1);
  }
  newVersion = input;
}

if (newVersion.startsWith("v")) {
  newVersion = newVersion.substring(1);
}

// Update deno.json
denoJson.version = newVersion;
Deno.writeTextFileSync(
  denoJsonPath,
  JSON.stringify(denoJson, null, 2) + "\n",
);
console.log(`Updated deno.json version to ${newVersion}`);

// Run git commands
async function run(cmd: string[]) {
  console.log(`> ${cmd.join(" ")}`);
  const command = new Deno.Command(cmd[0], {
    args: cmd.slice(1),
    stdout: "inherit",
    stderr: "inherit",
  });
  const { code } = await command.output();
  if (code !== 0) {
    console.error(`Command failed with code ${code}`);
    Deno.exit(code);
  }
}

await run(["git", "add", "deno.json"]);
await run(["git", "commit", "-m", `chore: bump version to ${newVersion}`]);

console.log(
  `\nSuccessfully bumped version to ${newVersion}. Please push to trigger release workflow.`,
);
```

## Add release workflow under `.github/workflows/ci.yml`

```yml
name: CI

on:
  push:
    branches: [main]
  pull_request:
    branches: [main]

jobs:
  test:
    runs-on: ubuntu-latest
    permissions:
      contents: read
    steps:
      - name: Checkout repository
        uses: actions/checkout@v6

      - name: Setup Deno
        uses: denoland/setup-deno@v2

      - run: deno lint
      - run: deno check
      - run: deno test -P
      - run: deno fmt --check

  release:
    needs: test
    if: github.ref == 'refs/heads/main' && github.event_name == 'push'
    runs-on: ubuntu-latest
    permissions:
      contents: write
      id-token: write
    steps:
      - name: Checkout repository
        uses: actions/checkout@v6

      - name: Check version
        id: check
        run: |
          VERSION="v$(jq -r .version deno.json)"
          echo "Version: $VERSION"
          git fetch --tags
          if git rev-parse "$VERSION" >/dev/null 2>&1; then
            echo "Tag $VERSION already exists."
            echo "exists=true" >> "$GITHUB_OUTPUT"
          else
            echo "Tag $VERSION not found."
            echo "exists=false" >> "$GITHUB_OUTPUT"
            echo "version=$VERSION" >> "$GITHUB_OUTPUT"
          fi

      - name: Setup Deno
        if: steps.check.outputs.exists == 'false'
        uses: denoland/setup-deno@v2

      - name: Create Tag and Publish
        if: steps.check.outputs.exists == 'false'
        run: |
          git config user.name "github-actions[bot]"
          git config user.email "github-actions[bot]@users.noreply.github.com"

          VERSION="${{ steps.check.outputs.version }}"

          git tag "$VERSION"
          git push origin "$VERSION"
          deno publish
```

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.