Files
davila7__claude-code-templates/.github/workflows/publish-package.yml
Daniel Avila 0e06493dbe security: Harden CI/CD and repo for open-source safety (#458)
* enhance: Improve prompt-engineer agent (automated review)

- Fix broken reasoning framework: complete Ordering field and Necessity scale
- Remove OpenAI attribution from description; add invocation example block
- Restrict tools to Read only (text-transformation agent needs no writes)
- Add XML Structure and CoT Opportunity dimensions to reasoning template
- Move meta-instruction NOTE out of output template, place as agent directive
- Fix stray markdown bold markers on Reasoning Before Conclusions guideline
- Integrate orphaned examples bullet into the Examples guideline line
- Add concrete worked example section (classify customer feedback)

Automated review cycle | Co-Authored-By: Claude Code <noreply@anthropic.com>

* security: Harden CI/CD and repo for open-source safety

- Add --ignore-scripts to all npm ci/install in CI workflows and predeploy script
- Fix shell injection in discord-release-notification (use env vars + jq for payload)
- Add explicit permissions to all workflows (least privilege principle)
- Add root .npmrc with ignore-scripts=true
- Add .github/dependabot.yml for automated dependency security updates
- Add .github/CODEOWNERS to protect workflows, scripts, and API paths
- Expand .gitignore with *.pem, *.key, credentials.json patterns

* fix: Grant contents:read to deploy workflow so checkout works

Cubic correctly flagged that permissions: {} blocks actions/checkout.
2026-03-26 19:19:39 -04:00

80 lines
2.5 KiB
YAML

name: Publish Package to GitHub Packages
on:
release:
types: [published]
workflow_dispatch:
inputs:
version:
description: 'Version to publish (e.g., patch, minor, major, or specific version like 1.15.0)'
required: true
default: 'patch'
permissions:
contents: write
packages: write
jobs:
publish:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v6
with:
token: ${{ secrets.GITHUB_TOKEN }}
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: '18'
registry-url: 'https://npm.pkg.github.com'
scope: '@davila7'
- name: Configure package for GitHub Packages
working-directory: ./cli-tool
run: |
# Update package.json for GitHub Packages
npm pkg set name="@davila7/claude-code-templates"
npm pkg set repository.type="git"
npm pkg set repository.url="git+https://github.com/davila7/claude-code-templates.git"
npm pkg set publishConfig.registry="https://npm.pkg.github.com"
echo "Updated package.json for GitHub Packages:"
cat package.json
- name: Install dependencies
working-directory: ./cli-tool
run: npm ci --ignore-scripts
- name: Run tests
working-directory: ./cli-tool
run: npm test
- name: Get current version
working-directory: ./cli-tool
run: |
# Use existing version from package.json (no bump)
CURRENT_VERSION=$(node -p "require('./package.json').version")
echo "NEW_VERSION=$CURRENT_VERSION" >> $GITHUB_ENV
echo "Using version: $CURRENT_VERSION"
- name: Publish to GitHub Packages
working-directory: ./cli-tool
run: npm publish
env:
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Summary
run: |
echo "🎉 Package Published to GitHub Packages!"
echo "========================================"
echo "Package: @davila7/claude-code-templates"
echo "Version: ${{ env.NEW_VERSION }}"
echo "Registry: GitHub Packages"
echo ""
echo "Install with:"
echo "npm install -g @davila7/claude-code-templates --registry=https://npm.pkg.github.com"
echo ""
echo "Note: This workflow only publishes to GitHub Packages."
echo "Main npm registry publication is handled manually."