eslint-plugin-github-actions-2 1.0.1 → 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +155 -95
- package/dist/_internal/code-scanning-workflow.d.ts +37 -0
- package/dist/_internal/code-scanning-workflow.d.ts.map +1 -0
- package/dist/_internal/code-scanning-workflow.js +73 -0
- package/dist/_internal/code-scanning-workflow.js.map +1 -0
- package/dist/_internal/dependabot-automation-workflow.d.ts +26 -0
- package/dist/_internal/dependabot-automation-workflow.d.ts.map +1 -0
- package/dist/_internal/dependabot-automation-workflow.js +25 -0
- package/dist/_internal/dependabot-automation-workflow.js.map +1 -0
- package/dist/_internal/dependabot-yaml.d.ts +63 -0
- package/dist/_internal/dependabot-yaml.d.ts.map +1 -0
- package/dist/_internal/dependabot-yaml.js +139 -0
- package/dist/_internal/dependabot-yaml.js.map +1 -0
- package/dist/_internal/dependency-review-workflow.d.ts +20 -0
- package/dist/_internal/dependency-review-workflow.d.ts.map +1 -0
- package/dist/_internal/dependency-review-workflow.js +9 -0
- package/dist/_internal/dependency-review-workflow.js.map +1 -0
- package/dist/_internal/github-actions-config-references.d.ts +1 -1
- package/dist/_internal/github-actions-config-references.d.ts.map +1 -1
- package/dist/_internal/github-actions-config-references.js +19 -2
- package/dist/_internal/github-actions-config-references.js.map +1 -1
- package/dist/_internal/lint-targets.d.ts +8 -0
- package/dist/_internal/lint-targets.d.ts.map +1 -1
- package/dist/_internal/lint-targets.js +26 -0
- package/dist/_internal/lint-targets.js.map +1 -1
- package/dist/_internal/rules-registry.d.ts +90 -0
- package/dist/_internal/rules-registry.d.ts.map +1 -1
- package/dist/_internal/rules-registry.js +90 -0
- package/dist/_internal/rules-registry.js.map +1 -1
- package/dist/_internal/secret-scanning-workflow.d.ts +24 -0
- package/dist/_internal/secret-scanning-workflow.d.ts.map +1 -0
- package/dist/_internal/secret-scanning-workflow.js +21 -0
- package/dist/_internal/secret-scanning-workflow.js.map +1 -0
- package/dist/_internal/workflow-action-steps.d.ts +35 -0
- package/dist/_internal/workflow-action-steps.d.ts.map +1 -0
- package/dist/_internal/workflow-action-steps.js +75 -0
- package/dist/_internal/workflow-action-steps.js.map +1 -0
- package/dist/_internal/workflow-permissions.d.ts +11 -0
- package/dist/_internal/workflow-permissions.d.ts.map +1 -0
- package/dist/_internal/workflow-permissions.js +50 -0
- package/dist/_internal/workflow-permissions.js.map +1 -0
- package/dist/_internal/yaml-fixes.d.ts +13 -0
- package/dist/_internal/yaml-fixes.d.ts.map +1 -0
- package/dist/_internal/yaml-fixes.js +77 -0
- package/dist/_internal/yaml-fixes.js.map +1 -0
- package/dist/plugin.cjs +3526 -294
- package/dist/plugin.cjs.map +4 -4
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +2 -0
- package/dist/plugin.js.map +1 -1
- package/dist/rules/action-name-casing.d.ts.map +1 -1
- package/dist/rules/action-name-casing.js +3 -0
- package/dist/rules/action-name-casing.js.map +1 -1
- package/dist/rules/job-id-casing.d.ts.map +1 -1
- package/dist/rules/job-id-casing.js +3 -0
- package/dist/rules/job-id-casing.js.map +1 -1
- package/dist/rules/max-jobs-per-action.d.ts.map +1 -1
- package/dist/rules/max-jobs-per-action.js +3 -0
- package/dist/rules/max-jobs-per-action.js.map +1 -1
- package/dist/rules/no-case-insensitive-input-id-collision.d.ts.map +1 -1
- package/dist/rules/no-case-insensitive-input-id-collision.js +3 -0
- package/dist/rules/no-case-insensitive-input-id-collision.js.map +1 -1
- package/dist/rules/no-codeql-autobuild-for-javascript-typescript.d.ts +9 -0
- package/dist/rules/no-codeql-autobuild-for-javascript-typescript.d.ts.map +1 -0
- package/dist/rules/no-codeql-autobuild-for-javascript-typescript.js +54 -0
- package/dist/rules/no-codeql-autobuild-for-javascript-typescript.js.map +1 -0
- package/dist/rules/no-codeql-javascript-typescript-split-language-matrix.d.ts +9 -0
- package/dist/rules/no-codeql-javascript-typescript-split-language-matrix.d.ts.map +1 -0
- package/dist/rules/no-codeql-javascript-typescript-split-language-matrix.js +50 -0
- package/dist/rules/no-codeql-javascript-typescript-split-language-matrix.js.map +1 -0
- package/dist/rules/no-composite-input-env-access.d.ts.map +1 -1
- package/dist/rules/no-composite-input-env-access.js +3 -0
- package/dist/rules/no-composite-input-env-access.js.map +1 -1
- package/dist/rules/no-deprecated-node-runtime.d.ts.map +1 -1
- package/dist/rules/no-deprecated-node-runtime.js +3 -0
- package/dist/rules/no-deprecated-node-runtime.js.map +1 -1
- package/dist/rules/no-duplicate-composite-step-id.d.ts.map +1 -1
- package/dist/rules/no-duplicate-composite-step-id.js +3 -0
- package/dist/rules/no-duplicate-composite-step-id.js.map +1 -1
- package/dist/rules/no-empty-template-file-pattern.d.ts.map +1 -1
- package/dist/rules/no-empty-template-file-pattern.js +6 -0
- package/dist/rules/no-empty-template-file-pattern.js.map +1 -1
- package/dist/rules/no-external-job.d.ts.map +1 -1
- package/dist/rules/no-external-job.js +3 -0
- package/dist/rules/no-external-job.js.map +1 -1
- package/dist/rules/no-hardcoded-default-branch-in-template.d.ts.map +1 -1
- package/dist/rules/no-hardcoded-default-branch-in-template.js +3 -0
- package/dist/rules/no-hardcoded-default-branch-in-template.js.map +1 -1
- package/dist/rules/no-icon-file-extension-in-template-icon-name.d.ts.map +1 -1
- package/dist/rules/no-icon-file-extension-in-template-icon-name.js +13 -3
- package/dist/rules/no-icon-file-extension-in-template-icon-name.js.map +1 -1
- package/dist/rules/no-inherit-secrets.d.ts.map +1 -1
- package/dist/rules/no-inherit-secrets.js +3 -0
- package/dist/rules/no-inherit-secrets.js.map +1 -1
- package/dist/rules/no-invalid-concurrency-context.d.ts.map +1 -1
- package/dist/rules/no-invalid-concurrency-context.js +3 -0
- package/dist/rules/no-invalid-concurrency-context.js.map +1 -1
- package/dist/rules/no-invalid-key.d.ts.map +1 -1
- package/dist/rules/no-invalid-key.js +3 -0
- package/dist/rules/no-invalid-key.js.map +1 -1
- package/dist/rules/no-invalid-reusable-workflow-job-key.d.ts.map +1 -1
- package/dist/rules/no-invalid-reusable-workflow-job-key.js +3 -0
- package/dist/rules/no-invalid-reusable-workflow-job-key.js.map +1 -1
- package/dist/rules/no-invalid-template-file-pattern-regex.d.ts.map +1 -1
- package/dist/rules/no-invalid-template-file-pattern-regex.js +3 -0
- package/dist/rules/no-invalid-template-file-pattern-regex.js.map +1 -1
- package/dist/rules/no-invalid-workflow-call-output-value.d.ts.map +1 -1
- package/dist/rules/no-invalid-workflow-call-output-value.js +3 -0
- package/dist/rules/no-invalid-workflow-call-output-value.js.map +1 -1
- package/dist/rules/no-overlapping-dependabot-directories.d.ts +9 -0
- package/dist/rules/no-overlapping-dependabot-directories.d.ts.map +1 -0
- package/dist/rules/no-overlapping-dependabot-directories.js +151 -0
- package/dist/rules/no-overlapping-dependabot-directories.js.map +1 -0
- package/dist/rules/no-path-separators-in-template-icon-name.d.ts.map +1 -1
- package/dist/rules/no-path-separators-in-template-icon-name.js +26 -3
- package/dist/rules/no-path-separators-in-template-icon-name.js.map +1 -1
- package/dist/rules/no-post-if-without-post.d.ts.map +1 -1
- package/dist/rules/no-post-if-without-post.js +6 -0
- package/dist/rules/no-post-if-without-post.js.map +1 -1
- package/dist/rules/no-pr-head-checkout-in-pull-request-target.d.ts.map +1 -1
- package/dist/rules/no-pr-head-checkout-in-pull-request-target.js +3 -0
- package/dist/rules/no-pr-head-checkout-in-pull-request-target.js.map +1 -1
- package/dist/rules/no-pre-if-without-pre.d.ts.map +1 -1
- package/dist/rules/no-pre-if-without-pre.js +6 -0
- package/dist/rules/no-pre-if-without-pre.js.map +1 -1
- package/dist/rules/no-required-input-with-default.d.ts.map +1 -1
- package/dist/rules/no-required-input-with-default.js +23 -0
- package/dist/rules/no-required-input-with-default.js.map +1 -1
- package/dist/rules/no-secrets-in-if.d.ts.map +1 -1
- package/dist/rules/no-secrets-in-if.js +3 -0
- package/dist/rules/no-secrets-in-if.js.map +1 -1
- package/dist/rules/no-self-hosted-runner-on-fork-pr-events.d.ts.map +1 -1
- package/dist/rules/no-self-hosted-runner-on-fork-pr-events.js +3 -0
- package/dist/rules/no-self-hosted-runner-on-fork-pr-events.js.map +1 -1
- package/dist/rules/no-subdirectory-template-file-pattern.d.ts.map +1 -1
- package/dist/rules/no-subdirectory-template-file-pattern.js +3 -0
- package/dist/rules/no-subdirectory-template-file-pattern.js.map +1 -1
- package/dist/rules/no-template-placeholder-in-non-template-workflow.d.ts.map +1 -1
- package/dist/rules/no-template-placeholder-in-non-template-workflow.js +3 -0
- package/dist/rules/no-template-placeholder-in-non-template-workflow.js.map +1 -1
- package/dist/rules/no-top-level-env.d.ts.map +1 -1
- package/dist/rules/no-top-level-env.js +3 -0
- package/dist/rules/no-top-level-env.js.map +1 -1
- package/dist/rules/no-top-level-permissions.d.ts.map +1 -1
- package/dist/rules/no-top-level-permissions.js +3 -0
- package/dist/rules/no-top-level-permissions.js.map +1 -1
- package/dist/rules/no-universal-template-file-pattern.d.ts.map +1 -1
- package/dist/rules/no-universal-template-file-pattern.js +3 -0
- package/dist/rules/no-universal-template-file-pattern.js.map +1 -1
- package/dist/rules/no-unknown-dependabot-multi-ecosystem-group.d.ts +9 -0
- package/dist/rules/no-unknown-dependabot-multi-ecosystem-group.d.ts.map +1 -0
- package/dist/rules/no-unknown-dependabot-multi-ecosystem-group.js +58 -0
- package/dist/rules/no-unknown-dependabot-multi-ecosystem-group.js.map +1 -0
- package/dist/rules/no-unknown-input-reference-in-composite.d.ts.map +1 -1
- package/dist/rules/no-unknown-input-reference-in-composite.js +3 -0
- package/dist/rules/no-unknown-input-reference-in-composite.js.map +1 -1
- package/dist/rules/no-unknown-job-output-reference.d.ts.map +1 -1
- package/dist/rules/no-unknown-job-output-reference.js +3 -0
- package/dist/rules/no-unknown-job-output-reference.js.map +1 -1
- package/dist/rules/no-unknown-step-reference.d.ts.map +1 -1
- package/dist/rules/no-unknown-step-reference.js +3 -0
- package/dist/rules/no-unknown-step-reference.js.map +1 -1
- package/dist/rules/no-untrusted-input-in-run.d.ts.map +1 -1
- package/dist/rules/no-untrusted-input-in-run.js +3 -0
- package/dist/rules/no-untrusted-input-in-run.js.map +1 -1
- package/dist/rules/no-unused-dependabot-enable-beta-ecosystems.d.ts +9 -0
- package/dist/rules/no-unused-dependabot-enable-beta-ecosystems.d.ts.map +1 -0
- package/dist/rules/no-unused-dependabot-enable-beta-ecosystems.js +51 -0
- package/dist/rules/no-unused-dependabot-enable-beta-ecosystems.js.map +1 -0
- package/dist/rules/no-unused-input-in-composite.d.ts.map +1 -1
- package/dist/rules/no-unused-input-in-composite.js +3 -0
- package/dist/rules/no-unused-input-in-composite.js.map +1 -1
- package/dist/rules/no-write-all-permissions.d.ts.map +1 -1
- package/dist/rules/no-write-all-permissions.js +3 -0
- package/dist/rules/no-write-all-permissions.js.map +1 -1
- package/dist/rules/pin-action-shas.d.ts.map +1 -1
- package/dist/rules/pin-action-shas.js +3 -0
- package/dist/rules/pin-action-shas.js.map +1 -1
- package/dist/rules/prefer-action-yml.d.ts.map +1 -1
- package/dist/rules/prefer-action-yml.js +3 -0
- package/dist/rules/prefer-action-yml.js.map +1 -1
- package/dist/rules/prefer-fail-fast.d.ts.map +1 -1
- package/dist/rules/prefer-fail-fast.js +3 -0
- package/dist/rules/prefer-fail-fast.js.map +1 -1
- package/dist/rules/prefer-file-extension.d.ts.map +1 -1
- package/dist/rules/prefer-file-extension.js +3 -0
- package/dist/rules/prefer-file-extension.js.map +1 -1
- package/dist/rules/prefer-inputs-context.d.ts.map +1 -1
- package/dist/rules/prefer-inputs-context.js +3 -0
- package/dist/rules/prefer-inputs-context.js.map +1 -1
- package/dist/rules/prefer-step-uses-style.d.ts.map +1 -1
- package/dist/rules/prefer-step-uses-style.js +3 -0
- package/dist/rules/prefer-step-uses-style.js.map +1 -1
- package/dist/rules/prefer-template-yml-extension.d.ts.map +1 -1
- package/dist/rules/prefer-template-yml-extension.js +3 -0
- package/dist/rules/prefer-template-yml-extension.js.map +1 -1
- package/dist/rules/require-action-name.d.ts.map +1 -1
- package/dist/rules/require-action-name.js +3 -0
- package/dist/rules/require-action-name.js.map +1 -1
- package/dist/rules/require-action-run-name.d.ts.map +1 -1
- package/dist/rules/require-action-run-name.js +3 -0
- package/dist/rules/require-action-run-name.js.map +1 -1
- package/dist/rules/require-checkout-before-local-action.d.ts.map +1 -1
- package/dist/rules/require-checkout-before-local-action.js +3 -0
- package/dist/rules/require-checkout-before-local-action.js.map +1 -1
- package/dist/rules/require-codeql-actions-read.d.ts +9 -0
- package/dist/rules/require-codeql-actions-read.d.ts.map +1 -0
- package/dist/rules/require-codeql-actions-read.js +63 -0
- package/dist/rules/require-codeql-actions-read.js.map +1 -0
- package/dist/rules/require-codeql-branch-filters.d.ts +12 -0
- package/dist/rules/require-codeql-branch-filters.d.ts.map +1 -0
- package/dist/rules/require-codeql-branch-filters.js +83 -0
- package/dist/rules/require-codeql-branch-filters.js.map +1 -0
- package/dist/rules/require-codeql-category-when-language-matrix.d.ts +12 -0
- package/dist/rules/require-codeql-category-when-language-matrix.d.ts.map +1 -0
- package/dist/rules/require-codeql-category-when-language-matrix.js +68 -0
- package/dist/rules/require-codeql-category-when-language-matrix.js.map +1 -0
- package/dist/rules/require-codeql-pull-request-trigger.d.ts +9 -0
- package/dist/rules/require-codeql-pull-request-trigger.d.ts.map +1 -0
- package/dist/rules/require-codeql-pull-request-trigger.js +46 -0
- package/dist/rules/require-codeql-pull-request-trigger.js.map +1 -0
- package/dist/rules/require-codeql-schedule.d.ts +9 -0
- package/dist/rules/require-codeql-schedule.d.ts.map +1 -0
- package/dist/rules/require-codeql-schedule.js +46 -0
- package/dist/rules/require-codeql-schedule.js.map +1 -0
- package/dist/rules/require-codeql-security-events-write.d.ts +9 -0
- package/dist/rules/require-codeql-security-events-write.d.ts.map +1 -0
- package/dist/rules/require-codeql-security-events-write.js +53 -0
- package/dist/rules/require-codeql-security-events-write.js.map +1 -0
- package/dist/rules/require-composite-step-name.d.ts.map +1 -1
- package/dist/rules/require-composite-step-name.js +3 -0
- package/dist/rules/require-composite-step-name.js.map +1 -1
- package/dist/rules/require-dependabot-assignees.d.ts +9 -0
- package/dist/rules/require-dependabot-assignees.d.ts.map +1 -0
- package/dist/rules/require-dependabot-assignees.js +53 -0
- package/dist/rules/require-dependabot-assignees.js.map +1 -0
- package/dist/rules/require-dependabot-automation-permissions.d.ts +9 -0
- package/dist/rules/require-dependabot-automation-permissions.d.ts.map +1 -0
- package/dist/rules/require-dependabot-automation-permissions.js +68 -0
- package/dist/rules/require-dependabot-automation-permissions.js.map +1 -0
- package/dist/rules/require-dependabot-automation-pull-request-trigger.d.ts +12 -0
- package/dist/rules/require-dependabot-automation-pull-request-trigger.d.ts.map +1 -0
- package/dist/rules/require-dependabot-automation-pull-request-trigger.js +49 -0
- package/dist/rules/require-dependabot-automation-pull-request-trigger.js.map +1 -0
- package/dist/rules/require-dependabot-bot-actor-guard.d.ts +9 -0
- package/dist/rules/require-dependabot-bot-actor-guard.d.ts.map +1 -0
- package/dist/rules/require-dependabot-bot-actor-guard.js +64 -0
- package/dist/rules/require-dependabot-bot-actor-guard.js.map +1 -0
- package/dist/rules/require-dependabot-commit-message-include-scope.d.ts +9 -0
- package/dist/rules/require-dependabot-commit-message-include-scope.d.ts.map +1 -0
- package/dist/rules/require-dependabot-commit-message-include-scope.js +60 -0
- package/dist/rules/require-dependabot-commit-message-include-scope.js.map +1 -0
- package/dist/rules/require-dependabot-commit-message-prefix-development.d.ts +9 -0
- package/dist/rules/require-dependabot-commit-message-prefix-development.d.ts.map +1 -0
- package/dist/rules/require-dependabot-commit-message-prefix-development.js +75 -0
- package/dist/rules/require-dependabot-commit-message-prefix-development.js.map +1 -0
- package/dist/rules/require-dependabot-commit-message-prefix.d.ts +9 -0
- package/dist/rules/require-dependabot-commit-message-prefix.d.ts.map +1 -0
- package/dist/rules/require-dependabot-commit-message-prefix.js +60 -0
- package/dist/rules/require-dependabot-commit-message-prefix.js.map +1 -0
- package/dist/rules/require-dependabot-cooldown.d.ts +9 -0
- package/dist/rules/require-dependabot-cooldown.d.ts.map +1 -0
- package/dist/rules/require-dependabot-cooldown.js +52 -0
- package/dist/rules/require-dependabot-cooldown.js.map +1 -0
- package/dist/rules/require-dependabot-directory.d.ts +9 -0
- package/dist/rules/require-dependabot-directory.d.ts.map +1 -0
- package/dist/rules/require-dependabot-directory.js +68 -0
- package/dist/rules/require-dependabot-directory.js.map +1 -0
- package/dist/rules/require-dependabot-github-actions-directory-root.d.ts +9 -0
- package/dist/rules/require-dependabot-github-actions-directory-root.d.ts.map +1 -0
- package/dist/rules/require-dependabot-github-actions-directory-root.js +76 -0
- package/dist/rules/require-dependabot-github-actions-directory-root.js.map +1 -0
- package/dist/rules/require-dependabot-labels.d.ts +9 -0
- package/dist/rules/require-dependabot-labels.d.ts.map +1 -0
- package/dist/rules/require-dependabot-labels.js +52 -0
- package/dist/rules/require-dependabot-labels.js.map +1 -0
- package/dist/rules/require-dependabot-open-pull-requests-limit.d.ts +9 -0
- package/dist/rules/require-dependabot-open-pull-requests-limit.d.ts.map +1 -0
- package/dist/rules/require-dependabot-open-pull-requests-limit.js +55 -0
- package/dist/rules/require-dependabot-open-pull-requests-limit.js.map +1 -0
- package/dist/rules/require-dependabot-package-ecosystem.d.ts +9 -0
- package/dist/rules/require-dependabot-package-ecosystem.d.ts.map +1 -0
- package/dist/rules/require-dependabot-package-ecosystem.js +79 -0
- package/dist/rules/require-dependabot-package-ecosystem.js.map +1 -0
- package/dist/rules/require-dependabot-patterns-for-multi-ecosystem-group.d.ts +9 -0
- package/dist/rules/require-dependabot-patterns-for-multi-ecosystem-group.d.ts.map +1 -0
- package/dist/rules/require-dependabot-patterns-for-multi-ecosystem-group.js +58 -0
- package/dist/rules/require-dependabot-patterns-for-multi-ecosystem-group.js.map +1 -0
- package/dist/rules/require-dependabot-schedule-cronjob.d.ts +9 -0
- package/dist/rules/require-dependabot-schedule-cronjob.d.ts.map +1 -0
- package/dist/rules/require-dependabot-schedule-cronjob.js +82 -0
- package/dist/rules/require-dependabot-schedule-cronjob.js.map +1 -0
- package/dist/rules/require-dependabot-schedule-interval.d.ts +9 -0
- package/dist/rules/require-dependabot-schedule-interval.d.ts.map +1 -0
- package/dist/rules/require-dependabot-schedule-interval.js +73 -0
- package/dist/rules/require-dependabot-schedule-interval.js.map +1 -0
- package/dist/rules/require-dependabot-schedule-time.d.ts +9 -0
- package/dist/rules/require-dependabot-schedule-time.d.ts.map +1 -0
- package/dist/rules/require-dependabot-schedule-time.js +68 -0
- package/dist/rules/require-dependabot-schedule-time.js.map +1 -0
- package/dist/rules/require-dependabot-schedule-timezone.d.ts +9 -0
- package/dist/rules/require-dependabot-schedule-timezone.d.ts.map +1 -0
- package/dist/rules/require-dependabot-schedule-timezone.js +69 -0
- package/dist/rules/require-dependabot-schedule-timezone.js.map +1 -0
- package/dist/rules/require-dependabot-target-branch.d.ts +9 -0
- package/dist/rules/require-dependabot-target-branch.d.ts.map +1 -0
- package/dist/rules/require-dependabot-target-branch.js +53 -0
- package/dist/rules/require-dependabot-target-branch.js.map +1 -0
- package/dist/rules/require-dependabot-updates.d.ts +9 -0
- package/dist/rules/require-dependabot-updates.d.ts.map +1 -0
- package/dist/rules/require-dependabot-updates.js +54 -0
- package/dist/rules/require-dependabot-updates.js.map +1 -0
- package/dist/rules/require-dependabot-version.d.ts +9 -0
- package/dist/rules/require-dependabot-version.d.ts.map +1 -0
- package/dist/rules/require-dependabot-version.js +62 -0
- package/dist/rules/require-dependabot-version.js.map +1 -0
- package/dist/rules/require-dependabot-versioning-strategy-for-npm.d.ts +9 -0
- package/dist/rules/require-dependabot-versioning-strategy-for-npm.d.ts.map +1 -0
- package/dist/rules/require-dependabot-versioning-strategy-for-npm.js +58 -0
- package/dist/rules/require-dependabot-versioning-strategy-for-npm.js.map +1 -0
- package/dist/rules/require-dependency-review-action.d.ts +9 -0
- package/dist/rules/require-dependency-review-action.d.ts.map +1 -0
- package/dist/rules/require-dependency-review-action.js +51 -0
- package/dist/rules/require-dependency-review-action.js.map +1 -0
- package/dist/rules/require-dependency-review-fail-on-severity.d.ts +9 -0
- package/dist/rules/require-dependency-review-fail-on-severity.d.ts.map +1 -0
- package/dist/rules/require-dependency-review-fail-on-severity.js +62 -0
- package/dist/rules/require-dependency-review-fail-on-severity.js.map +1 -0
- package/dist/rules/require-dependency-review-permissions-contents-read.d.ts +9 -0
- package/dist/rules/require-dependency-review-permissions-contents-read.d.ts.map +1 -0
- package/dist/rules/require-dependency-review-permissions-contents-read.js +55 -0
- package/dist/rules/require-dependency-review-permissions-contents-read.js.map +1 -0
- package/dist/rules/require-dependency-review-pull-request-trigger.d.ts +9 -0
- package/dist/rules/require-dependency-review-pull-request-trigger.d.ts.map +1 -0
- package/dist/rules/require-dependency-review-pull-request-trigger.js +47 -0
- package/dist/rules/require-dependency-review-pull-request-trigger.js.map +1 -0
- package/dist/rules/require-fetch-metadata-github-token.d.ts +9 -0
- package/dist/rules/require-fetch-metadata-github-token.d.ts.map +1 -0
- package/dist/rules/require-fetch-metadata-github-token.js +57 -0
- package/dist/rules/require-fetch-metadata-github-token.js.map +1 -0
- package/dist/rules/require-job-name.d.ts.map +1 -1
- package/dist/rules/require-job-name.js +35 -0
- package/dist/rules/require-job-name.js.map +1 -1
- package/dist/rules/require-job-step-name.d.ts.map +1 -1
- package/dist/rules/require-job-step-name.js +76 -0
- package/dist/rules/require-job-step-name.js.map +1 -1
- package/dist/rules/require-job-timeout-minutes.d.ts.map +1 -1
- package/dist/rules/require-job-timeout-minutes.js +3 -0
- package/dist/rules/require-job-timeout-minutes.js.map +1 -1
- package/dist/rules/require-merge-group-trigger.d.ts.map +1 -1
- package/dist/rules/require-merge-group-trigger.js +3 -0
- package/dist/rules/require-merge-group-trigger.js.map +1 -1
- package/dist/rules/require-pull-request-target-branches.d.ts.map +1 -1
- package/dist/rules/require-pull-request-target-branches.js +3 -0
- package/dist/rules/require-pull-request-target-branches.js.map +1 -1
- package/dist/rules/require-run-step-shell.d.ts.map +1 -1
- package/dist/rules/require-run-step-shell.js +3 -0
- package/dist/rules/require-run-step-shell.js.map +1 -1
- package/dist/rules/require-sarif-upload-security-events-write.d.ts +9 -0
- package/dist/rules/require-sarif-upload-security-events-write.d.ts.map +1 -0
- package/dist/rules/require-sarif-upload-security-events-write.js +51 -0
- package/dist/rules/require-sarif-upload-security-events-write.js.map +1 -0
- package/dist/rules/require-scorecard-results-format-sarif.d.ts +9 -0
- package/dist/rules/require-scorecard-results-format-sarif.d.ts.map +1 -0
- package/dist/rules/require-scorecard-results-format-sarif.js +57 -0
- package/dist/rules/require-scorecard-results-format-sarif.js.map +1 -0
- package/dist/rules/require-scorecard-upload-sarif-step.d.ts +9 -0
- package/dist/rules/require-scorecard-upload-sarif-step.d.ts.map +1 -0
- package/dist/rules/require-scorecard-upload-sarif-step.js +46 -0
- package/dist/rules/require-scorecard-upload-sarif-step.js.map +1 -0
- package/dist/rules/require-secret-scan-contents-read.d.ts +12 -0
- package/dist/rules/require-secret-scan-contents-read.d.ts.map +1 -0
- package/dist/rules/require-secret-scan-contents-read.js +53 -0
- package/dist/rules/require-secret-scan-contents-read.js.map +1 -0
- package/dist/rules/require-secret-scan-fetch-depth-zero.d.ts +9 -0
- package/dist/rules/require-secret-scan-fetch-depth-zero.d.ts.map +1 -0
- package/dist/rules/require-secret-scan-fetch-depth-zero.js +77 -0
- package/dist/rules/require-secret-scan-fetch-depth-zero.js.map +1 -0
- package/dist/rules/require-secret-scan-schedule.d.ts +9 -0
- package/dist/rules/require-secret-scan-schedule.d.ts.map +1 -0
- package/dist/rules/require-secret-scan-schedule.js +46 -0
- package/dist/rules/require-secret-scan-schedule.js.map +1 -0
- package/dist/rules/require-template-categories.d.ts.map +1 -1
- package/dist/rules/require-template-categories.js +3 -0
- package/dist/rules/require-template-categories.js.map +1 -1
- package/dist/rules/require-template-file-patterns.d.ts.map +1 -1
- package/dist/rules/require-template-file-patterns.js +3 -0
- package/dist/rules/require-template-file-patterns.js.map +1 -1
- package/dist/rules/require-template-icon-file-exists.d.ts.map +1 -1
- package/dist/rules/require-template-icon-file-exists.js +3 -0
- package/dist/rules/require-template-icon-file-exists.js.map +1 -1
- package/dist/rules/require-template-icon-name.d.ts.map +1 -1
- package/dist/rules/require-template-icon-name.js +3 -0
- package/dist/rules/require-template-icon-name.js.map +1 -1
- package/dist/rules/require-template-workflow-name.d.ts.map +1 -1
- package/dist/rules/require-template-workflow-name.js +3 -0
- package/dist/rules/require-template-workflow-name.js.map +1 -1
- package/dist/rules/require-trigger-types.d.ts.map +1 -1
- package/dist/rules/require-trigger-types.js +3 -0
- package/dist/rules/require-trigger-types.js.map +1 -1
- package/dist/rules/require-trufflehog-verified-results-mode.d.ts +9 -0
- package/dist/rules/require-trufflehog-verified-results-mode.d.ts.map +1 -0
- package/dist/rules/require-trufflehog-verified-results-mode.js +59 -0
- package/dist/rules/require-trufflehog-verified-results-mode.js.map +1 -0
- package/dist/rules/require-workflow-call-input-type.d.ts.map +1 -1
- package/dist/rules/require-workflow-call-input-type.js +3 -0
- package/dist/rules/require-workflow-call-input-type.js.map +1 -1
- package/dist/rules/require-workflow-call-output-value.d.ts.map +1 -1
- package/dist/rules/require-workflow-call-output-value.js +3 -0
- package/dist/rules/require-workflow-call-output-value.js.map +1 -1
- package/dist/rules/require-workflow-concurrency.d.ts.map +1 -1
- package/dist/rules/require-workflow-concurrency.js +3 -0
- package/dist/rules/require-workflow-concurrency.js.map +1 -1
- package/dist/rules/require-workflow-dispatch-input-type.d.ts.map +1 -1
- package/dist/rules/require-workflow-dispatch-input-type.js +3 -0
- package/dist/rules/require-workflow-dispatch-input-type.js.map +1 -1
- package/dist/rules/require-workflow-interface-description.d.ts.map +1 -1
- package/dist/rules/require-workflow-interface-description.js +3 -0
- package/dist/rules/require-workflow-interface-description.js.map +1 -1
- package/dist/rules/require-workflow-permissions.d.ts.map +1 -1
- package/dist/rules/require-workflow-permissions.js +3 -0
- package/dist/rules/require-workflow-permissions.js.map +1 -1
- package/dist/rules/require-workflow-run-branches.d.ts.map +1 -1
- package/dist/rules/require-workflow-run-branches.js +3 -0
- package/dist/rules/require-workflow-run-branches.js.map +1 -1
- package/dist/rules/require-workflow-template-pair.d.ts.map +1 -1
- package/dist/rules/require-workflow-template-pair.js +3 -0
- package/dist/rules/require-workflow-template-pair.js.map +1 -1
- package/dist/rules/require-workflow-template-properties-pair.d.ts.map +1 -1
- package/dist/rules/require-workflow-template-properties-pair.js +3 -0
- package/dist/rules/require-workflow-template-properties-pair.js.map +1 -1
- package/dist/rules/valid-timeout-minutes.d.ts.map +1 -1
- package/dist/rules/valid-timeout-minutes.js +3 -0
- package/dist/rules/valid-timeout-minutes.js.map +1 -1
- package/dist/rules/valid-trigger-events.d.ts.map +1 -1
- package/dist/rules/valid-trigger-events.js +3 -0
- package/dist/rules/valid-trigger-events.js.map +1 -1
- package/docs/rules/action-name-casing.md +6 -2
- package/docs/rules/no-codeql-autobuild-for-javascript-typescript.md +55 -0
- package/docs/rules/no-codeql-javascript-typescript-split-language-matrix.md +51 -0
- package/docs/rules/no-empty-template-file-pattern.md +5 -1
- package/docs/rules/no-icon-file-extension-in-template-icon-name.md +5 -1
- package/docs/rules/no-overlapping-dependabot-directories.md +87 -0
- package/docs/rules/no-path-separators-in-template-icon-name.md +5 -1
- package/docs/rules/no-post-if-without-post.md +5 -1
- package/docs/rules/no-pre-if-without-pre.md +5 -1
- package/docs/rules/no-required-input-with-default.md +10 -1
- package/docs/rules/no-unknown-dependabot-multi-ecosystem-group.md +62 -0
- package/docs/rules/no-unused-dependabot-enable-beta-ecosystems.md +63 -0
- package/docs/rules/overview.md +47 -1
- package/docs/rules/prefer-inputs-context.md +6 -2
- package/docs/rules/presets/action-metadata.md +22 -11
- package/docs/rules/presets/all.md +125 -69
- package/docs/rules/presets/code-scanning.md +33 -0
- package/docs/rules/presets/dependabot.md +40 -0
- package/docs/rules/presets/index.md +144 -73
- package/docs/rules/presets/recommended.md +30 -19
- package/docs/rules/presets/security.md +35 -9
- package/docs/rules/presets/strict.md +52 -41
- package/docs/rules/presets/workflow-template-properties.md +22 -11
- package/docs/rules/presets/workflow-templates.md +26 -15
- package/docs/rules/require-codeql-actions-read.md +50 -0
- package/docs/rules/require-codeql-branch-filters.md +53 -0
- package/docs/rules/require-codeql-category-when-language-matrix.md +49 -0
- package/docs/rules/require-codeql-pull-request-trigger.md +53 -0
- package/docs/rules/require-codeql-schedule.md +57 -0
- package/docs/rules/require-codeql-security-events-write.md +50 -0
- package/docs/rules/require-dependabot-assignees.md +64 -0
- package/docs/rules/require-dependabot-automation-permissions.md +53 -0
- package/docs/rules/require-dependabot-automation-pull-request-trigger.md +49 -0
- package/docs/rules/require-dependabot-bot-actor-guard.md +52 -0
- package/docs/rules/require-dependabot-commit-message-include-scope.md +58 -0
- package/docs/rules/require-dependabot-commit-message-prefix-development.md +60 -0
- package/docs/rules/require-dependabot-commit-message-prefix.md +64 -0
- package/docs/rules/require-dependabot-cooldown.md +59 -0
- package/docs/rules/require-dependabot-directory.md +79 -0
- package/docs/rules/require-dependabot-github-actions-directory-root.md +62 -0
- package/docs/rules/require-dependabot-labels.md +65 -0
- package/docs/rules/require-dependabot-open-pull-requests-limit.md +58 -0
- package/docs/rules/require-dependabot-package-ecosystem.md +57 -0
- package/docs/rules/require-dependabot-patterns-for-multi-ecosystem-group.md +67 -0
- package/docs/rules/require-dependabot-schedule-cronjob.md +74 -0
- package/docs/rules/require-dependabot-schedule-interval.md +66 -0
- package/docs/rules/require-dependabot-schedule-time.md +60 -0
- package/docs/rules/require-dependabot-schedule-timezone.md +61 -0
- package/docs/rules/require-dependabot-target-branch.md +63 -0
- package/docs/rules/require-dependabot-updates.md +58 -0
- package/docs/rules/require-dependabot-version.md +70 -0
- package/docs/rules/require-dependabot-versioning-strategy-for-npm.md +58 -0
- package/docs/rules/require-dependency-review-action.md +60 -0
- package/docs/rules/require-dependency-review-fail-on-severity.md +57 -0
- package/docs/rules/require-dependency-review-permissions-contents-read.md +62 -0
- package/docs/rules/require-dependency-review-pull-request-trigger.md +57 -0
- package/docs/rules/require-fetch-metadata-github-token.md +49 -0
- package/docs/rules/require-job-name.md +6 -2
- package/docs/rules/require-job-step-name.md +11 -2
- package/docs/rules/require-sarif-upload-security-events-write.md +50 -0
- package/docs/rules/require-scorecard-results-format-sarif.md +49 -0
- package/docs/rules/require-scorecard-upload-sarif-step.md +55 -0
- package/docs/rules/require-secret-scan-contents-read.md +48 -0
- package/docs/rules/require-secret-scan-fetch-depth-zero.md +50 -0
- package/docs/rules/require-secret-scan-schedule.md +50 -0
- package/docs/rules/require-trufflehog-verified-results-mode.md +49 -0
- package/package.json +52 -59
|
@@ -37,6 +37,14 @@ jobs:
|
|
|
37
37
|
run: npm test
|
|
38
38
|
```
|
|
39
39
|
|
|
40
|
+
## Behavior and migration notes
|
|
41
|
+
|
|
42
|
+
This rule provides suggestions when it can infer a meaningful step label from existing step content:
|
|
43
|
+
|
|
44
|
+
- for `uses:` steps, it suggests the action reference without the version suffix, and
|
|
45
|
+
- for `run:` steps, it suggests the first non-empty command line when that line is short enough to read well in logs.
|
|
46
|
+
|
|
47
|
+
Those suggestions are intentionally reviewable rather than automatically applied because human-friendly step names often need a little more context than the raw command or action reference.
|
|
40
48
|
|
|
41
49
|
## Additional examples
|
|
42
50
|
|
|
@@ -63,7 +71,8 @@ export default [
|
|
|
63
71
|
## When not to use it
|
|
64
72
|
|
|
65
73
|
You can disable this rule when its policy does not match your repository standards, or when equivalent enforcement is already handled by another policy tool.
|
|
74
|
+
|
|
66
75
|
## Further reading
|
|
67
76
|
|
|
68
|
-
- [
|
|
69
|
-
- [
|
|
77
|
+
- [GitHub Actions workflow syntax: `jobs.<job_id>.steps`](https://docs.github.com/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idsteps)
|
|
78
|
+
- [GitHub Actions docs: Using workflow run logs](https://docs.github.com/actions/monitoring-and-troubleshooting-workflows/using-workflow-run-logs)
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# require-sarif-upload-security-events-write
|
|
2
|
+
|
|
3
|
+
> **Rule catalog ID:** R102
|
|
4
|
+
|
|
5
|
+
## Targeted pattern scope
|
|
6
|
+
|
|
7
|
+
Jobs that use `github/codeql-action/upload-sarif`.
|
|
8
|
+
|
|
9
|
+
## What this rule reports
|
|
10
|
+
|
|
11
|
+
This rule reports SARIF upload jobs that do not grant `security-events: write`.
|
|
12
|
+
|
|
13
|
+
## Why this rule exists
|
|
14
|
+
|
|
15
|
+
Uploading SARIF to GitHub code scanning requires `security-events: write`. Requiring it explicitly keeps workflow permissions correct and reviewable.
|
|
16
|
+
|
|
17
|
+
## ❌ Incorrect
|
|
18
|
+
|
|
19
|
+
```yaml
|
|
20
|
+
permissions:
|
|
21
|
+
contents: read
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## ✅ Correct
|
|
25
|
+
|
|
26
|
+
```yaml
|
|
27
|
+
permissions:
|
|
28
|
+
contents: read
|
|
29
|
+
security-events: write
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Additional examples
|
|
33
|
+
|
|
34
|
+
This rule applies to any SARIF uploader step using `github/codeql-action/upload-sarif`, not just CodeQL-native workflows.
|
|
35
|
+
|
|
36
|
+
## ESLint flat config example
|
|
37
|
+
|
|
38
|
+
```ts
|
|
39
|
+
import githubActions from "eslint-plugin-github-actions-2";
|
|
40
|
+
|
|
41
|
+
export default [githubActions.configs.codeScanning];
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## When not to use it
|
|
45
|
+
|
|
46
|
+
Disable this rule only if the uploader step is never intended to publish SARIF into GitHub code scanning.
|
|
47
|
+
|
|
48
|
+
## Further reading
|
|
49
|
+
|
|
50
|
+
- [About code scanning with CodeQL](https://docs.github.com/en/code-security/code-scanning/introduction-to-code-scanning/about-code-scanning-with-codeql)
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# require-scorecard-results-format-sarif
|
|
2
|
+
|
|
3
|
+
> **Rule catalog ID:** R103
|
|
4
|
+
|
|
5
|
+
## Targeted pattern scope
|
|
6
|
+
|
|
7
|
+
Workflow steps that use `ossf/scorecard-action`.
|
|
8
|
+
|
|
9
|
+
## What this rule reports
|
|
10
|
+
|
|
11
|
+
This rule reports Scorecard action steps that do not set `results_format: sarif`.
|
|
12
|
+
|
|
13
|
+
## Why this rule exists
|
|
14
|
+
|
|
15
|
+
If a repository wants Scorecard findings to flow into GitHub code scanning, SARIF is the correct results format. Requiring it makes the upload contract explicit.
|
|
16
|
+
|
|
17
|
+
## ❌ Incorrect
|
|
18
|
+
|
|
19
|
+
```yaml
|
|
20
|
+
- uses: ossf/scorecard-action@v2
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## ✅ Correct
|
|
24
|
+
|
|
25
|
+
```yaml
|
|
26
|
+
- uses: ossf/scorecard-action@v2
|
|
27
|
+
with:
|
|
28
|
+
results_format: sarif
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Additional examples
|
|
32
|
+
|
|
33
|
+
This rule pairs naturally with `require-scorecard-upload-sarif-step`, which ensures the generated SARIF is actually published.
|
|
34
|
+
|
|
35
|
+
## ESLint flat config example
|
|
36
|
+
|
|
37
|
+
```ts
|
|
38
|
+
import githubActions from "eslint-plugin-github-actions-2";
|
|
39
|
+
|
|
40
|
+
export default [githubActions.configs.codeScanning];
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## When not to use it
|
|
44
|
+
|
|
45
|
+
Disable this rule if your Scorecard workflow intentionally produces non-SARIF output for another destination.
|
|
46
|
+
|
|
47
|
+
## Further reading
|
|
48
|
+
|
|
49
|
+
- [OpenSSF Scorecard Action](https://github.com/ossf/scorecard-action)
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# require-scorecard-upload-sarif-step
|
|
2
|
+
|
|
3
|
+
> **Rule catalog ID:** R104
|
|
4
|
+
|
|
5
|
+
## Targeted pattern scope
|
|
6
|
+
|
|
7
|
+
Workflows that use `ossf/scorecard-action`.
|
|
8
|
+
|
|
9
|
+
## What this rule reports
|
|
10
|
+
|
|
11
|
+
This rule reports Scorecard workflows that do not upload SARIF results with `github/codeql-action/upload-sarif`.
|
|
12
|
+
|
|
13
|
+
## Why this rule exists
|
|
14
|
+
|
|
15
|
+
Generating SARIF without uploading it leaves the code scanning integration incomplete. Requiring the upload step helps repositories actually surface Scorecard findings in GitHub.
|
|
16
|
+
|
|
17
|
+
## ❌ Incorrect
|
|
18
|
+
|
|
19
|
+
```yaml
|
|
20
|
+
- uses: ossf/scorecard-action@v2
|
|
21
|
+
with:
|
|
22
|
+
results_format: sarif
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## ✅ Correct
|
|
26
|
+
|
|
27
|
+
```yaml
|
|
28
|
+
- uses: ossf/scorecard-action@v2
|
|
29
|
+
with:
|
|
30
|
+
results_format: sarif
|
|
31
|
+
|
|
32
|
+
- uses: github/codeql-action/upload-sarif@v4
|
|
33
|
+
with:
|
|
34
|
+
sarif_file: results.sarif
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Additional examples
|
|
38
|
+
|
|
39
|
+
This rule does not require a specific SARIF filename, only that an upload step exists.
|
|
40
|
+
|
|
41
|
+
## ESLint flat config example
|
|
42
|
+
|
|
43
|
+
```ts
|
|
44
|
+
import githubActions from "eslint-plugin-github-actions-2";
|
|
45
|
+
|
|
46
|
+
export default [githubActions.configs.codeScanning];
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## When not to use it
|
|
50
|
+
|
|
51
|
+
Disable this rule if SARIF upload is handled by a reusable workflow or another job outside the current file.
|
|
52
|
+
|
|
53
|
+
## Further reading
|
|
54
|
+
|
|
55
|
+
- [OpenSSF Scorecard Action](https://github.com/ossf/scorecard-action)
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# require-secret-scan-contents-read
|
|
2
|
+
|
|
3
|
+
> **Rule catalog ID:** R107
|
|
4
|
+
|
|
5
|
+
## Targeted pattern scope
|
|
6
|
+
|
|
7
|
+
Jobs that use supported secret-scanning actions.
|
|
8
|
+
|
|
9
|
+
## What this rule reports
|
|
10
|
+
|
|
11
|
+
This rule reports secret-scanning jobs that do not grant `contents: read`.
|
|
12
|
+
|
|
13
|
+
## Why this rule exists
|
|
14
|
+
|
|
15
|
+
Secret-scanning workflows generally only need read access to repository contents. Making that permission explicit reinforces least privilege.
|
|
16
|
+
|
|
17
|
+
## ❌ Incorrect
|
|
18
|
+
|
|
19
|
+
```yaml
|
|
20
|
+
permissions: {}
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## ✅ Correct
|
|
24
|
+
|
|
25
|
+
```yaml
|
|
26
|
+
permissions:
|
|
27
|
+
contents: read
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Additional examples
|
|
31
|
+
|
|
32
|
+
This rule is intentionally narrow and does not try to prescribe every other permission a secret-scanning workflow may or may not need.
|
|
33
|
+
|
|
34
|
+
## ESLint flat config example
|
|
35
|
+
|
|
36
|
+
```ts
|
|
37
|
+
import githubActions from "eslint-plugin-github-actions-2";
|
|
38
|
+
|
|
39
|
+
export default [githubActions.configs.security];
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## When not to use it
|
|
43
|
+
|
|
44
|
+
Disable this rule if your scanner workflow runs in an unusual environment that truly does not need repository contents access.
|
|
45
|
+
|
|
46
|
+
## Further reading
|
|
47
|
+
|
|
48
|
+
- [GitHub Actions workflow syntax: permissions](https://docs.github.com/actions/reference/workflows-and-actions/workflow-syntax#permissions)
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# require-secret-scan-fetch-depth-zero
|
|
2
|
+
|
|
3
|
+
> **Rule catalog ID:** R105
|
|
4
|
+
|
|
5
|
+
## Targeted pattern scope
|
|
6
|
+
|
|
7
|
+
Jobs that use secret-scanning actions such as Gitleaks or TruffleHog.
|
|
8
|
+
|
|
9
|
+
## What this rule reports
|
|
10
|
+
|
|
11
|
+
This rule reports secret-scanning jobs that do not checkout repository history with `fetch-depth: 0`.
|
|
12
|
+
|
|
13
|
+
## Why this rule exists
|
|
14
|
+
|
|
15
|
+
Secret scanners are most effective when they can inspect full repository history rather than only the latest commit range.
|
|
16
|
+
|
|
17
|
+
## ❌ Incorrect
|
|
18
|
+
|
|
19
|
+
```yaml
|
|
20
|
+
- uses: actions/checkout@v6
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## ✅ Correct
|
|
24
|
+
|
|
25
|
+
```yaml
|
|
26
|
+
- uses: actions/checkout@v6
|
|
27
|
+
with:
|
|
28
|
+
fetch-depth: 0
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Additional examples
|
|
32
|
+
|
|
33
|
+
This rule is job-scoped, so it only checks jobs that actually run the supported secret scanners.
|
|
34
|
+
|
|
35
|
+
## ESLint flat config example
|
|
36
|
+
|
|
37
|
+
```ts
|
|
38
|
+
import githubActions from "eslint-plugin-github-actions-2";
|
|
39
|
+
|
|
40
|
+
export default [githubActions.configs.security];
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## When not to use it
|
|
44
|
+
|
|
45
|
+
Disable this rule if your secret scanning workflow is intentionally limited to shallow history or event-specific diffs.
|
|
46
|
+
|
|
47
|
+
## Further reading
|
|
48
|
+
|
|
49
|
+
- [Gitleaks Action](https://github.com/gitleaks/gitleaks-action)
|
|
50
|
+
- [TruffleHog Action](https://github.com/trufflesecurity/trufflehog)
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# require-secret-scan-schedule
|
|
2
|
+
|
|
3
|
+
> **Rule catalog ID:** R106
|
|
4
|
+
|
|
5
|
+
## Targeted pattern scope
|
|
6
|
+
|
|
7
|
+
Workflows that use supported secret-scanning actions.
|
|
8
|
+
|
|
9
|
+
## What this rule reports
|
|
10
|
+
|
|
11
|
+
This rule reports secret-scanning workflows that do not define a `schedule` trigger.
|
|
12
|
+
|
|
13
|
+
## Why this rule exists
|
|
14
|
+
|
|
15
|
+
Scheduled secret scanning catches leaks even when no recent pull request or push event happens on the affected branch.
|
|
16
|
+
|
|
17
|
+
## ❌ Incorrect
|
|
18
|
+
|
|
19
|
+
```yaml
|
|
20
|
+
on: [pull_request]
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## ✅ Correct
|
|
24
|
+
|
|
25
|
+
```yaml
|
|
26
|
+
on:
|
|
27
|
+
pull_request:
|
|
28
|
+
schedule:
|
|
29
|
+
- cron: "12 4 * * *"
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Additional examples
|
|
33
|
+
|
|
34
|
+
This rule does not enforce a particular cron expression, only that periodic scanning exists.
|
|
35
|
+
|
|
36
|
+
## ESLint flat config example
|
|
37
|
+
|
|
38
|
+
```ts
|
|
39
|
+
import githubActions from "eslint-plugin-github-actions-2";
|
|
40
|
+
|
|
41
|
+
export default [githubActions.configs.security];
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## When not to use it
|
|
45
|
+
|
|
46
|
+
Disable this rule if scheduled secret scanning is handled outside GitHub Actions.
|
|
47
|
+
|
|
48
|
+
## Further reading
|
|
49
|
+
|
|
50
|
+
- [GitHub Actions workflow syntax: schedule](https://docs.github.com/actions/reference/workflows-and-actions/workflow-syntax#onschedule)
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# require-trufflehog-verified-results-mode
|
|
2
|
+
|
|
3
|
+
> **Rule catalog ID:** R108
|
|
4
|
+
|
|
5
|
+
## Targeted pattern scope
|
|
6
|
+
|
|
7
|
+
Workflow steps that use the TruffleHog GitHub Action.
|
|
8
|
+
|
|
9
|
+
## What this rule reports
|
|
10
|
+
|
|
11
|
+
This rule reports TruffleHog steps that do not configure `extra_args` to include `--results=verified`.
|
|
12
|
+
|
|
13
|
+
## Why this rule exists
|
|
14
|
+
|
|
15
|
+
Verified-results mode reduces noise by failing only on findings that the scanner can verify more confidently.
|
|
16
|
+
|
|
17
|
+
## ❌ Incorrect
|
|
18
|
+
|
|
19
|
+
```yaml
|
|
20
|
+
- uses: trufflesecurity/trufflehog@v3
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## ✅ Correct
|
|
24
|
+
|
|
25
|
+
```yaml
|
|
26
|
+
- uses: trufflesecurity/trufflehog@v3
|
|
27
|
+
with:
|
|
28
|
+
extra_args: --results=verified
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Additional examples
|
|
32
|
+
|
|
33
|
+
This rule still allows additional TruffleHog flags as long as the verified-results mode is present.
|
|
34
|
+
|
|
35
|
+
## ESLint flat config example
|
|
36
|
+
|
|
37
|
+
```ts
|
|
38
|
+
import githubActions from "eslint-plugin-github-actions-2";
|
|
39
|
+
|
|
40
|
+
export default [githubActions.configs.security];
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## When not to use it
|
|
44
|
+
|
|
45
|
+
Disable this rule if your repository intentionally wants broader TruffleHog results despite the extra noise.
|
|
46
|
+
|
|
47
|
+
## Further reading
|
|
48
|
+
|
|
49
|
+
- [TruffleHog Action](https://github.com/trufflesecurity/trufflehog)
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://www.schemastore.org/package.json",
|
|
3
3
|
"name": "eslint-plugin-github-actions-2",
|
|
4
|
-
"version": "1.0.
|
|
4
|
+
"version": "1.0.3",
|
|
5
5
|
"private": false,
|
|
6
6
|
"description": "ESLint plugin for GitHub Actions workflow quality, reliability, and security rules.",
|
|
7
7
|
"keywords": [
|
|
@@ -134,9 +134,6 @@
|
|
|
134
134
|
"update-deps": "npx ncu -i --install never && npm run sync:peer-eslint-range && npm install --force",
|
|
135
135
|
"verify:readme-rules-table": "npm run build && npm run sync:readme-rules-table"
|
|
136
136
|
},
|
|
137
|
-
"overrides": {
|
|
138
|
-
"jsonc-eslint-parser": "$jsonc-eslint-parser"
|
|
139
|
-
},
|
|
140
137
|
"dependencies": {
|
|
141
138
|
"yaml-eslint-parser": "^2.0.0"
|
|
142
139
|
},
|
|
@@ -145,34 +142,34 @@
|
|
|
145
142
|
"@csstools/stylelint-formatter-github": "^2.0.0",
|
|
146
143
|
"@docusaurus/eslint-plugin": "^3.9.2",
|
|
147
144
|
"@double-great/remark-lint-alt-text": "^1.1.1",
|
|
148
|
-
"@double-great/stylelint-a11y": "^3.4.
|
|
145
|
+
"@double-great/stylelint-a11y": "^3.4.9",
|
|
149
146
|
"@eslint-community/eslint-plugin-eslint-comments": "^4.7.1",
|
|
150
|
-
"@eslint-react/eslint-plugin": "^
|
|
151
|
-
"@eslint/compat": "^2.0.
|
|
152
|
-
"@eslint/config-helpers": "^0.5.
|
|
147
|
+
"@eslint-react/eslint-plugin": "^4.2.3",
|
|
148
|
+
"@eslint/compat": "^2.0.4",
|
|
149
|
+
"@eslint/config-helpers": "^0.5.4",
|
|
153
150
|
"@eslint/config-inspector": "^1.5.0",
|
|
154
|
-
"@eslint/css": "^1.
|
|
151
|
+
"@eslint/css": "^1.1.0",
|
|
155
152
|
"@eslint/js": "^10.0.1",
|
|
156
153
|
"@eslint/json": "^1.2.0",
|
|
157
|
-
"@eslint/markdown": "^
|
|
154
|
+
"@eslint/markdown": "^8.0.1",
|
|
158
155
|
"@html-eslint/eslint-plugin": "^0.58.1",
|
|
159
156
|
"@html-eslint/parser": "^0.58.1",
|
|
160
157
|
"@microsoft/eslint-plugin-sdl": "^1.1.0",
|
|
161
158
|
"@microsoft/tsdoc-config": "^0.18.1",
|
|
162
|
-
"@secretlint/secretlint-rule-anthropic": "^11.
|
|
163
|
-
"@secretlint/secretlint-rule-aws": "^11.
|
|
164
|
-
"@secretlint/secretlint-rule-database-connection-string": "^11.
|
|
165
|
-
"@secretlint/secretlint-rule-gcp": "^11.
|
|
166
|
-
"@secretlint/secretlint-rule-github": "^11.
|
|
167
|
-
"@secretlint/secretlint-rule-no-dotenv": "^11.
|
|
168
|
-
"@secretlint/secretlint-rule-no-homedir": "^11.
|
|
169
|
-
"@secretlint/secretlint-rule-npm": "^11.
|
|
170
|
-
"@secretlint/secretlint-rule-openai": "^11.
|
|
171
|
-
"@secretlint/secretlint-rule-pattern": "^11.
|
|
172
|
-
"@secretlint/secretlint-rule-preset-recommend": "^11.4.
|
|
173
|
-
"@secretlint/secretlint-rule-privatekey": "^11.
|
|
174
|
-
"@secretlint/secretlint-rule-secp256k1-privatekey": "^11.
|
|
175
|
-
"@secretlint/types": "^11.
|
|
159
|
+
"@secretlint/secretlint-rule-anthropic": "^11.5.0",
|
|
160
|
+
"@secretlint/secretlint-rule-aws": "^11.5.0",
|
|
161
|
+
"@secretlint/secretlint-rule-database-connection-string": "^11.5.0",
|
|
162
|
+
"@secretlint/secretlint-rule-gcp": "^11.5.0",
|
|
163
|
+
"@secretlint/secretlint-rule-github": "^11.5.0",
|
|
164
|
+
"@secretlint/secretlint-rule-no-dotenv": "^11.5.0",
|
|
165
|
+
"@secretlint/secretlint-rule-no-homedir": "^11.5.0",
|
|
166
|
+
"@secretlint/secretlint-rule-npm": "^11.5.0",
|
|
167
|
+
"@secretlint/secretlint-rule-openai": "^11.5.0",
|
|
168
|
+
"@secretlint/secretlint-rule-pattern": "^11.5.0",
|
|
169
|
+
"@secretlint/secretlint-rule-preset-recommend": "^11.4.1",
|
|
170
|
+
"@secretlint/secretlint-rule-privatekey": "^11.5.0",
|
|
171
|
+
"@secretlint/secretlint-rule-secp256k1-privatekey": "^11.5.0",
|
|
172
|
+
"@secretlint/types": "^11.5.0",
|
|
176
173
|
"@softonus/prettier-plugin-duplicate-remover": "^1.1.2",
|
|
177
174
|
"@stryker-ignorer/console-all": "^0.3.2",
|
|
178
175
|
"@stryker-mutator/core": "^9.6.0",
|
|
@@ -181,12 +178,12 @@
|
|
|
181
178
|
"@stylelint-types/stylelint-order": "^7.0.1",
|
|
182
179
|
"@stylelint-types/stylelint-stylistic": "^5.0.0",
|
|
183
180
|
"@stylistic/eslint-plugin": "^5.10.0",
|
|
184
|
-
"@stylistic/stylelint-plugin": "^5.0
|
|
181
|
+
"@stylistic/stylelint-plugin": "^5.1.0",
|
|
185
182
|
"@types/eslint-plugin-jsx-a11y": "^6.10.1",
|
|
186
183
|
"@types/eslint-plugin-security": "^3.0.1",
|
|
187
184
|
"@types/htmlhint": "^1.1.5",
|
|
188
185
|
"@types/madge": "^5.0.3",
|
|
189
|
-
"@types/node": "^25.5.
|
|
186
|
+
"@types/node": "^25.5.2",
|
|
190
187
|
"@types/postcss-clamp": "^4.1.3",
|
|
191
188
|
"@types/postcss-flexbugs-fixes": "^5.0.3",
|
|
192
189
|
"@types/postcss-html": "^1.5.3",
|
|
@@ -195,12 +192,12 @@
|
|
|
195
192
|
"@types/postcss-normalize": "^9.0.4",
|
|
196
193
|
"@types/postcss-reporter": "^7.0.5",
|
|
197
194
|
"@types/sloc": "^0.2.3",
|
|
198
|
-
"@typescript-eslint/eslint-plugin": "^8.
|
|
199
|
-
"@typescript-eslint/parser": "^8.
|
|
200
|
-
"@typescript-eslint/rule-tester": "^8.
|
|
201
|
-
"@vitest/coverage-v8": "^4.1.
|
|
202
|
-
"@vitest/eslint-plugin": "^1.6.
|
|
203
|
-
"@vitest/ui": "^4.1.
|
|
195
|
+
"@typescript-eslint/eslint-plugin": "^8.58.0",
|
|
196
|
+
"@typescript-eslint/parser": "^8.58.0",
|
|
197
|
+
"@typescript-eslint/rule-tester": "^8.58.0",
|
|
198
|
+
"@vitest/coverage-v8": "^4.1.2",
|
|
199
|
+
"@vitest/eslint-plugin": "^1.6.14",
|
|
200
|
+
"@vitest/ui": "^4.1.2",
|
|
204
201
|
"actionlint": "^2.0.6",
|
|
205
202
|
"all-contributors-cli": "^6.26.1",
|
|
206
203
|
"cognitive-complexity-ts": "^0.8.1",
|
|
@@ -209,7 +206,7 @@
|
|
|
209
206
|
"cross-env": "^10.1.0",
|
|
210
207
|
"depcheck": "^1.4.7",
|
|
211
208
|
"detect-secrets": "^1.0.6",
|
|
212
|
-
"eslint": "^10.
|
|
209
|
+
"eslint": "^10.2.0",
|
|
213
210
|
"eslint-config-flat-gitignore": "^2.3.0",
|
|
214
211
|
"eslint-config-prettier": "^10.1.8",
|
|
215
212
|
"eslint-formatter-unix": "^9.0.1",
|
|
@@ -223,21 +220,19 @@
|
|
|
223
220
|
"eslint-plugin-depend": "^1.5.0",
|
|
224
221
|
"eslint-plugin-eslint-plugin": "^7.3.2",
|
|
225
222
|
"eslint-plugin-etc": "^2.0.3",
|
|
226
|
-
"eslint-plugin-etc-misc": "^1.0.
|
|
227
|
-
"eslint-plugin-file-progress-2": "^3.4.
|
|
223
|
+
"eslint-plugin-etc-misc": "^1.0.5",
|
|
224
|
+
"eslint-plugin-file-progress-2": "^3.4.4",
|
|
228
225
|
"eslint-plugin-html": "^8.1.4",
|
|
229
226
|
"eslint-plugin-import-x": "^4.16.2",
|
|
230
|
-
"eslint-plugin-jsdoc": "^62.
|
|
227
|
+
"eslint-plugin-jsdoc": "^62.9.0",
|
|
231
228
|
"eslint-plugin-jsonc": "^3.1.2",
|
|
232
229
|
"eslint-plugin-jsx-a11y": "^6.10.2",
|
|
233
230
|
"eslint-plugin-listeners": "^1.5.1",
|
|
234
|
-
"eslint-plugin-loadable-imports": "^1.0.1",
|
|
235
231
|
"eslint-plugin-math": "^0.13.1",
|
|
236
232
|
"eslint-plugin-module-interop": "^0.3.1",
|
|
237
233
|
"eslint-plugin-n": "^17.24.0",
|
|
238
234
|
"eslint-plugin-nitpick": "^0.12.0",
|
|
239
235
|
"eslint-plugin-no-barrel-files": "^1.2.2",
|
|
240
|
-
"eslint-plugin-no-explicit-type-exports": "^0.12.1",
|
|
241
236
|
"eslint-plugin-no-function-declare-after-return": "^1.1.0",
|
|
242
237
|
"eslint-plugin-no-lookahead-lookbehind-regexp": "^0.4.0",
|
|
243
238
|
"eslint-plugin-no-only-tests": "^3.3.0",
|
|
@@ -245,8 +240,8 @@
|
|
|
245
240
|
"eslint-plugin-no-unsanitized": "^4.1.5",
|
|
246
241
|
"eslint-plugin-no-use-extend-native": "^0.7.2",
|
|
247
242
|
"eslint-plugin-node-dependencies": "^2.2.0",
|
|
248
|
-
"eslint-plugin-package-json": "^0.91.
|
|
249
|
-
"eslint-plugin-perfectionist": "^5.
|
|
243
|
+
"eslint-plugin-package-json": "^0.91.1",
|
|
244
|
+
"eslint-plugin-perfectionist": "^5.8.0",
|
|
250
245
|
"eslint-plugin-prefer-arrow": "^1.2.3",
|
|
251
246
|
"eslint-plugin-prettier": "^5.5.5",
|
|
252
247
|
"eslint-plugin-promise": "^7.2.1",
|
|
@@ -255,14 +250,12 @@
|
|
|
255
250
|
"eslint-plugin-require-jsdoc": "^1.0.4",
|
|
256
251
|
"eslint-plugin-security": "^4.0.0",
|
|
257
252
|
"eslint-plugin-sonarjs": "^4.0.2",
|
|
258
|
-
"eslint-plugin-
|
|
259
|
-
"eslint-plugin-testing-library": "^7.16.1",
|
|
253
|
+
"eslint-plugin-testing-library": "^7.16.2",
|
|
260
254
|
"eslint-plugin-toml": "^1.3.1",
|
|
261
|
-
"eslint-plugin-total-functions": "^7.1.0",
|
|
262
255
|
"eslint-plugin-tsdoc": "^0.5.2",
|
|
263
|
-
"eslint-plugin-tsdoc-require-2": "^1.0.
|
|
256
|
+
"eslint-plugin-tsdoc-require-2": "^1.0.7",
|
|
264
257
|
"eslint-plugin-undefined-css-classes": "^0.1.5",
|
|
265
|
-
"eslint-plugin-unicorn": "^
|
|
258
|
+
"eslint-plugin-unicorn": "^64.0.0",
|
|
266
259
|
"eslint-plugin-unused-imports": "^4.4.1",
|
|
267
260
|
"eslint-plugin-write-good-comments": "^0.2.0",
|
|
268
261
|
"eslint-plugin-yml": "^3.3.1",
|
|
@@ -273,12 +266,12 @@
|
|
|
273
266
|
"htmlhint": "^1.9.2",
|
|
274
267
|
"jscpd": "^4.0.8",
|
|
275
268
|
"jsonc-eslint-parser": "^3.1.0",
|
|
276
|
-
"knip": "^6.0
|
|
269
|
+
"knip": "^6.3.0",
|
|
277
270
|
"leasot": "^14.4.0",
|
|
278
271
|
"madge": "^8.0.0",
|
|
279
272
|
"markdown-link-check": "^3.14.2",
|
|
280
|
-
"npm-check-updates": "^
|
|
281
|
-
"npm-package-json-lint": "^
|
|
273
|
+
"npm-check-updates": "^20.0.0",
|
|
274
|
+
"npm-package-json-lint": "^10.0.0",
|
|
282
275
|
"picocolors": "^1.1.1",
|
|
283
276
|
"postcss": "^8.5.8",
|
|
284
277
|
"postcss-assets": "^6.0.0",
|
|
@@ -302,7 +295,7 @@
|
|
|
302
295
|
"prettier-plugin-interpolated-html-tags": "^2.0.1",
|
|
303
296
|
"prettier-plugin-jsdoc": "^1.8.0",
|
|
304
297
|
"prettier-plugin-jsdoc-type": "^0.2.0",
|
|
305
|
-
"prettier-plugin-merge": "^0.10.
|
|
298
|
+
"prettier-plugin-merge": "^0.10.1",
|
|
306
299
|
"prettier-plugin-multiline-arrays": "^4.1.5",
|
|
307
300
|
"prettier-plugin-packagejson": "^3.0.2",
|
|
308
301
|
"prettier-plugin-properties": "^0.3.1",
|
|
@@ -417,16 +410,16 @@
|
|
|
417
410
|
"remark-validate-links": "^13.1.0",
|
|
418
411
|
"remark-wiki-link": "^2.0.1",
|
|
419
412
|
"rimraf": "^6.1.3",
|
|
420
|
-
"secretlint": "^11.4.
|
|
413
|
+
"secretlint": "^11.4.1",
|
|
421
414
|
"sloc": "^0.3.2",
|
|
422
415
|
"sort-package-json": "^3.6.1",
|
|
423
|
-
"stylelint": "^17.
|
|
416
|
+
"stylelint": "^17.6.0",
|
|
424
417
|
"stylelint-actions-formatters": "^16.3.1",
|
|
425
418
|
"stylelint-checkstyle-formatter": "^0.1.2",
|
|
426
419
|
"stylelint-codeframe-formatter": "^1.2.0",
|
|
427
420
|
"stylelint-config-alphabetical-order": "^2.0.0",
|
|
428
421
|
"stylelint-config-idiomatic-order": "^10.0.0",
|
|
429
|
-
"stylelint-config-inspector": "^2.0.
|
|
422
|
+
"stylelint-config-inspector": "^2.0.3",
|
|
430
423
|
"stylelint-config-recess-order": "^7.7.0",
|
|
431
424
|
"stylelint-config-recommended": "^18.0.0",
|
|
432
425
|
"stylelint-config-sass-guidelines": "^13.0.0",
|
|
@@ -449,8 +442,8 @@
|
|
|
449
442
|
"stylelint-no-unresolved-module": "^2.5.2",
|
|
450
443
|
"stylelint-no-unsupported-browser-features": "^8.1.1",
|
|
451
444
|
"stylelint-order": "^8.1.1",
|
|
452
|
-
"stylelint-plugin-defensive-css": "^2.8.
|
|
453
|
-
"stylelint-plugin-logical-css": "^2.0
|
|
445
|
+
"stylelint-plugin-defensive-css": "^2.8.1",
|
|
446
|
+
"stylelint-plugin-logical-css": "^2.1.0",
|
|
454
447
|
"stylelint-plugin-use-baseline": "^1.4.1",
|
|
455
448
|
"stylelint-prettier": "^5.0.3",
|
|
456
449
|
"stylelint-react-native": "^2.7.0",
|
|
@@ -462,18 +455,18 @@
|
|
|
462
455
|
"ts-unused-exports": "^11.0.1",
|
|
463
456
|
"typedoc": "^0.28.18",
|
|
464
457
|
"typescript": "^6.0.2",
|
|
465
|
-
"typescript-eslint": "^8.
|
|
458
|
+
"typescript-eslint": "^8.58.0",
|
|
466
459
|
"typesync": "^0.14.3",
|
|
467
460
|
"vfile": "^6.0.3",
|
|
468
|
-
"vite": "^8.0.
|
|
461
|
+
"vite": "^8.0.3",
|
|
469
462
|
"vite-tsconfig-paths": "^6.1.1",
|
|
470
|
-
"vitest": "^4.1.
|
|
463
|
+
"vitest": "^4.1.2",
|
|
471
464
|
"yamllint-js": "^0.2.4"
|
|
472
465
|
},
|
|
473
466
|
"peerDependencies": {
|
|
474
|
-
"eslint": "^9.0.0 || ^10.
|
|
467
|
+
"eslint": "^9.0.0 || ^10.2.0"
|
|
475
468
|
},
|
|
476
|
-
"packageManager": "npm@11.12.
|
|
469
|
+
"packageManager": "npm@11.12.1",
|
|
477
470
|
"engines": {
|
|
478
471
|
"node": ">=22.0.0"
|
|
479
472
|
},
|