1616 contents : write # Required for creating releases
1717 id-token : write # Required for npm provenance
1818 attestations : write # Required for SLSA attestations
19+ packages : write # Required for GitHub Packages
1920 steps :
2021 - name : Harden Runner
2122 uses : step-security/harden-runner@0080882f6c36860b6ba35c610c98ce87d4e2f26f # v2.12.0
2425 allowed-endpoints : |
2526 api.github.com:443
2627 registry.npmjs.org:443
28+ npm.pkg.github.com:443
2729 github.com:443
2830 objects.githubusercontent.com:443
2931 raw.githubusercontent.com:443
@@ -156,11 +158,8 @@ jobs:
156158 fi
157159 done
158160
159- # Find and sign any GitHub attestation files
160- if [ ! -f minisign.key.skip ]; then
161- find . -name "*.intoto.jsonl" -exec sh -c 'echo "${{ secrets.MINISIGN_PASSPHRASE }}" | minisign -Sm "$1" -s minisign.key -W -t "SLSA Attestation for create-claude v$VERSION"' _ {} \;
162- fi
163- find . -name "*.intoto.jsonl" -exec gpg --armor --detach-sign --output {}.asc {} \;
161+ # Note: GitHub attestation files (.intoto.jsonl) are managed internally by GitHub
162+ # and don't need manual signing as they're already signed via Sigstore
164163
165164 - name : Cleanup sensitive files
166165 run : |
@@ -171,6 +170,28 @@ jobs:
171170 env :
172171 NODE_AUTH_TOKEN : ${{ secrets.NPM_TOKEN }}
173172
173+ - name : Configure npm for GitHub Packages
174+ uses : actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
175+ with :
176+ node-version : ' 22'
177+ registry-url : ' https://npm.pkg.github.com'
178+ scope : ' @rmncldyo'
179+
180+ - name : Publish to GitHub Packages
181+ run : |
182+ # Update package name for GitHub Packages (scoped)
183+ npm pkg set name="@rmncldyo/create-claude"
184+
185+ # Publish to GitHub Packages with provenance
186+ npm publish --provenance --access public
187+ env :
188+ NODE_AUTH_TOKEN : ${{ secrets.GITHUB_TOKEN }}
189+
190+ - name : Restore original package name
191+ run : |
192+ # Restore original package name for npm registry
193+ npm pkg set name="create-claude"
194+
174195 - name : Create comprehensive GitHub Release
175196 uses : softprops/action-gh-release@01570a1f39cb168c169c802c3bceb9e93fb10974 # v2.3.2
176197 with :
@@ -179,11 +200,16 @@ jobs:
179200 body : |
180201 ## 🚀 Release ${{ github.ref_name }}
181202
182- **Install:**
203+ **Install from npm :**
183204 ```bash
184205 npm install -g create-claude@${{ github.ref_name }}
185206 ```
186207
208+ **Install from GitHub Packages:**
209+ ```bash
210+ npm install -g @rmncldyo/create-claude@${{ github.ref_name }} --registry=https://npm.pkg.github.com
211+ ```
212+
187213 ## 🔐 Security & Verification
188214
189215 **Package Signatures:**
@@ -213,7 +239,6 @@ jobs:
213239 | **CycloneDX** | `create-claude-${{ github.ref_name }}.sbom.cyclonedx.json` | `.minisig`, `.asc` |
214240 | **CycloneDX XML** | `create-claude-${{ github.ref_name }}.sbom.cyclonedx.xml` | `.minisig`, `.asc` |
215241 | **Microsoft SPDX** | `create-claude-${{ github.ref_name }}.ms-spdx.json` | `.minisig`, `.asc` |
216- | **SLSA Provenance** | `*.intoto.jsonl` | `.minisig`, `.asc` |
217242
218243 ## 🛡️ Security Standards Compliance
219244
@@ -229,8 +254,5 @@ jobs:
229254 create-claude-*.tgz
230255 create-claude-*.tgz.minisig
231256 create-claude-*.tgz.asc
232- *.intoto.jsonl
233- *.intoto.jsonl.minisig
234- *.intoto.jsonl.asc
235257 create-claude-*.sbom.*
236258 create-claude-*.ms-spdx.json*
0 commit comments