@tarsilla/commit-wizard 1.0.5 โ 1.1.0
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/lib/commitizen/index.mjs.map +1 -1
- package/lib/commitlint/index.mjs.map +1 -1
- package/package.json +1 -1
- package/src/commitizen/index.ts +1 -1
- package/src/commitlint/index.ts +1 -1
- package/src/github-actions/code-analysis/base/codeql/action.yml +28 -0
- package/src/github-actions/code-analysis/base/owasp/action.yml +30 -0
- package/src/github-actions/code-analysis/base/owasp/owasp/Dockerfile +5 -0
- package/src/github-actions/code-analysis/base/owasp/owasp/action.yml +23 -0
- package/src/github-actions/code-analysis/base/owasp/owasp/entrypoint.sh +19 -0
- package/src/github-actions/code-analysis/base/snyk/code-test/node/action.yml +15 -0
- package/src/github-actions/code-analysis/base/snyk/test/node/action.yml +24 -0
- package/src/github-actions/code-analysis/node/codeql/action.yml +19 -0
- package/src/github-actions/code-analysis/node/owasp/action.yml +24 -0
- package/src/github-actions/code-analysis/node/snyk/code-test/action.yml +20 -0
- package/src/github-actions/code-analysis/node/snyk/test/action.yml +21 -0
- package/src/github-actions/deploy/github-pages/base/action.yml +34 -0
- package/src/github-actions/deploy/github-pages/storybook/action.yml +26 -0
- package/src/github-actions/publish/npm/action.yml +25 -0
- package/src/semantic-release/npm-publish.yml +0 -42
- /package/src/{configLoader โ config-loader}/configLoader.ts +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../src/commitizen/prompter.ts","../../src/
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../src/commitizen/prompter.ts","../../src/config-loader/configLoader.ts","../../src/commitizen/index.ts"],"sourcesContent":["import { Commitizen, Prompter, Question } from 'commitizen';\n\nimport CommitWizardOptions from '../types/CommitWizardOptions.js';\n\nexport type CommitAnswers = {\n type: string;\n scope: string;\n subject: string;\n confirmCommit: string;\n};\n\nfunction getCommitMessage({ answers }: { answers: CommitAnswers }) {\n const scopeText = answers.scope ? `(${answers.scope})` : '';\n if (answers.type === 'break') {\n const message = `feat${scopeText}!: ${answers.subject}`;\n return message;\n }\n const message = `${answers.type}${scopeText}: ${answers.subject}`;\n return message;\n}\n\nfunction getMaxSubject({ answers, maxLineLength }: { answers: CommitAnswers; maxLineLength: number }) {\n const scopeText = answers.scope ? `(${answers.scope})` : '';\n // +2 accounts for \": \" after type and scope.\n const prefixLength = (answers.type ? answers.type.length : 0) + scopeText.length + 2;\n const maxSubject = maxLineLength - prefixLength;\n return maxSubject;\n}\n\nfunction prompter({ maxLineLength }: CommitWizardOptions): Prompter {\n return {\n prompter: function (cz: Commitizen, commit: (message: string) => void) {\n const questions: Question<CommitAnswers> = [\n {\n type: 'list',\n name: 'type',\n message: \"Select the type of change that you're committing:\",\n choices: [\n { value: 'feat', name: '๐ feat: A new feature' },\n { value: 'fix', name: '๐ fix: A bug fix' },\n { value: 'docs', name: '๐ docs: Documentation only changes' },\n {\n value: 'style',\n name: '๐จ style: Changes that do not affect the meaning of the code (white-space, formatting, etc)',\n },\n { value: 'refactor', name: '๐จ refactor: A code change that neither fixes a bug nor adds a feature' },\n { value: 'perf', name: 'โก๏ธ perf: A code change that improves performance' },\n { value: 'test', name: '๐ test: Adding missing tests or correcting existing tests' },\n { value: 'build', name: '๐ฆ build: Changes that affect the build system or external dependencies' },\n { value: 'ci', name: '๐ค ci: Changes to our CI configuration files and scripts' },\n { value: 'chore', name: \"๐งน chore: Other changes that don't modify src or test files\" },\n { value: 'break', name: '๐ฅ break: A change that breaks existing functionality' },\n { value: 'revert', name: 'โช revert: Reverts a previous commit' },\n ],\n },\n {\n type: 'input',\n name: 'scope',\n message: 'What is the scope of this change (e.g. component or file name): (press enter to skip)',\n },\n {\n type: 'input',\n name: 'subject',\n message: (answers) => {\n const maxSubject = getMaxSubject({ answers, maxLineLength });\n return `Write a short, imperative tense description of the change (max ${maxSubject} chars):`;\n },\n validate: (input, answers) => {\n if (!input.trim()) {\n // \\u001b[31m is red\n return `\\u001b[31mSubject is required\\u001b[39m`;\n }\n const maxSubject = getMaxSubject({ answers: answers!, maxLineLength });\n if (input.length <= maxSubject) {\n return true;\n }\n // \\u001b[31m is red\n return `\\u001b[31mSubject length must be less than or equal to ${maxSubject} characters. Current length is ${input.length} characters.\\u001b[39m`;\n },\n transformer: (input, answers) => {\n const maxSubject = getMaxSubject({ answers, maxLineLength });\n const remaining = maxSubject - input.length;\n if (remaining < 0) {\n // Red if remaining < 0: \\u001b[31m is red, \\u001b[39m resets the color.\n return `\\n\\u001b[31m(${input.length}) ${input}\\u001b[39m`;\n }\n // Green if valid: \\u001b[32m is green, \\u001b[39m resets the color.\n return `\\n\\u001b[32m(${input.length}) ${input}\\u001b[39m`;\n },\n },\n {\n type: 'list',\n name: 'confirmCommit',\n choices: [\n { value: 'yes', name: 'Yes' },\n { value: 'no', name: 'Abort commit' },\n ],\n default: 0,\n message(answers) {\n const SEP = '--------------------------------------------------------';\n const message = getCommitMessage({ answers });\n console.info(`\\n${SEP}\\n\\n${message}\\n\\n${SEP}\\n`);\n return 'Are you sure you want to proceed with the commit above?';\n },\n },\n ];\n\n cz.prompt(questions).then((answers) => {\n if (answers.confirmCommit === 'no') {\n console.info('Commit aborted.');\n } else {\n const message = getCommitMessage({ answers });\n commit(message);\n }\n });\n },\n };\n}\n\nexport default prompter;\n","import fs from 'fs';\nimport path from 'path';\n\nimport CommitWizardOptions from '../types/CommitWizardOptions.js';\n\nconst config: CommitWizardOptions = {\n maxLineLength: 120,\n};\nconst file = 'commit-wizard.config.json';\n\nfunction configLoader(): CommitWizardOptions {\n const configPath = path.resolve(process.cwd(), file);\n\n if (!fs.existsSync(configPath)) {\n return config;\n }\n\n const loadedConfig = require(configPath);\n return { ...config, ...loadedConfig };\n}\n\nexport default configLoader;\n","import commitizenPrompter from './prompter.js';\nimport configLoader from '../config-loader/configLoader.js';\nimport CommitWizardOptions from '../types/CommitWizardOptions.js';\n\nconst loadedConfig: CommitWizardOptions = configLoader();\nconst prompter = commitizenPrompter(loadedConfig);\n\nexport default prompter;\n"],"names":["getCommitMessage","answers","scopeText","scope","type","subject","getMaxSubject","maxLineLength","length","config","prompter","cz","commit","questions","name","message","choices","value","validate","input","trim","maxSubject","transformer","default","SEP","console","info","prompt","then","confirmCommit","commitizenPrompter","configPath","path","resolve","process","cwd","fs","existsSync","loadedConfig","require","configLoader"],"mappings":"sCAWA,SAASA,GAAiBC,QAAEA,IAC1B,MAAMC,EAAYD,EAAQE,MAAQ,IAAIF,EAAQE,SAAW,GACzD,GAAqB,UAAjBF,EAAQG,KAAkB,CAE5B,MADgB,OAAOF,OAAeD,EAAQI,SAEhD,CAEA,MADgB,GAAGJ,EAAQG,OAAOF,MAAcD,EAAQI,SAE1D,CAEA,SAASC,GAAcL,QAAEA,EAAOM,cAAEA,IAChC,MAAML,EAAYD,EAAQE,MAAQ,IAAIF,EAAQE,SAAW,GAIzD,OADmBI,IADGN,EAAQG,KAAOH,EAAQG,KAAKI,OAAS,GAAKN,EAAUM,OAAS,EAGrF,CCtBA,MAAMC,EAA8B,CAClCF,cAAe,KCFjB,MACMG,EFwBN,UAAkBH,cAAEA,IAClB,MAAO,CACLG,SAAU,SAAUC,EAAgBC,GAClC,MAAMC,EAAqC,CACzC,CACET,KAAM,OACNU,KAAM,OACNC,QAAS,oDACTC,QAAS,CACP,CAAEC,MAAO,OAAQH,KAAM,8BACvB,CAAEG,MAAO,MAAOH,KAAM,0BACtB,CAAEG,MAAO,OAAQH,KAAM,2CACvB,CACEG,MAAO,QACPH,KAAM,kGAER,CAAEG,MAAO,WAAYH,KAAM,0EAC3B,CAAEG,MAAO,OAAQH,KAAM,wDACvB,CAAEG,MAAO,OAAQH,KAAM,kEACvB,CAAEG,MAAO,QAASH,KAAM,8EACxB,CAAEG,MAAO,KAAMH,KAAM,kEACrB,CAAEG,MAAO,QAASH,KAAM,kEACxB,CAAEG,MAAO,QAASH,KAAM,4DACxB,CAAEG,MAAO,SAAUH,KAAM,2CAG7B,CACEV,KAAM,QACNU,KAAM,QACNC,QAAS,yFAEX,CACEX,KAAM,QACNU,KAAM,UACNC,QAAUd,GAED,kEADYK,EAAc,CAAEL,UAASM,4BAG9CW,SAAU,CAACC,EAAOlB,KAChB,IAAKkB,EAAMC,OAET,MAAO,gCAET,MAAMC,EAAaf,EAAc,CAAEL,QAASA,EAAUM,kBACtD,OAAIY,EAAMX,QAAUa,GAIb,qDAA0DA,mCAA4CF,EAAMX,yBAA8B,EAEnJc,YAAa,CAACH,EAAOlB,IACAK,EAAc,CAAEL,UAASM,kBACbY,EAAMX,OACrB,EAEP,WAAgBW,EAAMX,WAAWW,SAGnC,WAAgBA,EAAMX,WAAWW,UAG5C,CACEf,KAAM,OACNU,KAAM,gBACNE,QAAS,CACP,CAAEC,MAAO,MAAOH,KAAM,OACtB,CAAEG,MAAO,KAAMH,KAAM,iBAEvBS,QAAS,EACTR,OAAAA,CAAQd,GACN,MAAMuB,EAAM,2DACNT,EAAUf,EAAiB,CAAEC,YAEnC,OADAwB,QAAQC,KAAK,KAAKF,QAAUT,QAAcS,OACnC,yDACT,IAIJb,EAAGgB,OAAOd,GAAWe,MAAM3B,IACzB,GAA8B,OAA1BA,EAAQ4B,cACVJ,QAAQC,KAAK,uBACR,CACL,MAAMX,EAAUf,EAAiB,CAAEC,YACnCW,EAAOG,EACT,IAEJ,EAEJ,CEhHiBe,CDKjB,WACE,MAAMC,EAAaC,EAAKC,QAAQC,QAAQC,MAH7B,6BAKX,IAAKC,EAAGC,WAAWN,GACjB,OAAOtB,EAGT,MAAM6B,EAAeC,QAAQR,GAC7B,MAAO,IAAKtB,KAAW6B,EACzB,CCf0CE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../src/
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../src/config-loader/configLoader.ts","../../src/commitlint/index.ts","../../src/commitlint/userConfig.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\n\nimport CommitWizardOptions from '../types/CommitWizardOptions.js';\n\nconst config: CommitWizardOptions = {\n maxLineLength: 120,\n};\nconst file = 'commit-wizard.config.json';\n\nfunction configLoader(): CommitWizardOptions {\n const configPath = path.resolve(process.cwd(), file);\n\n if (!fs.existsSync(configPath)) {\n return config;\n }\n\n const loadedConfig = require(configPath);\n return { ...config, ...loadedConfig };\n}\n\nexport default configLoader;\n","import { UserConfig } from '@commitlint/types';\n\nimport commitlintUserConfig from './userConfig.js';\nimport configLoader from '../config-loader/configLoader.js';\nimport CommitWizardOptions from '../types/CommitWizardOptions.js';\n\nconst loadedConfig: CommitWizardOptions = configLoader();\nconst userConfig: UserConfig = commitlintUserConfig(loadedConfig);\n\nexport default userConfig;\n","import { UserConfig } from '@commitlint/types';\n\nimport CommitWizardOptions from '../types/CommitWizardOptions.js';\n\nfunction userConfig({ maxLineLength }: CommitWizardOptions): UserConfig {\n return {\n extends: ['@commitlint/config-conventional'],\n parserPreset: {\n parserOpts: {\n headerPattern: /^(?<type>\\w+)(?<exclamation1>!?)(?:\\((?<scope>[^)]+)\\)(?<exclamation2>!?))?: (?<subject>.+)$/,\n headerCorrespondence: ['type', 'exclamation1', 'scope', 'exclamation2', 'subject'],\n },\n },\n rules: {\n 'header-max-length': [2, 'always', maxLineLength] as [number, 'always' | 'never', number],\n },\n };\n}\n\nexport default userConfig;\n"],"names":["config","maxLineLength","userConfig","extends","parserPreset","parserOpts","headerPattern","RegExp","headerCorrespondence","rules","commitlintUserConfig","configPath","path","resolve","process","cwd","fs","existsSync","loadedConfig","require","configLoader"],"mappings":"sCAKA,MAAMA,EAA8B,CAClCC,cAAe,KCAjB,MACMC,ECHN,UAAoBD,cAAEA,IACpB,MAAO,CACLE,QAAS,CAAC,mCACVC,aAAc,CACZC,WAAY,CACVC,cAAeC,OAAA,mGACfC,qBAAsB,CAAC,OAAQ,eAAgB,QAAS,eAAgB,aAG5EC,MAAO,CACL,oBAAqB,CAAC,EAAG,SAAUR,IAGzC,CDV+BS,CDG/B,WACE,MAAMC,EAAaC,EAAKC,QAAQC,QAAQC,MAH7B,6BAKX,IAAKC,EAAGC,WAAWN,GACjB,OAAOX,EAGT,MAAMkB,EAAeC,QAAQR,GAC7B,MAAO,IAAKX,KAAWkB,EACzB,CCb0CE"}
|
package/package.json
CHANGED
package/src/commitizen/index.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import commitizenPrompter from './prompter.js';
|
|
2
|
-
import configLoader from '../
|
|
2
|
+
import configLoader from '../config-loader/configLoader.js';
|
|
3
3
|
import CommitWizardOptions from '../types/CommitWizardOptions.js';
|
|
4
4
|
|
|
5
5
|
const loadedConfig: CommitWizardOptions = configLoader();
|
package/src/commitlint/index.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { UserConfig } from '@commitlint/types';
|
|
2
2
|
|
|
3
3
|
import commitlintUserConfig from './userConfig.js';
|
|
4
|
-
import configLoader from '../
|
|
4
|
+
import configLoader from '../config-loader/configLoader.js';
|
|
5
5
|
import CommitWizardOptions from '../types/CommitWizardOptions.js';
|
|
6
6
|
|
|
7
7
|
const loadedConfig: CommitWizardOptions = configLoader();
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
name: CodeQL Analyze
|
|
2
|
+
description: Github action to execute CodeQL analyze as part of a github workflow
|
|
3
|
+
inputs:
|
|
4
|
+
language:
|
|
5
|
+
required: true
|
|
6
|
+
build-mode:
|
|
7
|
+
required: true
|
|
8
|
+
out:
|
|
9
|
+
required: true
|
|
10
|
+
default: reports
|
|
11
|
+
runs:
|
|
12
|
+
using: composite
|
|
13
|
+
steps:
|
|
14
|
+
- name: Initialize CodeQL
|
|
15
|
+
uses: github/codeql-action/init@v3
|
|
16
|
+
with:
|
|
17
|
+
languages: ${{ inputs.language }}
|
|
18
|
+
build-mode: ${{ inputs.build-mode }}
|
|
19
|
+
- name: Run CodeQL Analysis
|
|
20
|
+
uses: github/codeql-action/analyze@v3
|
|
21
|
+
with:
|
|
22
|
+
category: /language:${{ inputs.language }}
|
|
23
|
+
output: ${{ github.workspace }}/${{ inputs.out }}/codeql-results.sarif
|
|
24
|
+
- name: Upload CodeQL report
|
|
25
|
+
uses: actions/upload-artifact@master
|
|
26
|
+
with:
|
|
27
|
+
name: CodeQL report
|
|
28
|
+
path: ${{ github.workspace }}/${{ inputs.out }}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
name: OWASP Dependency-Check
|
|
2
|
+
description: Github action to execute OWASP dependency check as part of a github workflow
|
|
3
|
+
inputs:
|
|
4
|
+
project:
|
|
5
|
+
required: true
|
|
6
|
+
path:
|
|
7
|
+
required: true
|
|
8
|
+
format:
|
|
9
|
+
required: true
|
|
10
|
+
out:
|
|
11
|
+
required: true
|
|
12
|
+
default: reports
|
|
13
|
+
suppression:
|
|
14
|
+
required: false
|
|
15
|
+
runs:
|
|
16
|
+
using: composite
|
|
17
|
+
steps:
|
|
18
|
+
- name: Run OWASP Dependency-Check
|
|
19
|
+
uses: ./src/github-actions/code-analysis/base/owasp/owasp
|
|
20
|
+
with:
|
|
21
|
+
project: ${{ inputs.project }}
|
|
22
|
+
path: ${{ inputs.path }}
|
|
23
|
+
format: ${{ inputs.format }}
|
|
24
|
+
out: ${{ inputs.out }}
|
|
25
|
+
suppression: ${{ inputs.suppression }}
|
|
26
|
+
- name: Upload OWASP report
|
|
27
|
+
uses: actions/upload-artifact@master
|
|
28
|
+
with:
|
|
29
|
+
name: OWASP report
|
|
30
|
+
path: ${{ github.workspace }}/${{ inputs.out }}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
name: OWASP Dependency-Check
|
|
2
|
+
description: Github action to execute OWASP dependency check as part of a github workflow
|
|
3
|
+
inputs:
|
|
4
|
+
project:
|
|
5
|
+
required: true
|
|
6
|
+
path:
|
|
7
|
+
required: true
|
|
8
|
+
format:
|
|
9
|
+
required: true
|
|
10
|
+
out:
|
|
11
|
+
required: true
|
|
12
|
+
default: reports
|
|
13
|
+
suppression:
|
|
14
|
+
required: false
|
|
15
|
+
runs:
|
|
16
|
+
using: docker
|
|
17
|
+
image: Dockerfile
|
|
18
|
+
args:
|
|
19
|
+
- ${{ inputs.project }}
|
|
20
|
+
- ${{ inputs.path }}
|
|
21
|
+
- ${{ inputs.format }}
|
|
22
|
+
- ${{ inputs.out }}
|
|
23
|
+
- ${{ inputs.suppression }}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
set -e
|
|
3
|
+
|
|
4
|
+
# Build base command array.
|
|
5
|
+
args=(--project "${INPUT_PROJECT}" \
|
|
6
|
+
--scan "$GITHUB_WORKSPACE/${INPUT_PATH}" \
|
|
7
|
+
--format "${INPUT_FORMAT}" \
|
|
8
|
+
--out "$GITHUB_WORKSPACE/${INPUT_OUT}" \
|
|
9
|
+
--noupdate \
|
|
10
|
+
--enableRetired \
|
|
11
|
+
--failOnCVSS 7)
|
|
12
|
+
|
|
13
|
+
# If the suppression boolean is true, append the flag.
|
|
14
|
+
if [ "${INPUT_SUPPRESSION}" = "true" ]; then
|
|
15
|
+
args+=(--suppression suppressions.xml)
|
|
16
|
+
fi
|
|
17
|
+
|
|
18
|
+
# Execute OWASP Dependency-Check with the built arguments.
|
|
19
|
+
/usr/share/dependency-check/bin/dependency-check.sh ${args[@]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
name: Snyk Code Test
|
|
2
|
+
description: Github action to execute Snyk code test as part of a github workflow
|
|
3
|
+
inputs:
|
|
4
|
+
token:
|
|
5
|
+
required: true
|
|
6
|
+
runs:
|
|
7
|
+
using: composite
|
|
8
|
+
steps:
|
|
9
|
+
- name: Run Snyk Code Test
|
|
10
|
+
uses: snyk/actions/node@master
|
|
11
|
+
with:
|
|
12
|
+
command: code test
|
|
13
|
+
args: --severity-threshold=high
|
|
14
|
+
env:
|
|
15
|
+
SNYK_TOKEN: ${{ inputs.token }}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
name: Snyk Test
|
|
2
|
+
description: Github action to execute Snyk test as part of a github workflow
|
|
3
|
+
inputs:
|
|
4
|
+
project:
|
|
5
|
+
required: true
|
|
6
|
+
token:
|
|
7
|
+
required: true
|
|
8
|
+
runs:
|
|
9
|
+
using: composite
|
|
10
|
+
steps:
|
|
11
|
+
- name: Run Snyk Test
|
|
12
|
+
uses: snyk/actions/node@master
|
|
13
|
+
env:
|
|
14
|
+
SNYK_TOKEN: ${{ inputs.token }}
|
|
15
|
+
with:
|
|
16
|
+
command: test
|
|
17
|
+
args: --severity-threshold=high
|
|
18
|
+
- name: Run Snyk Monitor
|
|
19
|
+
uses: snyk/actions/node@master
|
|
20
|
+
with:
|
|
21
|
+
command: monitor
|
|
22
|
+
args: --project-name="${{ inputs.project }}"
|
|
23
|
+
env:
|
|
24
|
+
SNYK_TOKEN: ${{ inputs.token }}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
name: OWASP Dependency-Check
|
|
2
|
+
description: Github action to execute OWASP dependency check as part of a github workflow for NodeJS projects
|
|
3
|
+
runs:
|
|
4
|
+
using: composite
|
|
5
|
+
steps:
|
|
6
|
+
- name: Setup Node.js
|
|
7
|
+
uses: actions/setup-node@v4
|
|
8
|
+
with:
|
|
9
|
+
node-version: 22.x
|
|
10
|
+
registry-url: https://registry.npmjs.org
|
|
11
|
+
- name: Install dependencies
|
|
12
|
+
run: npm ci
|
|
13
|
+
shell: bash
|
|
14
|
+
- name: Run CodeQL Analysis
|
|
15
|
+
uses: ./src/github-actions/code-analysis/base/codeql
|
|
16
|
+
with:
|
|
17
|
+
language: javascript-typescript
|
|
18
|
+
build-mode: none
|
|
19
|
+
out: reports
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
name: OWASP Dependency-Check
|
|
2
|
+
description: Github action to execute OWASP dependency check as part of a github workflow for NodeJS projects
|
|
3
|
+
inputs:
|
|
4
|
+
suppression:
|
|
5
|
+
required: false
|
|
6
|
+
runs:
|
|
7
|
+
using: composite
|
|
8
|
+
steps:
|
|
9
|
+
- name: Setup Node.js
|
|
10
|
+
uses: actions/setup-node@v4
|
|
11
|
+
with:
|
|
12
|
+
node-version: 22.x
|
|
13
|
+
registry-url: https://registry.npmjs.org
|
|
14
|
+
- name: Install dependencies
|
|
15
|
+
run: npm ci
|
|
16
|
+
shell: bash
|
|
17
|
+
- name: Run OWASP Dependency-Check
|
|
18
|
+
uses: ./src/github-actions/code-analysis/base/owasp
|
|
19
|
+
with:
|
|
20
|
+
project: ${{ github.repository }}
|
|
21
|
+
path: .
|
|
22
|
+
format: HTML
|
|
23
|
+
out: reports
|
|
24
|
+
suppression: ${{ inputs.suppression }}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
name: Snyk Test
|
|
2
|
+
description: Github action to execute Snyk test as part of a github workflow for NodeJS projects
|
|
3
|
+
inputs:
|
|
4
|
+
token:
|
|
5
|
+
required: true
|
|
6
|
+
runs:
|
|
7
|
+
using: composite
|
|
8
|
+
steps:
|
|
9
|
+
- name: Setup Node.js
|
|
10
|
+
uses: actions/setup-node@v4
|
|
11
|
+
with:
|
|
12
|
+
node-version: 22.x
|
|
13
|
+
registry-url: https://registry.npmjs.org
|
|
14
|
+
- name: Install dependencies
|
|
15
|
+
run: npm ci
|
|
16
|
+
shell: bash
|
|
17
|
+
- name: Run Snyk Code Test
|
|
18
|
+
uses: ./src/github-actions/code-analysis/base/snyk/code-test/node
|
|
19
|
+
with:
|
|
20
|
+
token: ${{ inputs.token }}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
name: Snyk Test
|
|
2
|
+
description: Github action to execute Snyk test as part of a github workflow for NodeJS projects
|
|
3
|
+
inputs:
|
|
4
|
+
token:
|
|
5
|
+
required: true
|
|
6
|
+
runs:
|
|
7
|
+
using: composite
|
|
8
|
+
steps:
|
|
9
|
+
- name: Setup Node.js
|
|
10
|
+
uses: actions/setup-node@v4
|
|
11
|
+
with:
|
|
12
|
+
node-version: 22.x
|
|
13
|
+
registry-url: https://registry.npmjs.org
|
|
14
|
+
- name: Install dependencies
|
|
15
|
+
run: npm ci
|
|
16
|
+
shell: bash
|
|
17
|
+
- name: Run Snyk Test
|
|
18
|
+
uses: ./src/github-actions/code-analysis/base/snyk/test/node
|
|
19
|
+
with:
|
|
20
|
+
project: ${{ github.repository }}
|
|
21
|
+
token: ${{ inputs.token }}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
name: Deploy to Github Pages
|
|
2
|
+
description: Github action to deploy to github pages as part of a github workflow for NodeJS projects
|
|
3
|
+
inputs:
|
|
4
|
+
path:
|
|
5
|
+
description: Specifies the path of the static assets after building
|
|
6
|
+
required: true
|
|
7
|
+
install:
|
|
8
|
+
description: Specifies the command to run the installation.
|
|
9
|
+
required: true
|
|
10
|
+
build:
|
|
11
|
+
description: Specifies the command to run after install for the build
|
|
12
|
+
required: true
|
|
13
|
+
outputs:
|
|
14
|
+
page_url:
|
|
15
|
+
description: The URL of the page
|
|
16
|
+
value: ${{ steps.deploy.outputs.page_url }}
|
|
17
|
+
runs:
|
|
18
|
+
using: composite
|
|
19
|
+
steps:
|
|
20
|
+
- name: Install
|
|
21
|
+
shell: bash
|
|
22
|
+
run: ${{ inputs.install_command }}
|
|
23
|
+
- name: Build
|
|
24
|
+
shell: bash
|
|
25
|
+
run: ${{ inputs.build }}
|
|
26
|
+
- name: Upload files
|
|
27
|
+
uses: actions/upload-pages-artifact@v3
|
|
28
|
+
with:
|
|
29
|
+
path: ${{ inputs.path }}
|
|
30
|
+
- id: deploy
|
|
31
|
+
name: Deploy to GitHub Pages
|
|
32
|
+
uses: actions/deploy-pages@v4
|
|
33
|
+
with:
|
|
34
|
+
token: ${{ github.token }}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
name: Deploy Storybook to Github Pages
|
|
2
|
+
description: Github action to deploy storybook to github pages as part of a github workflow for NodeJS projects
|
|
3
|
+
inputs:
|
|
4
|
+
path:
|
|
5
|
+
description: Specifies the path of the static assets after building
|
|
6
|
+
required: true
|
|
7
|
+
install:
|
|
8
|
+
description: Specifies the command to run the installation.
|
|
9
|
+
required: true
|
|
10
|
+
build:
|
|
11
|
+
description: Specifies the command to run after install for the build
|
|
12
|
+
required: true
|
|
13
|
+
runs:
|
|
14
|
+
using: composite
|
|
15
|
+
steps:
|
|
16
|
+
- name: Setup Node.js
|
|
17
|
+
uses: actions/setup-node@v4
|
|
18
|
+
with:
|
|
19
|
+
node-version: 22.x
|
|
20
|
+
registry-url: https://registry.npmjs.org
|
|
21
|
+
- name: Deploy Storybook to Github Pages
|
|
22
|
+
uses: ./src/github-actions/deploy/github-pages/base
|
|
23
|
+
with:
|
|
24
|
+
path: storybook-static
|
|
25
|
+
install: npm ci
|
|
26
|
+
build: npm run build-storybook
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
name: NPM Publish
|
|
2
|
+
description: Github action to publish to npm as part of a github workflow for NodeJS projects
|
|
3
|
+
inputs:
|
|
4
|
+
npm-token:
|
|
5
|
+
required: true
|
|
6
|
+
runs:
|
|
7
|
+
using: composite
|
|
8
|
+
steps:
|
|
9
|
+
- name: Setup Node.js
|
|
10
|
+
uses: actions/setup-node@v4
|
|
11
|
+
with:
|
|
12
|
+
node-version: 22.x
|
|
13
|
+
registry-url: https://registry.npmjs.org
|
|
14
|
+
- name: Install dependencies
|
|
15
|
+
shell: bash
|
|
16
|
+
run: npm ci
|
|
17
|
+
- name: Build
|
|
18
|
+
shell: bash
|
|
19
|
+
run: npm run build
|
|
20
|
+
- name: Publish to NPM
|
|
21
|
+
shell: bash
|
|
22
|
+
run: npx semantic-release
|
|
23
|
+
env:
|
|
24
|
+
GITHUB_TOKEN: ${{ github.token }}
|
|
25
|
+
NPM_TOKEN: ${{ inputs.npm-token }}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
name: Publish to npm
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
workflow_run:
|
|
5
|
-
workflows: ["Code Analysis"]
|
|
6
|
-
types:
|
|
7
|
-
- completed
|
|
8
|
-
|
|
9
|
-
permissions:
|
|
10
|
-
contents: read # for checkout
|
|
11
|
-
|
|
12
|
-
jobs:
|
|
13
|
-
publish:
|
|
14
|
-
name: Publish
|
|
15
|
-
runs-on: ubuntu-latest
|
|
16
|
-
permissions:
|
|
17
|
-
contents: write # to be able to publish a GitHub release
|
|
18
|
-
issues: write # to be able to comment on released issues
|
|
19
|
-
pull-requests: write # to be able to comment on released pull requests
|
|
20
|
-
id-token: write # to enable use of OIDC for npm provenance
|
|
21
|
-
|
|
22
|
-
steps:
|
|
23
|
-
- name: Checkout code
|
|
24
|
-
uses: actions/checkout@v4
|
|
25
|
-
|
|
26
|
-
- name: Setup Node.js
|
|
27
|
-
uses: actions/setup-node@v4
|
|
28
|
-
with:
|
|
29
|
-
node-version: '22.x'
|
|
30
|
-
registry-url: 'https://registry.npmjs.org'
|
|
31
|
-
|
|
32
|
-
- name: Install dependencies
|
|
33
|
-
run: npm ci
|
|
34
|
-
|
|
35
|
-
- name: Build
|
|
36
|
-
run: npm run build
|
|
37
|
-
|
|
38
|
-
- name: Publish to npm
|
|
39
|
-
env:
|
|
40
|
-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
41
|
-
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
42
|
-
run: npx semantic-release
|
|
File without changes
|