diff --git a/.forgejo/actions/setup-k3s/action.yml b/.forgejo/actions/setup-k3s/action.yml new file mode 100644 index 0000000..4c237b0 --- /dev/null +++ b/.forgejo/actions/setup-k3s/action.yml @@ -0,0 +1,25 @@ +# action.yml +name: setup-k3s +description: 'setup k3s' + +inputs: + version: + description: 'k3s version' + required: true + +runs: + using: 'composite' + steps: + - shell: bash + name: install k3s + run: | + curl -sfL https://get.k3s.io | INSTALL_K3S_VERSION=${INPUT_VERSION} K3S_KUBECONFIG_MODE=640 sh -s - server + echo "KUBECONFIG=/etc/rancher/k3s/k3s.yaml" >> $GITHUB_ENV + - shell: bash + name: check k3s + run: kubectl cluster-info + - shell: bash + name: wait for nodes ready + run: | + sleep 3 + kubectl wait --for=condition=Ready nodes --all --timeout=600s diff --git a/.forgejo/actions/setup-node/action.yml b/.forgejo/actions/setup-node/action.yml index 9d1ce2c..f19c085 100644 --- a/.forgejo/actions/setup-node/action.yml +++ b/.forgejo/actions/setup-node/action.yml @@ -5,7 +5,7 @@ description: 'setup node' runs: using: 'composite' steps: - - uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3 + - uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0 with: node-version-file: .node-version # cache: 'npm' diff --git a/.forgejo/workflows/build.yml b/.forgejo/workflows/build.yml index 866096d..2c2c8d4 100644 --- a/.forgejo/workflows/build.yml +++ b/.forgejo/workflows/build.yml @@ -13,11 +13,11 @@ permissions: contents: read env: - HELM_VERSION: v3.15.3 # renovate: datasource=github-releases depName=helm packageName=helm/helm - HELM_UNITTEST_VERSION: v0.5.2 # renovate: datasource=github-releases depName=helm-unittest packageName=helm-unittest/helm-unittest - HELM_CHART_TESTING_VERSION: v3.11.0 # renovate: datasource=github-releases depName=chart-testing packageName=helm/chart-testing - KIND_VERSION: v0.23.0 # renovate: datasource=github-releases depName=kind packageName=kubernetes-sigs/kind - KUBECTL_VERSION: v1.30.3 # renovate: datasource=github-releases depName=kubectl packageName=kubernetes/kubernetes + HELM_VERSION: v3.17.0 # renovate: datasource=github-releases depName=helm packageName=helm/helm + HELM_UNITTEST_VERSION: v0.7.1 # renovate: datasource=github-releases depName=helm-unittest packageName=helm-unittest/helm-unittest + HELM_CHART_TESTING_VERSION: v3.12.0 # renovate: datasource=github-releases depName=chart-testing packageName=helm/chart-testing + KUBECTL_VERSION: v1.32.1 # renovate: datasource=github-releases depName=kubectl packageName=kubernetes/kubernetes + CT_GITHUB_GROUPS: true jobs: lint-node: @@ -25,9 +25,11 @@ jobs: steps: - run: cat /etc/os-release - - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: show-progress: false + fetch-depth: 0 # Important for changelog + filter: blob:none # We don't need all blobs - uses: ./.forgejo/actions/setup - uses: ./.forgejo/actions/setup-node @@ -37,6 +39,10 @@ jobs: - run: make readme - run: git diff --exit-code --name-only README.md + - name: changelog + run: | + pnpm changelog ${{ github.ref_type == 'tag' && 'true' || '' }} + lint-helm: runs-on: docker steps: @@ -44,7 +50,7 @@ jobs: - run: ps axf - - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: show-progress: false fetch-depth: 0 @@ -53,7 +59,7 @@ jobs: - uses: ./.forgejo/actions/setup - name: install chart-testing - uses: helm/chart-testing-action@e6669bcd63d7cb57cb4380c33043eebe5d111992 # v2.6.1 + uses: helm/chart-testing-action@0d28d3144d3a25ea2cc349d6e59901c4ff469b3b # v2.7.0 with: version: ${{ env.HELM_CHART_TESTING_VERSION }} @@ -74,21 +80,25 @@ jobs: - run: ct lint --config tools/ct.yml --charts . e2e: + needs: + - lint-node + - lint-helm runs-on: k8s strategy: matrix: - k8s: - # from https://hub.docker.com/r/kindest/node/tags - - v1.27.13 # renovate: kindest - - v1.28.9 # renovate: kindest - - v1.29.4 # renovate: kindest - - v1.30.2 # renovate: kindest + k3s: + # oldest supported version + - v1.28.15+k3s1 # renovate: k3s + # stable version + - v1.31.4+k3s1 # renovate: k3s + # newest version + - v1.32.0+k3s1 # renovate: k3s steps: - run: cat /etc/os-release - - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: show-progress: false fetch-depth: 0 @@ -102,19 +112,13 @@ jobs: version: ${{ env.HELM_VERSION }} - name: Install chart-testing - # TODO: pin to version when this is released: https://github.com/helm/chart-testing-action/pull/137 - uses: helm/chart-testing-action@5aa1c68405a43a57240a9b2869379324b2bec0fc # main + uses: helm/chart-testing-action@0d28d3144d3a25ea2cc349d6e59901c4ff469b3b # v2.7.0 with: version: ${{ env.HELM_CHART_TESTING_VERSION }} - - uses: ./.forgejo/actions/setup-docker - - - name: Create kind cluster - uses: helm/kind-action@0025e74a8c7512023d06dc019c617aa3cf561fde # v1.10.0 + - uses: ./.forgejo/actions/setup-k3s with: - node_image: kindest/node:${{ matrix.k8s }} - kubectl_version: ${{ env.KUBECTL_VERSION }} - version: ${{ env.KIND_VERSION }} + version: ${{ matrix.k3s }} - run: kubectl get no -o wide @@ -162,7 +166,7 @@ jobs: if: ${{ github.ref_type == 'tag' }} steps: - - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: show-progress: false fetch-depth: 0 # Important for changelog diff --git a/.node-version b/.node-version index 8ce7030..6fa8dec 100644 --- a/.node-version +++ b/.node-version @@ -1 +1 @@ -20.16.0 +22.13.0 diff --git a/.vscode/settings.json b/.vscode/settings.json index a570123..67a510e 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -4,7 +4,7 @@ ".github/workflows/*", ".forgejo/workflows/*" ], - "https://raw.githubusercontent.com/helm-unittest/helm-unittest/v0.5.2/schema/helm-testsuite.json": [ + "https://raw.githubusercontent.com/helm-unittest/helm-unittest/v0.7.1/schema/helm-testsuite.json": [ "/unittests/**/*.yaml" ] }, diff --git a/Chart.lock b/Chart.lock index b2a0170..27ebaf6 100644 --- a/Chart.lock +++ b/Chart.lock @@ -1,12 +1,12 @@ dependencies: - name: postgresql - repository: oci://registry-1.docker.io/bitnamicharts - version: 15.5.20 + repository: oci://ghcr.io/visualon/bitnamicharts + version: 15.5.38 - name: postgresql-ha - repository: oci://registry-1.docker.io/bitnamicharts - version: 14.2.14 + repository: oci://ghcr.io/visualon/bitnamicharts + version: 14.3.10 - name: redis-cluster - repository: oci://registry-1.docker.io/bitnamicharts - version: 10.2.9 -digest: sha256:1e9d1de99e188fbd7c3eb3305a9ff6e0428313b181b83b9dea1051e5b134de1b -generated: "2024-07-25T12:30:38.908174676Z" + repository: oci://ghcr.io/visualon/bitnamicharts + version: 11.4.0 +digest: sha256:968a09cece8b2b74ef9d0a11c99762a516302bfe6dedcb761b0b73fcfbbd6aa0 +generated: "2025-01-16T10:49:34.426855396Z" diff --git a/Chart.yaml b/Chart.yaml index 43165e1..e3e41cb 100644 --- a/Chart.yaml +++ b/Chart.yaml @@ -3,7 +3,7 @@ name: forgejo description: Forgejo Helm chart for Kubernetes type: application version: 0.0.0 -appVersion: 7.0.6 +appVersion: 7.0.12 icon: https://code.forgejo.org/forgejo/forgejo/raw/branch/forgejo/assets/logo.svg home: https://forgejo.org/ @@ -22,22 +22,24 @@ maintainers: - name: Michael Kriese email: michael.kriese@visualon.de -# Bitnami charts are served from Docker Hub +# Bitnami charts are served from ghcr mirror because of rate limiting on Docker Hub # https://hub.docker.com/u/bitnamicharts # https://blog.bitnami.com/2023/01/bitnami-helm-charts-available-as-oci.html +# https://github.com/bitnami/charts/issues/30853 +# https://code.forgejo.org/forgejo-helm/forgejo-helm/issues/1045 dependencies: # https://github.com/bitnami/charts/blob/main/bitnami/postgresql/Chart.yaml - name: postgresql - repository: oci://registry-1.docker.io/bitnamicharts - version: 15.5.20 + repository: oci://ghcr.io/visualon/bitnamicharts + version: 15.5.38 condition: postgresql.enabled # https://github.com/bitnami/charts/blob/main/bitnami/postgresql-ha/Chart.yaml - name: postgresql-ha - repository: oci://registry-1.docker.io/bitnamicharts - version: 14.2.14 + repository: oci://ghcr.io/visualon/bitnamicharts + version: 14.3.10 condition: postgresql-ha.enabled # https://github.com/bitnami/charts/blob/main/bitnami/redis-cluster/Chart.yaml - name: redis-cluster - repository: oci://registry-1.docker.io/bitnamicharts - version: 10.2.9 + repository: oci://ghcr.io/visualon/bitnamicharts + version: 11.4.0 condition: redis-cluster.enabled diff --git a/README.md b/README.md index a7881a2..2f0a6fe 100644 --- a/README.md +++ b/README.md @@ -46,15 +46,18 @@ - [Init](#init) - [Signing](#signing) - [Gitea](#gitea) + - [`app.ini` overrides](#appini-overrides) - [LivenessProbe](#livenessprobe) - [ReadinessProbe](#readinessprobe) - [StartupProbe](#startupprobe) - - [redis-cluster](#redis-cluster) + - [Redis® Cluster](#redis-cluster) - [PostgreSQL HA](#postgresql-ha) - [PostgreSQL](#postgresql) - [Advanced](#advanced) - [Contributing](#contributing) - [Upgrading](#upgrading) + - [To v7](#to-v7) + - [To v6](#to-v6) [Forgejo](https://forgejo.org/) is a community managed lightweight code hosting solution written in Go. It is published under the MIT license. @@ -1162,11 +1165,11 @@ This section lists major and breaking changes of each Helm Chart version. Please read them carefully to upgrade successfully, especially the change of the **default database backend**! If you miss this, blindly upgrading may delete your Postgres instance and you may lose your data! -### To v7.0.0 +### To v7 The Forgejo docker image is pulled from `code.forgejo.org` instead of `codeberg.org`. -### To v6.0.0 +### To v6 You need Forgejo v7+ to use this Helm Chart version. Use the v5 Helm Chart for Forgejo v1.21. diff --git a/ci/default-values.yaml b/ci/default-values.yaml new file mode 100644 index 0000000..17d51f1 --- /dev/null +++ b/ci/default-values.yaml @@ -0,0 +1,20 @@ +# default values + +# Use mirror +# https://code.forgejo.org/forgejo-helm/forgejo-helm/issues/1045 +global: + security: + allowInsecureImages: true +redis-cluster: + image: + registry: public.ecr.aws +postgresql-ha: + postgresql: + image: + registry: public.ecr.aws + pgpool: + image: + registry: public.ecr.aws +test: + image: + name: code.forgejo.org/oci/busybox diff --git a/ci/default.yml b/ci/default.yml deleted file mode 100644 index d6c93d3..0000000 --- a/ci/default.yml +++ /dev/null @@ -1 +0,0 @@ -# default values diff --git a/ci/dev-values.yml b/ci/dev-values.yaml similarity index 69% rename from ci/dev-values.yml rename to ci/dev-values.yaml index 2747d7c..9ab57c7 100644 --- a/ci/dev-values.yml +++ b/ci/dev-values.yaml @@ -2,10 +2,14 @@ image: registry: codeberg.org +# Use mirror +# https://code.forgejo.org/forgejo-helm/forgejo-helm/issues/1045 +test: + image: + name: code.forgejo.org/oci/busybox + redis-cluster: enabled: false -postgresql: - enabled: false postgresql-ha: enabled: false diff --git a/ci/single-values.yml b/ci/single-values.yaml similarity index 59% rename from ci/single-values.yml rename to ci/single-values.yaml index 46ea966..578a267 100644 --- a/ci/single-values.yml +++ b/ci/single-values.yaml @@ -1,10 +1,22 @@ +# Use mirror +# https://code.forgejo.org/forgejo-helm/forgejo-helm/issues/1045 +global: + security: + allowInsecureImages: true +test: + image: + name: code.forgejo.org/oci/busybox + redis-cluster: enabled: false -postgresql: - enabled: true postgresql-ha: enabled: false +postgresql: + enabled: true + image: + registry: public.ecr.aws # Use mirror + persistence: enabled: true diff --git a/ci/v8-test.yml b/ci/v7-test-values.yaml similarity index 63% rename from ci/v8-test.yml rename to ci/v7-test-values.yaml index 87b8dd7..a2a3622 100644 --- a/ci/v8-test.yml +++ b/ci/v7-test-values.yaml @@ -1,12 +1,16 @@ image: registry: codeberg.org repository: forgejo-experimental/forgejo - tag: 8.0-test@sha256:40e945bef50f975dfece6e4effbf03abe56c2f165d8f932b46e60d68dc6bd023 + tag: 7.0-test # don't pin, manifests can be missing + +# Use mirror +# https://code.forgejo.org/forgejo-helm/forgejo-helm/issues/1045 +test: + image: + name: code.forgejo.org/oci/busybox redis-cluster: enabled: false -postgresql: - enabled: false postgresql-ha: enabled: false diff --git a/ci/v7-test.yml b/ci/v7-test.yml deleted file mode 100644 index 4f1179d..0000000 --- a/ci/v7-test.yml +++ /dev/null @@ -1,25 +0,0 @@ -image: - registry: codeberg.org - repository: forgejo-experimental/forgejo - tag: 7.0-test@sha256:824921b3a518b5a160f891fd13efd2591ddfe65592aee68e829198b5a35564de - -redis-cluster: - enabled: false -postgresql: - enabled: false -postgresql-ha: - enabled: false - -persistence: - enabled: false - -gitea: - config: - database: - DB_TYPE: sqlite3 - session: - PROVIDER: memory - cache: - ADAPTER: memory - queue: - TYPE: level diff --git a/ci/v9-test.yml b/ci/v9-test.yml deleted file mode 100644 index be9a678..0000000 --- a/ci/v9-test.yml +++ /dev/null @@ -1,25 +0,0 @@ -image: - registry: codeberg.org - repository: forgejo-experimental/forgejo - tag: 9.0-test@sha256:03b187b47c9c4dab681a10527ea65448cde53b80bf56ca0e8455ee20319cba2f - -redis-cluster: - enabled: false -postgresql: - enabled: false -postgresql-ha: - enabled: false - -persistence: - enabled: false - -gitea: - config: - database: - DB_TYPE: sqlite3 - session: - PROVIDER: memory - cache: - ADAPTER: memory - queue: - TYPE: level diff --git a/package.json b/package.json index 8f274e0..4bc8ee8 100644 --- a/package.json +++ b/package.json @@ -18,12 +18,12 @@ "clipanion": "3.2.1", "conventional-changelog-conventionalcommits": "8.0.0", "conventional-changelog-core": "8.0.0", - "husky": "9.1.4", - "lint-staged": "15.2.7", - "markdownlint-cli": "0.41.0", - "prettier": "3.3.3" + "husky": "9.1.7", + "lint-staged": "15.4.1", + "markdownlint-cli": "0.43.0", + "prettier": "3.4.2" }, - "packageManager": "pnpm@9.6.0", + "packageManager": "pnpm@9.15.4", "engines": { "node": "^18.12.0 || >=20.9.0", "pnpm": "^9.0.0" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b35617e..09b3a8e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -21,17 +21,17 @@ importers: specifier: 8.0.0 version: 8.0.0(conventional-commits-filter@4.0.0) husky: - specifier: 9.1.4 - version: 9.1.4 + specifier: 9.1.7 + version: 9.1.7 lint-staged: - specifier: 15.2.7 - version: 15.2.7 + specifier: 15.4.1 + version: 15.4.1 markdownlint-cli: - specifier: 0.41.0 - version: 0.41.0 + specifier: 0.43.0 + version: 0.43.0 prettier: - specifier: 3.3.3 - version: 3.3.3 + specifier: 3.4.2 + version: 3.4.2 packages: @@ -71,10 +71,6 @@ packages: resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} - '@pkgjs/parseargs@0.11.0': - resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} - engines: {node: '>=14'} - '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -84,9 +80,9 @@ packages: add-stream@1.0.0: resolution: {integrity: sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==} - ansi-escapes@6.2.0: - resolution: {integrity: sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw==} - engines: {node: '>=14.16'} + ansi-escapes@7.0.0: + resolution: {integrity: sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==} + engines: {node: '>=18'} ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} @@ -131,13 +127,13 @@ packages: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} engines: {node: '>=4'} - chalk@5.3.0: - resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} + chalk@5.4.1: + resolution: {integrity: sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - cli-cursor@4.0.0: - resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + cli-cursor@5.0.0: + resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==} + engines: {node: '>=18'} cli-truncate@4.0.0: resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==} @@ -212,8 +208,8 @@ packages: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} - debug@4.3.4: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + debug@4.4.0: + resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} engines: {node: '>=6.0'} peerDependencies: supports-color: '*' @@ -249,6 +245,10 @@ packages: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} + environment@1.1.0: + resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==} + engines: {node: '>=18'} + escape-string-regexp@1.0.5: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} @@ -282,10 +282,6 @@ packages: resolution: {integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==} engines: {node: '>=18'} - get-stdin@9.0.0: - resolution: {integrity: sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==} - engines: {node: '>=12'} - get-stream@8.0.1: resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} engines: {node: '>=16'} @@ -300,9 +296,9 @@ packages: engines: {node: '>=18'} hasBin: true - glob@10.4.1: - resolution: {integrity: sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==} - engines: {node: '>=16 || 14 >=14.18'} + glob@11.0.0: + resolution: {integrity: sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==} + engines: {node: 20 || >=22} hasBin: true glob@7.2.3: @@ -330,13 +326,13 @@ packages: resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} engines: {node: '>=16.17.0'} - husky@9.1.4: - resolution: {integrity: sha512-bho94YyReb4JV7LYWRWxZ/xr6TtOTt8cMfmQ39MQYJ7f/YE268s3GdghGwi+y4zAeqewE5zYLvuhV0M0ijsDEA==} + husky@9.1.7: + resolution: {integrity: sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==} engines: {node: '>=18'} hasBin: true - ignore@5.3.1: - resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} + ignore@6.0.2: + resolution: {integrity: sha512-InwqeHHN2XpumIkMvpl/DCJVrAHgCsG5+cn1XlnLWGwtZBm8QJfSusItfrwx81CTp5agNZqpKU2J/ccC5nGT4A==} engines: {node: '>= 4'} index-to-position@0.1.2: @@ -384,9 +380,9 @@ packages: isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - jackspeak@3.1.2: - resolution: {integrity: sha512-kWmLKn2tRtfYMF/BakihVVRzBKOxz4gJMiL2Rj91WnAB5TPZumSH99R/Yf1qE1u4uRimvCSJfm6hnxohXeEXjQ==} - engines: {node: '>=14'} + jackspeak@4.0.2: + resolution: {integrity: sha512-bZsjR/iRjl1Nk1UkjGpAzLNfQtzuijhn2g+pbZb98HQ1Gk8vM9hfbxeMBP+M2/UUdwj0RqGG3mlvk2MsAqwvEw==} + engines: {node: 20 || >=22} js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} @@ -395,40 +391,44 @@ packages: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true - jsonc-parser@3.2.1: - resolution: {integrity: sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==} + jsonc-parser@3.3.1: + resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==} jsonpointer@5.0.1: resolution: {integrity: sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==} engines: {node: '>=0.10.0'} - lilconfig@3.1.1: - resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==} + lilconfig@3.1.3: + resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} engines: {node: '>=14'} linkify-it@5.0.0: resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} - lint-staged@15.2.7: - resolution: {integrity: sha512-+FdVbbCZ+yoh7E/RosSdqKJyUM2OEjTciH0TFNkawKgvFp1zbGlEC39RADg+xKBG1R4mhoH2j85myBQZ5wR+lw==} + lint-staged@15.4.1: + resolution: {integrity: sha512-P8yJuVRyLrm5KxCtFx+gjI5Bil+wO7wnTl7C3bXhvtTaAFGirzeB24++D0wGoUwxrUKecNiehemgCob9YL39NA==} engines: {node: '>=18.12.0'} hasBin: true - listr2@8.2.1: - resolution: {integrity: sha512-irTfvpib/rNiD637xeevjO2l3Z5loZmuaRi0L0YE5LfijwVY96oyVn0DFD3o/teAok7nfobMG1THvvcHh/BP6g==} + listr2@8.2.5: + resolution: {integrity: sha512-iyAZCeyD+c1gPyE9qpFu8af0Y+MRtmKOncdGoA2S5EY8iFq99dmmvkNnHiWo+pj0s7yH7l3KPIgee77tKpXPWQ==} engines: {node: '>=18.0.0'} lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - log-update@6.0.0: - resolution: {integrity: sha512-niTvB4gqvtof056rRIrTZvjNYE4rCUzO6X/X+kYjd7WFxXeJ0NwEFnRxX6ehkvv3jTwrXnNdtAak5XYZuIyPFw==} + log-update@6.1.0: + resolution: {integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==} engines: {node: '>=18'} lru-cache@10.2.0: resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==} engines: {node: 14 || >=16.14} + lru-cache@11.0.1: + resolution: {integrity: sha512-CgeuL5uom6j/ZVrg7G/+1IXqRY8JXX4Hghfy5YE0EhoYQWvndP1kufu58cmZLNIDKnRhZrXfdS9urVWx98AipQ==} + engines: {node: 20 || >=22} + lru-cache@6.0.0: resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} engines: {node: '>=10'} @@ -440,17 +440,17 @@ packages: markdown-table@2.0.0: resolution: {integrity: sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A==} - markdownlint-cli@0.41.0: - resolution: {integrity: sha512-kp29tKrMKdn+xonfefjp3a/MsNzAd9c5ke0ydMEI9PR98bOjzglYN4nfMSaIs69msUf1DNkgevAIAPtK2SeX0Q==} + markdownlint-cli@0.43.0: + resolution: {integrity: sha512-6vwurKK4B21eyYzwgX6ph13cZS7hE6LZfcS8QyD722CyxVD2RtAvbZK2p7k+FZbbKORulEuwl+hJaEq1l6/hoQ==} engines: {node: '>=18'} hasBin: true - markdownlint-micromark@0.1.9: - resolution: {integrity: sha512-5hVs/DzAFa8XqYosbEAEg6ok6MF2smDj89ztn9pKkCtdKHVdPQuGMH7frFfYL9mLkvfFe4pTyAMffLbjf3/EyA==} + markdownlint-micromark@0.1.12: + resolution: {integrity: sha512-RlB6EwMGgc0sxcIhOQ2+aq7Zw1V2fBnzbXKGgYK/mVWdT7cz34fteKSwfYeo4rL6+L/q2tyC9QtD/PgZbkdyJQ==} engines: {node: '>=18'} - markdownlint@0.34.0: - resolution: {integrity: sha512-qwGyuyKwjkEMOJ10XN6OTKNOVYvOIi35RNvDLNxTof5s8UmyGHlCdpngRHoRGNvQVGuxO3BJ7uNSgdeX166WXw==} + markdownlint@0.36.1: + resolution: {integrity: sha512-s73fU2CQN7WCgjhaQUQ8wYESQNzGRNOKDd+3xgVqu8kuTEhmwepd/mxOv1LR2oV046ONrTLBFsM7IoKWNvmy5g==} engines: {node: '>=18'} mdurl@2.0.0: @@ -463,25 +463,25 @@ packages: merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - micromatch@4.0.7: - resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} - mimic-fn@2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} - engines: {node: '>=6'} - mimic-fn@4.0.0: resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} engines: {node: '>=12'} + mimic-function@5.0.1: + resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==} + engines: {node: '>=18'} + + minimatch@10.0.1: + resolution: {integrity: sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==} + engines: {node: 20 || >=22} + minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - minimatch@9.0.4: - resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} - engines: {node: '>=16 || 14 >=14.17'} - minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} @@ -489,8 +489,8 @@ packages: resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} engines: {node: '>=16 || 14 >=14.17'} - ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} @@ -506,14 +506,17 @@ packages: once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - onetime@5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} - engines: {node: '>=6'} - onetime@6.0.0: resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} engines: {node: '>=12'} + onetime@7.0.0: + resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==} + engines: {node: '>=18'} + + package-json-from-dist@1.0.0: + resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==} + parse-json@8.1.0: resolution: {integrity: sha512-rum1bPifK5SSar35Z6EKZuYPJx85pkNaFrxBK3mwdfSJ1/WKbYrjoW/zTPSjRRamfmVX1ACBIdFAO0VRErW/EA==} engines: {node: '>=18'} @@ -530,9 +533,9 @@ packages: resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} engines: {node: '>=12'} - path-scurry@1.11.1: - resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} - engines: {node: '>=16 || 14 >=14.18'} + path-scurry@2.0.0: + resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==} + engines: {node: 20 || >=22} picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} @@ -543,8 +546,8 @@ packages: engines: {node: '>=0.10'} hasBin: true - prettier@3.3.3: - resolution: {integrity: sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==} + prettier@3.4.2: + resolution: {integrity: sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==} engines: {node: '>=14'} hasBin: true @@ -564,12 +567,12 @@ packages: resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==} engines: {node: '>=0.10'} - restore-cursor@4.0.0: - resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + restore-cursor@5.1.0: + resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==} + engines: {node: '>=18'} - rfdc@1.3.1: - resolution: {integrity: sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==} + rfdc@1.4.1: + resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} run-con@1.3.2: resolution: {integrity: sha512-CcfE+mYiTcKEzg0IqS08+efdnH0oJ3zV0wSUFBNrMHMuxCtXvBCLzCJHatwuXDcu/RlhjTziTo/a1ruQik6/Yg==} @@ -588,9 +591,6 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - signal-exit@3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - signal-exit@4.1.0: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} @@ -603,9 +603,9 @@ packages: resolution: {integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==} engines: {node: '>=18'} - smol-toml@1.2.0: - resolution: {integrity: sha512-KObxdQANC/xje3OoatMbSwQf2XAvJ0RbK+4nmQRszFNZptbNRnMWqbLF/zb4sMi9xJ6HNyhWXeuZ9zC/I/XY7w==} - engines: {node: '>= 18', pnpm: '>= 9'} + smol-toml@1.3.1: + resolution: {integrity: sha512-tEYNll18pPKHroYSmLLrksq233j021G0giwW7P3D24jC54pQ5W5BXMsQ/Mvw1OJCmEYDgY+lrzT+3nNUtoNfXQ==} + engines: {node: '>= 18'} source-map@0.6.1: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} @@ -666,10 +666,6 @@ packages: typanion@3.14.0: resolution: {integrity: sha512-ZW/lVMRabETuYCd9O9ZvMhAh8GslSqaUjxmK/JLPCh6l73CvLBiuXswj/+7LdnWOgYsQ130FqLzFz5aGT4I3Ug==} - type-fest@3.13.1: - resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} - engines: {node: '>=14.16'} - type-fest@4.10.2: resolution: {integrity: sha512-anpAG63wSpdEbLwOqH8L84urkL6PiVIov3EMmgIhhThevh9aiMQov+6Btx0wldNcvm4wV+e2/Rt1QdDwKHFbHw==} engines: {node: '>=16'} @@ -720,8 +716,8 @@ packages: engines: {node: '>= 14'} hasBin: true - yaml@2.4.2: - resolution: {integrity: sha512-B3VqDZ+JAg1nZpaEmWtTXUlBneoGx6CPM9b0TENK6aoSu5t73dItudwdgmi6tHlIZZId4dZ9skcAQ2UbcyAeVA==} + yaml@2.6.1: + resolution: {integrity: sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg==} engines: {node: '>= 14'} hasBin: true @@ -767,18 +763,15 @@ snapshots: wrap-ansi: 8.1.0 wrap-ansi-cjs: wrap-ansi@7.0.0 - '@pkgjs/parseargs@0.11.0': - optional: true - '@types/normalize-package-data@2.4.4': {} '@types/semver@7.5.8': {} add-stream@1.0.0: {} - ansi-escapes@6.2.0: + ansi-escapes@7.0.0: dependencies: - type-fest: 3.13.1 + environment: 1.1.0 ansi-regex@5.0.1: {} @@ -819,11 +812,11 @@ snapshots: escape-string-regexp: 1.0.5 supports-color: 5.5.0 - chalk@5.3.0: {} + chalk@5.4.1: {} - cli-cursor@4.0.0: + cli-cursor@5.0.0: dependencies: - restore-cursor: 4.0.0 + restore-cursor: 5.1.0 cli-truncate@4.0.0: dependencies: @@ -903,9 +896,9 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 - debug@4.3.4: + debug@4.4.0: dependencies: - ms: 2.1.2 + ms: 2.1.3 deep-extend@0.6.0: {} @@ -928,6 +921,8 @@ snapshots: entities@4.5.0: {} + environment@1.1.0: {} + escape-string-regexp@1.0.5: {} eventemitter3@5.0.1: {} @@ -961,8 +956,6 @@ snapshots: get-east-asian-width@1.2.0: {} - get-stdin@9.0.0: {} - get-stream@8.0.1: {} git-raw-commits@5.0.0(conventional-commits-filter@4.0.0)(conventional-commits-parser@6.0.0): @@ -981,13 +974,14 @@ snapshots: - conventional-commits-filter - conventional-commits-parser - glob@10.4.1: + glob@11.0.0: dependencies: foreground-child: 3.1.1 - jackspeak: 3.1.2 - minimatch: 9.0.4 + jackspeak: 4.0.2 + minimatch: 10.0.1 minipass: 7.1.2 - path-scurry: 1.11.1 + package-json-from-dist: 1.0.0 + path-scurry: 2.0.0 glob@7.2.3: dependencies: @@ -1019,9 +1013,9 @@ snapshots: human-signals@5.0.0: {} - husky@9.1.4: {} + husky@9.1.7: {} - ignore@5.3.1: {} + ignore@6.0.2: {} index-to-position@0.1.2: {} @@ -1054,11 +1048,9 @@ snapshots: isexe@2.0.0: {} - jackspeak@3.1.2: + jackspeak@4.0.2: dependencies: '@isaacs/cliui': 8.0.2 - optionalDependencies: - '@pkgjs/parseargs': 0.11.0 js-tokens@4.0.0: {} @@ -1066,52 +1058,54 @@ snapshots: dependencies: argparse: 2.0.1 - jsonc-parser@3.2.1: {} + jsonc-parser@3.3.1: {} jsonpointer@5.0.1: {} - lilconfig@3.1.1: {} + lilconfig@3.1.3: {} linkify-it@5.0.0: dependencies: uc.micro: 2.1.0 - lint-staged@15.2.7: + lint-staged@15.4.1: dependencies: - chalk: 5.3.0 + chalk: 5.4.1 commander: 12.1.0 - debug: 4.3.4 + debug: 4.4.0 execa: 8.0.1 - lilconfig: 3.1.1 - listr2: 8.2.1 - micromatch: 4.0.7 + lilconfig: 3.1.3 + listr2: 8.2.5 + micromatch: 4.0.8 pidtree: 0.6.0 string-argv: 0.3.2 - yaml: 2.4.2 + yaml: 2.6.1 transitivePeerDependencies: - supports-color - listr2@8.2.1: + listr2@8.2.5: dependencies: cli-truncate: 4.0.0 colorette: 2.0.20 eventemitter3: 5.0.1 - log-update: 6.0.0 - rfdc: 1.3.1 + log-update: 6.1.0 + rfdc: 1.4.1 wrap-ansi: 9.0.0 lodash@4.17.21: {} - log-update@6.0.0: + log-update@6.1.0: dependencies: - ansi-escapes: 6.2.0 - cli-cursor: 4.0.0 + ansi-escapes: 7.0.0 + cli-cursor: 5.0.0 slice-ansi: 7.1.0 strip-ansi: 7.1.0 wrap-ansi: 9.0.0 lru-cache@10.2.0: {} + lru-cache@11.0.1: {} + lru-cache@6.0.0: dependencies: yallist: 4.0.0 @@ -1129,26 +1123,25 @@ snapshots: dependencies: repeat-string: 1.6.1 - markdownlint-cli@0.41.0: + markdownlint-cli@0.43.0: dependencies: commander: 12.1.0 - get-stdin: 9.0.0 - glob: 10.4.1 - ignore: 5.3.1 + glob: 11.0.0 + ignore: 6.0.2 js-yaml: 4.1.0 - jsonc-parser: 3.2.1 + jsonc-parser: 3.3.1 jsonpointer: 5.0.1 - markdownlint: 0.34.0 - minimatch: 9.0.4 + markdownlint: 0.36.1 + minimatch: 10.0.1 run-con: 1.3.2 - smol-toml: 1.2.0 + smol-toml: 1.3.1 - markdownlint-micromark@0.1.9: {} + markdownlint-micromark@0.1.12: {} - markdownlint@0.34.0: + markdownlint@0.36.1: dependencies: markdown-it: 14.1.0 - markdownlint-micromark: 0.1.9 + markdownlint-micromark: 0.1.12 mdurl@2.0.0: {} @@ -1156,28 +1149,28 @@ snapshots: merge-stream@2.0.0: {} - micromatch@4.0.7: + micromatch@4.0.8: dependencies: braces: 3.0.3 picomatch: 2.3.1 - mimic-fn@2.1.0: {} - mimic-fn@4.0.0: {} + mimic-function@5.0.1: {} + + minimatch@10.0.1: + dependencies: + brace-expansion: 2.0.1 + minimatch@3.1.2: dependencies: brace-expansion: 1.1.11 - minimatch@9.0.4: - dependencies: - brace-expansion: 2.0.1 - minimist@1.2.8: {} minipass@7.1.2: {} - ms@2.1.2: {} + ms@2.1.3: {} neo-async@2.6.2: {} @@ -1196,14 +1189,16 @@ snapshots: dependencies: wrappy: 1.0.2 - onetime@5.1.2: - dependencies: - mimic-fn: 2.1.0 - onetime@6.0.0: dependencies: mimic-fn: 4.0.0 + onetime@7.0.0: + dependencies: + mimic-function: 5.0.1 + + package-json-from-dist@1.0.0: {} + parse-json@8.1.0: dependencies: '@babel/code-frame': 7.23.5 @@ -1216,16 +1211,16 @@ snapshots: path-key@4.0.0: {} - path-scurry@1.11.1: + path-scurry@2.0.0: dependencies: - lru-cache: 10.2.0 + lru-cache: 11.0.1 minipass: 7.1.2 picomatch@2.3.1: {} pidtree@0.6.0: {} - prettier@3.3.3: {} + prettier@3.4.2: {} punycode.js@2.3.1: {} @@ -1245,12 +1240,12 @@ snapshots: repeat-string@1.6.1: {} - restore-cursor@4.0.0: + restore-cursor@5.1.0: dependencies: - onetime: 5.1.2 - signal-exit: 3.0.7 + onetime: 7.0.0 + signal-exit: 4.1.0 - rfdc@1.3.1: {} + rfdc@1.4.1: {} run-con@1.3.2: dependencies: @@ -1269,8 +1264,6 @@ snapshots: shebang-regex@3.0.0: {} - signal-exit@3.0.7: {} - signal-exit@4.1.0: {} slice-ansi@5.0.0: @@ -1283,7 +1276,7 @@ snapshots: ansi-styles: 6.2.1 is-fullwidth-code-point: 5.0.0 - smol-toml@1.2.0: {} + smol-toml@1.3.1: {} source-map@0.6.1: {} @@ -1343,8 +1336,6 @@ snapshots: typanion@3.14.0: {} - type-fest@3.13.1: {} - type-fest@4.10.2: {} uc.micro@2.1.0: {} @@ -1389,4 +1380,4 @@ snapshots: yaml@2.4.1: {} - yaml@2.4.2: {} + yaml@2.6.1: {} diff --git a/renovate.json b/renovate.json index 0f47ba6..ac609ad 100644 --- a/renovate.json +++ b/renovate.json @@ -1,6 +1,9 @@ { "$schema": "https://docs.renovatebot.com/renovate-schema.json", - "extends": ["forgejo-contrib/forgejo-renovate//base.json"], + "extends": [ + "forgejo-contrib/forgejo-renovate//base.json", + "github>visualon/renovate-config//k3s.json" + ], "assignees": ["viceice"], "baseBranches": ["main", "/^maint\\/.+/"], "packageRules": [ @@ -67,13 +70,13 @@ "automerge": true }, { - "description": "Separate minor and patch updates for kindest", - "matchPackageNames": ["kindest/node"], + "description": "Separate minor and patch updates for k3s", + "matchPackageNames": ["k3s-io/k3s"], "separateMinorPatch": true }, { - "description": "Require approval and no automerge for kindest major and minor updates", - "matchPackageNames": ["kindest/node"], + "description": "Require approval and no automerge for k3s major and minor updates", + "matchPackageNames": ["k3s-io/k3s"], "matchUpdateTypes": ["major", "minor"], "dependencyDashboardApproval": true, "automerge": false @@ -122,16 +125,15 @@ }, { "customType": "regex", - "description": "Update kindest kubernetes references", + "description": "Update k3s kubernetes references", "fileMatch": ["^\\.forgejo/workflows/[^/]+\\.ya?ml$"], - "matchStrings": [ - " +- (?v\\d+\\.\\d+\\.\\d+) # renovate: kindest\\n" - ], - "depNameTemplate": "kindest/node", - "datasourceTemplate": "docker" + "matchStrings": [" +- (?.+?) # renovate: k3s\\n"], + "depNameTemplate": "k3s", + "packageNameTemplate": "k3s-io/k3s", + "datasourceTemplate": "github-releases" } ], "helm-values": { - "fileMatch": ["^ci/.+\\.yml$"] + "fileMatch": ["^ci/.+\\.ya?ml$"] } } diff --git a/templates/_helpers.tpl b/templates/_helpers.tpl index 30ee3b9..4f7bcdc 100644 --- a/templates/_helpers.tpl +++ b/templates/_helpers.tpl @@ -32,6 +32,14 @@ Create chart name and version as used by the chart label. {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} {{- end -}} +{{/* +Get version from .Values.image.tag or Chart.AppVersion. +Trim optional docker digest. +*/}} +{{- define "gitea.version" -}} +{{- regexReplaceAll "@.+" (.Values.image.tag | default .Chart.AppVersion | toString) "" -}} +{{- end -}} + {{/* Create image name and tag used by the deployment. */}} @@ -87,8 +95,8 @@ Common labels helm.sh/chart: {{ include "gitea.chart" . }} app: {{ include "gitea.name" . }} {{ include "gitea.selectorLabels" . }} -app.kubernetes.io/version: {{ .Values.image.tag | default .Chart.AppVersion | quote }} -version: {{ .Values.image.tag | default .Chart.AppVersion | quote }} +app.kubernetes.io/version: {{ include "gitea.version" . | quote }} +version: {{ include "gitea.version" . | quote }} app.kubernetes.io/managed-by: {{ .Release.Service }} {{- end -}} diff --git a/tools/changelog.mjs b/tools/changelog.mjs index 1336934..0fe6c09 100644 --- a/tools/changelog.mjs +++ b/tools/changelog.mjs @@ -1,67 +1,12 @@ -import conventionalChangelogCore from 'conventional-changelog-core'; -import conventionalChangelogPreset from 'conventional-changelog-conventionalcommits'; -import fs from 'node:fs'; +import { getChangelog } from './changelog/util.js'; -const config = conventionalChangelogPreset({ - types: [ - { - type: 'feat', - section: 'Features', - }, - { - type: 'fix', - section: 'Bug Fixes', - }, - { - type: 'perf', - section: 'Performance Improvements', - }, - { - type: 'revert', - section: 'Reverts', - }, - { - type: 'docs', - section: 'Documentation', - }, - { - type: 'style', - section: 'Styles', - }, - { - type: 'refactor', - section: 'Code Refactoring', - }, - { - type: 'test', - section: 'Tests', - }, - { - type: 'build', - section: 'Build System', - }, - { - type: 'ci', - section: 'Continuous Integration', - }, - { - type: 'chore', - section: 'Miscellaneous Chores', - }, - ], -}); +const stream = getChangelog(!!process.argv[2]).setEncoding('utf8'); -const file = process.argv[3] - ? fs.createWriteStream(process.argv[3]) - : process.stdout; +const changes = (await stream.toArray()).join(''); -conventionalChangelogCore( - { - config, - releaseCount: 2, - }, - { version: process.argv[2], linkCompare: false }, - undefined, - undefined, - { headerPartial: '' }, -).pipe(file); +if (!changes.length) { + console.error('No changelog found'); + process.exit(1); +} + +process.stdout.write(changes); diff --git a/tools/changelog/util.js b/tools/changelog/util.js index 6883d54..bbbe366 100644 --- a/tools/changelog/util.js +++ b/tools/changelog/util.js @@ -56,17 +56,16 @@ export const config = conventionalChangelogPreset({ /** * - * @param {string} version - * @param {boolean} onTag + * @param {boolean|undefined} onTag * @returns */ -export function getChangelog(version, onTag) { +export function getChangelog(onTag = false) { return conventionalChangelogCore( { config, releaseCount: onTag ? 2 : 1, }, - { version, linkCompare: false }, + undefined, undefined, undefined, { headerPartial: '' }, diff --git a/tools/forgejo-release.js b/tools/forgejo-release.js index fe0f9bc..bdbe8e2 100644 --- a/tools/forgejo-release.js +++ b/tools/forgejo-release.js @@ -68,7 +68,7 @@ class GiteaReleaseCommand extends Command { return 1; } - const stream = getChangelog(tag, true).setEncoding('utf8'); + const stream = getChangelog(true).setEncoding('utf8'); const changes = (await stream.toArray()).join(''); this.context.stdout.write(`Creating release ${tag}.\n`);