Skip to content
Open
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
2 changes: 1 addition & 1 deletion .cursor-plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
},
"metadata": {
"description": "JFrog Platform plugins for Cursor",
"version": "0.5.4",
"version": "0.5.6",
"pluginRoot": "plugins"
},
"plugins": [
Expand Down
62 changes: 62 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
# Copyright (c) JFrog Ltd. 2026
name: Release

on:
push:
branches: [main]

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: false

permissions:
contents: write

jobs:
release:
runs-on: ubuntu-latest
steps:
# Check out the repository with a token so the workflow can push tags
- uses: actions/checkout@v5
with:
token: ${{ secrets.GITHUB_TOKEN }}

# Parse the commit message for a [major], [minor], or [patch] tag
- name: Detect release tag in commit message
id: detect
run: |
MSG="${{ github.event.head_commit.message }}"
if echo "$MSG" | grep -qE '\[(major|minor|patch)\]'; then
echo "triggered=true" >> "$GITHUB_OUTPUT"
else
echo "triggered=false" >> "$GITHUB_OUTPUT"
fi

# Read the current version from the VERSION file
- name: Read version
if: steps.detect.outputs.triggered == 'true'
id: version
run: echo "version=$(cat VERSION)" >> "$GITHUB_OUTPUT"

# Create a git tag for the version and push it to origin
- name: Create and push tag
if: steps.detect.outputs.triggered == 'true'
run: |
git tag "v${{ steps.version.outputs.version }}"
git push origin "v${{ steps.version.outputs.version }}"

# Bundle the plugin directory into a zip file for the GitHub Release
- name: Package release artifact
if: steps.detect.outputs.triggered == 'true'
run: zip -r release.zip . --exclude ".git/*" --exclude ".github/*"

# Publish the GitHub Release with the zip artifact and auto-generated notes
- name: Create GitHub Release
if: steps.detect.outputs.triggered == 'true'
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh release create "v${{ steps.version.outputs.version }}" \
release.zip \
--title "Release v${{ steps.version.outputs.version }}" \
--generate-notes
32 changes: 32 additions & 0 deletions .github/workflows/validate-version.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Copyright (c) JFrog Ltd. 2026
name: Validate version

on:
pull_request:
branches: [main]

jobs:
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5

- name: Check version consistency
run: |
VERSION=$(cat VERSION)
FAILED=0

PLUGIN_VERSION=$(jq -r '.version' plugins/jfrog/.cursor-plugin/plugin.json)
if [ "$VERSION" != "$PLUGIN_VERSION" ]; then
echo "::error::Version mismatch: VERSION=$VERSION but plugins/jfrog/.cursor-plugin/plugin.json.version=$PLUGIN_VERSION"
FAILED=1
fi

MARKET_VERSION=$(jq -r '.metadata.version' .cursor-plugin/marketplace.json)
if [ "$VERSION" != "$MARKET_VERSION" ]; then
echo "::error::Version mismatch: VERSION=$VERSION but .cursor-plugin/marketplace.json.metadata.version=$MARKET_VERSION"
FAILED=1
fi

[ "$FAILED" -eq 0 ] && echo "All versions consistent: $VERSION"
exit $FAILED
9 changes: 9 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,15 @@ The `skills/` tree is vendored from [`jfrog/jfrog-skills`](https://github.com/jf

See [`VENDOR.md`](VENDOR.md) for the full picture.

## Releasing

To cut a release:

1. In your PR, bump `VERSION` and sync both `plugins/jfrog/.cursor-plugin/plugin.json` `.version` and `.cursor-plugin/marketplace.json` `.metadata.version` to match. The `validate-version` PR check enforces this.
2. Merge to `main` with `[major]`, `[minor]`, or `[patch]` anywhere in the commit message.

The release workflow reads `VERSION`, creates a `vX.Y.Z` git tag, and publishes a GitHub Release with a repo zip attached. No bot push to `main` — the version bump is part of the PR itself.

## Reporting Issues

Open a [GitHub issue](https://github.com/jfrog/cursor-plugin/issues) with:
Expand Down
1 change: 1 addition & 0 deletions VERSION
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
0.5.6
3 changes: 2 additions & 1 deletion plugins/jfrog/.cursor-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "jfrog",
"displayName": "JFrog Platform",
"version": "0.5.4",
"version": "0.5.6",
"description": "JFrog Platform integration with MCP, security skills, supply-chain best practices, and JFrog Agent Guard governance for adding, removing, and listing MCP servers.",
"author": {
"name": "JFrog",
Expand All @@ -23,6 +23,7 @@
"logo": "assets/logo.svg",
"skills": [
"skills/jfrog/SKILL.md",
"skills/jfrog-ai-catalog-skills/SKILL.md",
"skills/jfrog-package-safety-and-download/SKILL.md"
],
"hooks": "hooks/hooks.json"
Expand Down
Loading