release: 0.0.3, switched to npm trusted publishing (#101)

* version: 0.0.2

* Switch to npm trusted publishing (OIDC)

- Remove NPM_TOKEN secret requirement from npm-publish workflow
- Uses OIDC for authentication (more secure, no long-lived tokens)
- Update CONTRIBUTING.md with trusted publisher setup instructions

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* 0.0.3

---------

Co-authored-by: Claude <noreply@anthropic.com>
This commit is contained in:
Olivier Chafik 2025-12-09 00:52:52 +01:00 • committed by GitHub
commit 5c9665325d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 19 additions and 14 deletions

View file

@ -45,7 +45,7 @@ jobs:
publish: publish:
runs-on: ubuntu-latest runs-on: ubuntu-latest
if: github.event_name == 'release' if: github.event_name == 'release'
environment: release environment: Release
needs: [build, test] needs: [build, test]
permissions: permissions:
@ -80,6 +80,6 @@ jobs:
echo "tag=" >> $GITHUB_OUTPUT echo "tag=" >> $GITHUB_OUTPUT
fi fi
# Uses OIDC trusted publishing - no NPM_TOKEN needed
# Configure at: https://www.npmjs.com/package/@modelcontextprotocol/ext-apps/access
- run: npm publish --provenance --access public ${{ steps.npm-tag.outputs.tag }} - run: npm publish --provenance --access public ${{ steps.npm-tag.outputs.tag }}
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

View file

@ -60,16 +60,21 @@ Please review our [Security Policy](SECURITY.md) for reporting security vulnerab
### Repository Setup ### Repository Setup
This repository uses [npm trusted publishing](https://docs.npmjs.com/trusted-publishers/) with OIDC - no secrets required.
Before publishing releases, ensure the following are configured: Before publishing releases, ensure the following are configured:
1. **NPM_TOKEN secret**: Add an npm automation token to the repository secrets 1. **Trusted publisher on npm**: Configure the package to trust this GitHub repository
- Go to Settings <20> Secrets and variables <20> Actions - Go to https://www.npmjs.com/package/@modelcontextprotocol/ext-apps/access
- Create a new secret named `NPM_TOKEN` - Under "Trusted Publishers", click "Add trusted publisher"
- Value: an npm automation token with publish permissions for `@modelcontextprotocol/ext-apps` - Select "GitHub Actions"
- Repository: `modelcontextprotocol/ext-apps`
- Workflow filename: `npm-publish.yml`
- Environment: `Release` (optional, for additional protection)
2. **`release` environment** (optional): Create a protected environment for additional safeguards 2. **`Release` environment** (optional): Create a protected environment for additional safeguards
- Go to Settings <20> Environments <20> New environment - Go to Settings > Environments > New environment
- Name it `release` - Name it `Release`
- Add required reviewers or other protection rules as needed - Add required reviewers or other protection rules as needed
### Publishing a Release ### Publishing a Release

4
package-lock.json generated
View file

@ -1,12 +1,12 @@
{ {
"name": "@modelcontextprotocol/ext-apps", "name": "@modelcontextprotocol/ext-apps",
"version": "0.0.1", "version": "0.0.3",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "@modelcontextprotocol/ext-apps", "name": "@modelcontextprotocol/ext-apps",
"version": "0.0.1", "version": "0.0.3",
"license": "MIT", "license": "MIT",
"workspaces": [ "workspaces": [
"examples/*" "examples/*"

View file

@ -1,7 +1,7 @@
{ {
"homepage": "https://github.com/modelcontextprotocol/ext-apps", "homepage": "https://github.com/modelcontextprotocol/ext-apps",
"name": "@modelcontextprotocol/ext-apps", "name": "@modelcontextprotocol/ext-apps",
"version": "0.0.2", "version": "0.0.3",
"license": "MIT", "license": "MIT",
"description": "MCP Apps SDK — Enable MCP servers to display interactive user interfaces in conversational clients.", "description": "MCP Apps SDK — Enable MCP servers to display interactive user interfaces in conversational clients.",
"type": "module", "type": "module",