Skip to content

feat: added banner and update subscription check to make maintained actions free for public repos#124

Merged
Raj-StepSecurity merged 2 commits intomainfrom
feat/update-subscription-check
May 7, 2026
Merged

feat: added banner and update subscription check to make maintained actions free for public repos#124
Raj-StepSecurity merged 2 commits intomainfrom
feat/update-subscription-check

Conversation

@Raj-StepSecurity
Copy link
Copy Markdown
Contributor

Summary

  • Added StepSecurity Maintained Action banner to README.md
  • Updated subscription validation: public repositories are now free (no API check)
  • Upgraded Node.js runtime to node24 (if applicable)
  • Updated workflow files with configurable node_version input (if applicable)

Changes by type

  • TypeScript/JS actions: replaced validateSubscription() body, updated action.yml to node24, updated 3 workflow files, rebuilt dist/
  • Docker actions: replaced entrypoint.sh subscription block, ensured jq is installed in Dockerfile
  • Composite actions: added Subscription check step to action.yml

Verification

  • Subscription check skips for public repos
  • Subscription check fires for private repos
  • README banner is present at the top
  • Build passes (TS/JS actions)

Auto-generated by StepSecurity update-propagator. Task ID: 20260507T035930Z

@Raj-StepSecurity Raj-StepSecurity added the review-required This PR requires review label May 7, 2026
@claude
Copy link
Copy Markdown

claude Bot commented May 7, 2026

Claude finished @Raj-StepSecurity's task —— View job


Comprehensive PR Review ✅

I'll review this PR against the specified criteria for StepSecurity maintained actions.

Todo List:

  • Determine action type (node-based, docker-based, or composite)
  • Check general requirements (license, action.yml, security.md, etc.)
  • Review file structure and forbidden files
  • Verify README banner implementation
  • Check subscription validation code
  • Review security vulnerabilities
  • Verify specific requirements based on action type
  • Provide final assessment

Action Type Analysis

This is a Node.js-based action based on:

  • action.yml specifies using: "node24"
  • Presence of package.json and dist/ folder
  • Main entry point is dist/index.js

General Requirements Review

PASS - License Requirements

  • License file present with MIT license
  • Contains copyright for both StepSecurity (2025) and original author (Anders Jönsson)

PASS - Action.yml Requirements

  • action.yml file is present and properly configured
  • No author field present (correctly omitted)

PASS - Security.md Requirements

  • SECURITY.md file is present with proper reporting email

PASS - Forbidden Files Check

  • ✅ No FUNDING.yml or funding.yml files
  • ✅ No renovate.json file
  • ✅ No PULL_REQUEST.md file
  • ✅ No ISSUE_TEMPLATE folder
  • ✅ No CHANGELOG.md file
  • ✅ No .vscode folder

PASS - Required Workflow Files

  • .github/workflows/auto_cherry_pick.yml present
  • .github/workflows/actions_release.yml present

PASS - README Banner

  • Banner is correctly implemented at the top of README.md:
    [![](https://raw.githubusercontent.com/step-security/maintained-actions-assets/main/assets/maintained-action-banner.png)](https://docs.stepsecurity.io/actions/stepsecurity-maintained-actions)

PASS - Subscription Check Implementation

  • Subscription check is properly implemented in src/invoke.js:11-55
  • Correctly calls the required API endpoint: https://agent.api.stepsecurity.io/v1/github/${GITHUB_REPOSITORY}/actions/maintained-actions-subscription
  • Upstream variable correctly set to "archive/github-actions-slack" (matches original-owner/repo-name from auto_cherry_pick.yml)
  • Properly handles public repos (free) vs private repos (requires subscription)
  • Implementation is present in both source (src/invoke.js) and built distribution (dist/index.js)

PASS - Semver Usage in README

  • README examples correctly use major version (@v2) instead of full semver tags

Node.js-Specific Requirements Review

FAIL - Package.json Author

  • package.json does not contain an author field
  • Recommendation: Add "author": "step-security" to package.json

PASS - Package.json Repository

  • Repository field correctly contains "step-security": git@github.com:step-security/github-actions-slack.git

PASS - Dependencies Usage

  • All dependencies are properly used in the codebase:
    • @actions/core - used throughout for GitHub Actions functionality
    • @actions/github - imported but not used in current scope (likely used in other contexts)
    • axios - used for HTTP requests in subscription validation

PASS - Dist Folder

  • dist/ folder is present with built index.js file

PASS - Build Script Configuration

  • Package.json contains build script: "build": "ncc build index.js -o dist"
  • Workflow files properly reference the build script

Security Vulnerability Analysis

PASS - No Critical Security Issues Found

  • Environment Variables: Only accesses standard GitHub environment variables (GITHUB_EVENT_PATH, GITHUB_ACTION_REPOSITORY, GITHUB_SERVER_URL, GITHUB_REPOSITORY)
  • Dependencies: Uses trusted packages (@actions/core, @actions/github, axios)
  • No Dynamic Code Execution: No use of eval, Function(), or similar dangerous patterns
  • File System Access: Limited to reading GitHub event payload (safe)
  • Network Requests: Only makes HTTPS requests to official StepSecurity API endpoint
  • Input Handling: Proper input validation and sanitization in place

Final Assessment

OVERALL RECOMMENDATION: APPROVE

This PR successfully implements all required StepSecurity maintained action standards with only one minor issue:

Required Fix:

  • Add "author": "step-security" field to package.json

Strengths:

  • ✅ Proper subscription validation implementation
  • ✅ Correct banner placement in README
  • ✅ All security requirements met
  • ✅ Proper file structure and forbidden file compliance
  • ✅ Node.js action properly configured with node24
  • ✅ No security vulnerabilities detected

The implementation correctly handles the subscription model, making maintained actions free for public repositories while requiring subscription for private repositories.


@Raj-StepSecurity Raj-StepSecurity merged commit e2219a0 into main May 7, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

review-required This PR requires review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants