From acf858ae792c51e3ed36b53dc80f0e2a61926699 Mon Sep 17 00:00:00 2001 From: Lukas Gravley Date: Thu, 25 Feb 2021 08:57:42 -0600 Subject: [PATCH] Adding release process (#1260) * adding release process * fix grep * fix spacing * fix spacing * fix spacing * fix spacing * Update docs to reflect new release process * Add issue template link * fix version Co-authored-by: Zack Koppert --- .automation/update-actions-version.sh | 289 +++++++++++++++++++++++ .github/CONTRIBUTING.md | 15 +- .github/ISSUE_TEMPLATE/CREATE_RELEASE.md | 15 ++ .github/workflows/deploy-RELEASE.yml | 115 ++++++++- dependencies/package-lock.json | 124 +++------- dependencies/package.json | 2 +- 6 files changed, 446 insertions(+), 114 deletions(-) create mode 100755 .automation/update-actions-version.sh create mode 100644 .github/ISSUE_TEMPLATE/CREATE_RELEASE.md diff --git a/.automation/update-actions-version.sh b/.automation/update-actions-version.sh new file mode 100755 index 00000000..561d04a6 --- /dev/null +++ b/.automation/update-actions-version.sh @@ -0,0 +1,289 @@ +#!/bin/bash + +################################################################################ +############# Update the actions.yml with version @admiralawkbar ############### +################################################################################ + +########### +# Globals # +########### +GITHUB_TOKEN="${GITHUB_TOKEN}" # Token for API CALLS +DEPLOY_KEY="${DEPLOY_KEY}" # Deploy key with write access +ORG_REPO="${ORG_REPO}" # Name of ther GitHub Organization and repository +ISSUE_NUMBER="${ISSUE_NUMBER}" # Number of the issue that kicked the automation +ISSUE_TITLE="${ISSUE_TITLE}" # Title of the issue +ISSUE_BODY="${ISSUE_BODY}" # Body of the issue + +############ +# Defaults # +############\ +GITHUB_API='https://api.github.com' # API url +VERSION='' # Version of release pulled from api +ACTION_FILE='action.yml' # Action file to update +PR_ID='' # PUll Request ID when created +UPDATED_BODY_STRING='' # Issue body string converted + +############## +# Built Vars # +############## +ORG=$(echo "${ORG_REPO}" | cut -d'/' -f1) # Name of the Org +REPO=$(echo "${ORG_REPO}" | cut -d'/' -f2) # Name of the repository + +################################################################################ +############################ FUNCTIONS BELOW ################################### +################################################################################ +################################################################################ +#### Function Header ########################################################### +Header() { + echo "-------------------------------------------------------" + echo "----------- GitHub Update Release Version -------------" + echo "-------------------------------------------------------" +} +################################################################################ +#### Function GetReleaseFromIssueTitle ######################################### +GetReleaseFromIssueTitle() { + echo "-------------------------------------------------------" + echo "Getting the latest Release version from GitHub Issue..." + + # Get the latest release on the Repository + GET_VERSION_CMD=$(echo "${ISSUE_TITLE}" | grep -E -o "v[[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+" 2>&1) + + # Load the error code + ERROR_CODE=$? + + # Check the shell for errors + if [ "${ERROR_CODE}" -ne 0 ] || [ ${#GET_VERSION_CMD} -lt 1 ]; then + # Error + echo "ERROR! Failed to get the version!" + echo "ERROR:[${GET_VERSION_CMD}]" + exit 1 + else + # Success + echo "Latest Version:[${GET_VERSION_CMD}]" + fi + + # Set the version + VERSION=${GET_VERSION_CMD} +} +################################################################################ +#### Function UpdateActionFile ################################################# +UpdateActionFile() { + echo "-------------------------------------------------------" + echo "Updating the File:[$ACTION_FILE] with Version:[$VERSION]..." + + # Validate we can see the file + if [ ! -f "${ACTION_FILE}" ]; then + # ERROR + echo "ERROR! Failed to find the file:[${ACTION_FILE}]" + exit 1 + fi + + # Update the file + UPDATE_CMD=$(sed -i "s|image:.*|image: 'docker://ghcr.io/github/super-linter:${VERSION}'|" "${ACTION_FILE}" 2>&1) + + # Load the error code + ERROR_CODE=$? + + # Check the shell for errors + if [ "${ERROR_CODE}" -ne 0 ]; then + # Failed to update file + echo "ERROR! Failed to update ${ACTION_FILE}!" + echo "ERROR:[${UPDATE_CMD}]" + exit 1 + else + echo "Successfully updated file to:" + cat "${ACTION_FILE}" + fi +} +################################################################################ +#### Function CommitAndPush #################################################### +CommitAndPush() { + echo "-------------------------------------------------------" + echo "Creating commit, and pushing to PR..." + + # Commit the code to GitHub + COMMIT_CMD=$( + git checkout -b "Automation-Release-${VERSION}" + git add "${ACTION_FILE}" + git config --global user.name "SuperLinter Automation" + git config --global user.email "super_linter_automation@github.com" + git commit -m "Updating action.yml with new release version" 2>&1 + ) + + # Load the error code + ERROR_CODE=$? + + # Check the shell for errors + if [ "${ERROR_CODE}" -ne 0 ]; then + # ERROR + echo "ERROR! Failed to make commit!" + echo "ERROR:[$COMMIT_CMD]" + exit 1 + else + echo "Successfully staged commmit" + fi + + echo "-------------------------------------------------------" + # Push the code to the branch and create PR + PUSH_CMD=$( + git push --set-upstream origin "Automation-Release-${VERSION}" + gh pr create --title "Update-to-release-${VERSION}" --body "Automation Upgrade version ${VERSION} to action.yml" 2>&1 + ) + + # Load the error code + ERROR_CODE=$? + + # Check the shell for errors + if [ "${ERROR_CODE}" -ne 0 ]; then + # ERROR + echo "ERROR! Failed to create PR!" + echo "ERROR:[$PUSH_CMD]" + exit 1 + else + echo "Successfully Created PR" + fi + + # Get the pr number + for LINE in $PUSH_CMD; do + # echo "Line:[${LINE}]" + if [[ "${LINE}" == *"github.com"* ]]; then + # Getting the PR id + PR_ID=$(echo "${LINE}" | rev | cut -d'/' -f1 | rev) + fi + done + +} +################################################################################ +#### Function UpdateBaseIssue ################################################## +UpdateBaseIssue() { + echo "-------------------------------------------------------" + echo "Updating Original Issue:[$ISSUE_NUMBER] with Release information..." + + # Update the issue to point to new created Pull Request + UPDATE_ISSUE_CMD=$(curl -s --fail -X POST \ + --url "${GITHUB_API}/repos/${ORG}/${REPO}/issues/${ISSUE_NUMBER}/comments" \ + -H "Authorization: Bearer ${GITHUB_TOKEN}" \ + -H 'Content-Type: application/json' \ + --data "{ \"body\": \"This Issue is being resolved on in the Pull Request #${PR_ID}\"}" 2>&1) + + # Load the error code + ERROR_CODE=$? + + # Check the shell for errors + if [ "${ERROR_CODE}" -ne 0 ]; then + # ERROR + echo "ERROR! Failed to update base issue!" + echo "ERROR:[$UPDATE_ISSUE_CMD]" + exit 1 + else + echo "Successfully updated base Issue" + fi +} +################################################################################ +#### Function UpdatePRBody ##################################################### +UpdatePRBody() { + echo "-------------------------------------------------------" + echo "Updating PR body with Release information and Issue linkage..." + + # Need to update the body of the PR with the information + UPDATE_PR_CMD=$(curl -s --fail -X PATCH \ + --url "${GITHUB_API}/repos/${ORG}/${REPO}/pulls/${PR_ID}" \ + -H 'Accept: application/vnd.github.shadow-cat-preview+json,application/vnd.github.sailor-v-preview+json' \ + -H "Authorization: Bearer ${GITHUB_TOKEN}" \ + -H 'Content-Type: application/json' \ + --data "{\"body\": \"Automation Creation of Super-Linter\n\nThis closes #${ISSUE_NUMBER}\n\n${UPDATED_BODY_STRING}\"}" 2>&1) + + # Load the error code + ERROR_CODE=$? + + # Check the shell for errors + if [ "${ERROR_CODE}" -ne 0 ]; then + # ERROR + echo "ERROR! Failed to update PR body!" + echo "ERROR:[$UPDATE_PR_CMD]" + exit 1 + else + echo "Successfully updated PR body" + fi +} +################################################################################ +#### Function UpdateReleaseBodyString ########################################## +UpdateReleaseBodyString() { + # Need to convert the string newlines to literal newlines + UPDATED_BODY_STRING=$(echo "${ISSUE_BODY}" | sed -E ':a;N;$!ba;s/\r{0,1}\n/\\n/g') + + echo "-------------------------------------------------------" + echo "The updated body string is:[${UPDATED_BODY_STRING}]" + echo "-------------------------------------------------------" +} +################################################################################ +#### Function SetActionsVariables ############################################## +SetActionsVariables() { + # Set the variables back to Actions + echo "-------------------------------------------------------" + echo "Setting the variables back to GitHub Actions..." + + echo "Setting PR_ID:[${PR_ID}]" + echo "PR_ID=${PR_ID}" >>"${GITHUB_ENV}" + + echo "Setting RELEASE_VERSION:[${VERSION}]" + echo "RELEASE_VERSION=${VERSION}" >>"${GITHUB_ENV}" + + echo "Setting PR_REF:[Automation-Release-${VERSION}]" + echo "PR_REF=Automation-Release-${VERSION}" >>"${GITHUB_ENV}" +} +################################################################################ +#### Function Footer ########################################################### +Footer() { + echo "-------------------------------------------------------" + echo "The step has completed" + echo "-------------------------------------------------------" +} +################################################################################ +################################## MAIN ######################################## +################################################################################ + +########## +# Header # +########## +Header + +########################## +# Get the latest version # +########################## +GetReleaseFromIssueTitle + +########################## +# Get the latest version # +########################## +UpdateReleaseBodyString + +########################## +# Update the action file # +########################## +UpdateActionFile + +######################## +# Commit and push file # +######################## +CommitAndPush + +#################### +# Update the Issue # +#################### +UpdateBaseIssue + +#################### +# Update the Issue # +#################### +UpdatePRBody + +##################################### +# Set the variables back to Actions # +##################################### +SetActionsVariables + +########## +# Footer # +########## +Footer diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index a513bf07..b0a51b9b 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -46,14 +46,15 @@ The **Super-Linter** has _CI/CT/CD_ configured utilizing **GitHub** Actions. ## Releasing -If you are the current maintainer of this action: +If you are the current maintainer of this action you can create releases from [a release issue](.github/ISSUE_TEMPLATE/CREATE_RELEASE.md) in the repository. -1. If a major version number change: Update `README.md` and the wiki to reflect new version number in the example workflow file sections -2. Edit the `action.yml` file to reflect the new version number. See [here](https://github.com/github/super-linter/blob/master/action.yml#L6) -3. Ensure you check the box for [publishing to the marketplace](https://help.github.com/en/actions/creating-actions/publishing-actions-in-github-marketplace#publishing-an-action) -4. A GitHub Action will Publish the Docker image to GitHub Package Registry once a Release is created -5. A GitHub Action will Publish the Docker image to Docker Hub once a Release is created -6. Look for approval from [CODEOWNERS](https://help.github.com/en/github/creating-cloning-and-archiving-repositories/about-code-owners) +- It will notify the issue it has seen the information and starts the Actions job +- It will create a branch and update the `actions.yml` with the new version supplied to the issue +- It will then create a PR with the updated code +- It will then create the release and build the artifacts needed +- it will then publish the release and merge the PR +- A GitHub Action will Publish the Docker image to GitHub Package Registry once a Release is created +- A GitHub Action will Publish the Docker image to Docker Hub once a Release is created ## Resources diff --git a/.github/ISSUE_TEMPLATE/CREATE_RELEASE.md b/.github/ISSUE_TEMPLATE/CREATE_RELEASE.md new file mode 100644 index 00000000..dc7d061e --- /dev/null +++ b/.github/ISSUE_TEMPLATE/CREATE_RELEASE.md @@ -0,0 +1,15 @@ +--- +name: Create Release +about: Create a Release to the Super Linter +title: 'Super-Linter Release: vX.Y.Z' +labels: release +assignees: '' +--- + +## Changelog + + + +## Bugs + + diff --git a/.github/workflows/deploy-RELEASE.yml b/.github/workflows/deploy-RELEASE.yml index 31bc19dc..b64ef8f1 100644 --- a/.github/workflows/deploy-RELEASE.yml +++ b/.github/workflows/deploy-RELEASE.yml @@ -1,9 +1,9 @@ --- -######################### -######################### -## Deploy Docker Image ## -######################### -######################### +################################# +################################# +## Deploy Release Docker Image ## +################################# +################################# # # Documentation: @@ -14,9 +14,9 @@ # Start the job on all push to master # ####################################### on: - release: - # Want to run the automation when a release is created - types: ['created'] + # Start when a pull request is opened + issues: + types: ['opened'] ############### # Set the Job # @@ -27,8 +27,13 @@ jobs: name: Deploy Docker Image - Release # Set the agent to run on runs-on: ubuntu-latest - # Only run on main repo - if: github.repository == 'github/super-linter' + # Only run if Admin start job and it was the Release Issue template + if: contains(github.event.issue.title, 'Super-Linter Release:') && + github.actor == 'admiralawkbar' || github.actor == 'jwiebalk' || + github.actor == 'IAmHughes' || github.actor == 'nemchik' || + github.actor == 'Hanse00' || github.actor == 'github-actions' || + github.actor == 'GaboFDC' || github.actor == 'ferrarimarco' + ################## # Load all steps # ################## @@ -39,6 +44,35 @@ jobs: - name: Checkout Code uses: actions/checkout@v2.3.4 + ####################################################### + # Create a GitHub Issue with the info from this build # + ####################################################### + - name: Update GitHub Issue + uses: actions/github-script@v3.1.0 + id: update-issue + with: + # https://octokit.github.io/rest.js/v18#issues-create + github-token: ${{secrets.GITHUB_TOKEN}} + script: | + github.issues.createComment({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: "${{ github.event.issue.number }}", + title: "Deploying Super-Linter Release to Production", + body: 'Currently deploying the Release...' + }) + + ######################### + # Update deployment API # + ######################### + - name: Start deployment + uses: bobheadxi/deployments@v0.4.3 + id: deployment + with: + step: start + token: ${{ secrets.GITHUB_TOKEN }} + env: Release + ######################## # Get the current date # ######################## @@ -70,6 +104,21 @@ jobs: password: ${{ secrets.GCR_TOKEN }} registry: ghcr.io + ####################################### + # Update actions.yml with new version # + ####################################### + - name: Update actions.yml with release version and create PR + if: success() + run: ./.automation/update-actions-version.sh + # Note: script creates variables: PR_ID PR_REF RELEASE_VERSION + env: + DEPLOY_KEY: ${{ secrets.DEPLOY_KEY }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + ORG_REPO: ${{ github.repository }} + ISSUE_NUMBER: ${{ github.event.issue.number }} + ISSUE_TITLE: ${{ github.event.issue.title }} + ISSUE_BODY: ${{ github.event.issue.body }} + ########################################### # Build and Push containers to registries # ########################################### @@ -86,7 +135,49 @@ jobs: tags: | github/super-linter:latest github/super-linter:v3 - github/super-linter:${{ github.event.release.tag_name }} + github/super-linter:${{ env.RELEASE_VERSION }} ghcr.io/github/super-linter:latest ghcr.io/github/super-linter:v3 - ghcr.io/github/super-linter:${{ github.event.release.tag_name }} + ghcr.io/github/super-linter:${{ env.RELEASE_VERSION }} + + ############################# + # Create the GitHub Release # + ############################# + - name: Create Release + if: success() + id: create_release + uses: actions/create-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token + with: + commitish: ${{ env.PR_REF }} + tag_name: ${{ env.RELEASE_VERSION }} + release_name: Release ${{ env.RELEASE_VERSION }} + body: | + ${{ github.event.issue.body }} + draft: false + prerelease: false + + ################################# + # Close the opened Pull Request # + ################################# + - name: Close PR + if: success() + run: | + curl -X PUT --url https://api.github.com/repos/${{ github.repository }}/pulls/${{ env.PR_ID }}/merge \ + -H "Accept: application/vnd.github.v3+json" \ + -H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" \ + --data '{ "merge_method": "squash" }' + + ######################### + # Update Deployment API # + ######################### + - name: Update deployment status + uses: bobheadxi/deployments@v0.4.3 + if: always() + with: + step: finish + token: ${{ secrets.GITHUB_TOKEN }} + status: ${{ job.status }} + deployment_id: ${{ steps.deployment.outputs.deployment_id }} + env_url: https://github.com/orgs/${{github.repository_owner}}/packages?repo_name=${{github.repository.name}} diff --git a/dependencies/package-lock.json b/dependencies/package-lock.json index c237688f..5aebead5 100644 --- a/dependencies/package-lock.json +++ b/dependencies/package-lock.json @@ -10,7 +10,7 @@ "@stoplight/spectral": "^5.8.1", "@typescript-eslint/eslint-plugin": "^4.15.2", "@typescript-eslint/parser": "^4.15.2", - "asl-validator": "^1.9.4", + "asl-validator": "^1.9.8", "axios": "^0.21.1", "babel-eslint": "^10.1.0", "dockerfilelint": "^1.8.0", @@ -777,17 +777,6 @@ "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/@eslint/eslintrc/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, "node_modules/@eslint/eslintrc/node_modules/globals": { "version": "12.4.0", "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", @@ -1669,14 +1658,18 @@ } }, "node_modules/ajv": { - "version": "6.12.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz", - "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==", + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, "node_modules/ajv-oai": { @@ -1989,13 +1982,13 @@ "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" }, "node_modules/asl-validator": { - "version": "1.9.5", - "resolved": "https://registry.npmjs.org/asl-validator/-/asl-validator-1.9.5.tgz", - "integrity": "sha512-tjvZKdKFb81oHu1Xzz5w/shmTZQxS8IK+cEpf/ugHgVi0aNHvguQMg7GHZiRiQaiEYxJiupajusajlhekYBb5g==", + "version": "1.9.8", + "resolved": "https://registry.npmjs.org/asl-validator/-/asl-validator-1.9.8.tgz", + "integrity": "sha512-t09Xw2JGAswoVHxBSTCO/acCCnDUi3C8zfVq0JNWivCW7+2wsmPU8TBV8iH6tpgjnGLSmCJgckalwOJ0bi3twg==", "dependencies": { - "ajv": "^6.12.2", + "ajv": "^6.12.6", "commander": "^5.1.0", - "jsonpath": "^1.0.2" + "jsonpath": "^1.1.0" }, "bin": { "asl-validator": "bin/asl-validator.js" @@ -2406,6 +2399,7 @@ "dependencies": { "anymatch": "~3.1.1", "braces": "~3.0.2", + "fsevents": "~2.1.2", "glob-parent": "~5.1.0", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", @@ -3794,17 +3788,6 @@ "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/eslint/node_modules/@eslint/eslintrc/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, "node_modules/eslint/node_modules/astral-regex": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", @@ -4735,17 +4718,6 @@ "node": ">=6" } }, - "node_modules/har-validator/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, "node_modules/hard-rejection": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", @@ -5317,6 +5289,7 @@ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "dependencies": { + "graceful-fs": "^4.1.6", "universalify": "^2.0.0" }, "optionalDependencies": { @@ -5511,10 +5484,9 @@ } }, "node_modules/jsonpath": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/jsonpath/-/jsonpath-1.0.2.tgz", - "integrity": "sha512-rmzlgFZiQPc6q4HDyK8s9Qb4oxBnI5sF61y/Co5PV0lc3q2bIuRsNdueVbhoSHdKM4fxeimphOAtfz47yjCfeA==", - "hasInstallScript": true, + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jsonpath/-/jsonpath-1.1.0.tgz", + "integrity": "sha512-CZHwa1sZOf42qkIyK7evwToFXeTB4iplbl6Z9CVwU0wmBQPffL6gtYJXCoeciJoZENMuzaidPjhp2iOLRei4wQ==", "dependencies": { "esprima": "1.2.2", "static-eval": "2.0.2", @@ -9038,6 +9010,7 @@ "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", "dependencies": { "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", "yargs": "~3.10.0" }, "bin": { @@ -10199,17 +10172,6 @@ "strip-json-comments": "^3.1.1" }, "dependencies": { - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, "globals": { "version": "12.4.0", "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", @@ -10893,9 +10855,9 @@ } }, "ajv": { - "version": "6.12.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz", - "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==", + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "requires": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -11161,13 +11123,13 @@ "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" }, "asl-validator": { - "version": "1.9.5", - "resolved": "https://registry.npmjs.org/asl-validator/-/asl-validator-1.9.5.tgz", - "integrity": "sha512-tjvZKdKFb81oHu1Xzz5w/shmTZQxS8IK+cEpf/ugHgVi0aNHvguQMg7GHZiRiQaiEYxJiupajusajlhekYBb5g==", + "version": "1.9.8", + "resolved": "https://registry.npmjs.org/asl-validator/-/asl-validator-1.9.8.tgz", + "integrity": "sha512-t09Xw2JGAswoVHxBSTCO/acCCnDUi3C8zfVq0JNWivCW7+2wsmPU8TBV8iH6tpgjnGLSmCJgckalwOJ0bi3twg==", "requires": { - "ajv": "^6.12.2", + "ajv": "^6.12.6", "commander": "^5.1.0", - "jsonpath": "^1.0.2" + "jsonpath": "^1.1.0" } }, "asn1": { @@ -12289,19 +12251,6 @@ "lodash": "^4.17.20", "minimatch": "^3.0.4", "strip-json-comments": "^3.1.1" - }, - "dependencies": { - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - } } }, "astral-regex": { @@ -13386,19 +13335,6 @@ "requires": { "ajv": "^6.12.3", "har-schema": "^2.0.0" - }, - "dependencies": { - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - } } }, "hard-rejection": { @@ -14006,9 +13942,9 @@ } }, "jsonpath": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/jsonpath/-/jsonpath-1.0.2.tgz", - "integrity": "sha512-rmzlgFZiQPc6q4HDyK8s9Qb4oxBnI5sF61y/Co5PV0lc3q2bIuRsNdueVbhoSHdKM4fxeimphOAtfz47yjCfeA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jsonpath/-/jsonpath-1.1.0.tgz", + "integrity": "sha512-CZHwa1sZOf42qkIyK7evwToFXeTB4iplbl6Z9CVwU0wmBQPffL6gtYJXCoeciJoZENMuzaidPjhp2iOLRei4wQ==", "requires": { "esprima": "1.2.2", "static-eval": "2.0.2", diff --git a/dependencies/package.json b/dependencies/package.json index f973648d..39fe0b19 100644 --- a/dependencies/package.json +++ b/dependencies/package.json @@ -5,7 +5,7 @@ "@stoplight/spectral": "^5.8.1", "@typescript-eslint/eslint-plugin": "^4.15.2", "@typescript-eslint/parser": "^4.15.2", - "asl-validator": "^1.9.4", + "asl-validator": "^1.9.8", "axios": "^0.21.1", "babel-eslint": "^10.1.0", "dockerfilelint": "^1.8.0",