diff --git a/.github/actions-lock.txt b/.github/actions-lock.txt
index a75dfd4a3f..04b1cbfb2c 100644
--- a/.github/actions-lock.txt
+++ b/.github/actions-lock.txt
@@ -3,25 +3,25 @@
9f2b534bea27e8ec2dda7c1d772a664b block-merge-eol.yml
acad44f3e99b665897766ce90374dd03 block-merge-freeze.yml
19ab9c47c8d96de93f37fab242c398cc block-unconventional-commits.yml
-7f15fef2fde87aae0eb8386ded489372 command-compile.yml
-c28a001f0829d2c165b9c70b423f0fac cypress.yml
-e6351c608939c31ae1e32923aa82aa10 dependabot-approve-merge.yml
+87f8d9641dd087995de99f3da38ab23d command-compile.yml
+7f6d137e14e21b93c4c779a983cec3e6 cypress.yml
+c1476a553c3223e70e49de980f22315e dependabot-approve-merge.yml
2581a67c5bcdcd570427e6d51db767d7 fixup.yml
-dc0ae733f35c60274937c2647c027d46 lint-eslint.yml
+89736ea5a0440c90b73f5c722a456073 lint-eslint.yml
79006ab196f5664fc444e63645cfd8a7 lint-php-cs.yml
300be6a756abda800e40850918f2d964 lint-php.yml
-ab3a506506b1d7c1cea9593ecfd84366 lint-stylelint.yml
-d5f511793e785e83842609afc0317b24 node-test.yml
+69ab1f99e6b290ca48c6ad916fd567cd lint-stylelint.yml
+7cf9381a66a8853f634cf52a7da4bb3b node-test.yml
03759c9dc0fa748cb927b9f9cadf2925 node.yml
-0dc931ec237a235370e224282608b20e npm-audit-fix.yml
+9cd1e572898a8118b6df3fc47eeb3b8a npm-audit-fix.yml
3cacf28a710b387e83d3858af40b7ffe phpunit-mysql.yml
f89c18551d6a29af9bca63a0fd30a039 phpunit-oci.yml
12a43f55ac6aedc321b62e00f9d864f0 phpunit-pgsql.yml
ba5a538fea1a9e53dfcbeb53b83ea6fa phpunit-sqlite.yml
-aaa395a26591445ccf4c8196d7f01ee7 pr-feedback.yml
+2639f2b96989a4fcbb441ca8f1fecb2f pr-feedback.yml
4f1080b33778a956a08efc7a41a11994 psalm.yml
2dbec18233063b42f4d8e03bbb43671c reuse.yml
-a3440826636c0fd7c2d20b1de50363da update-nextcloud-ocp-approve-merge.yml
-1919e2ff468e875aeeae5fd088d4ce1f update-nextcloud-ocp.yml
+abcb8206c3f6c5a9dc86cccf57846bfc update-nextcloud-ocp-approve-merge.yml
+8ce35c51ee3d9cc735faab60c5d6f350 update-nextcloud-ocp.yml
22604c31b526de270a080eb19967a638 update-stable-titles.yml
-ab958fa2b07234fceab6b6d836fb7f19 npm-build.yml
+deb0d5cd79d29e8b73f689be32b4108d npm-build.yml
diff --git a/.github/workflows/command-compile.yml b/.github/workflows/command-compile.yml
index 3b33c04ada..a6809f7e91 100644
--- a/.github/workflows/command-compile.yml
+++ b/.github/workflows/command-compile.yml
@@ -116,20 +116,17 @@ jobs:
git config --local user.name 'nextcloud-command'
- name: Read package.json node and npm engines version
- uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
+ uses: nextcloud-libraries/parse-package-engines-action@122ae05d4257008180a514e1ddeb0c1b9d094bdd # v0.1.0
id: package-engines-versions
- with:
- fallbackNode: '^24'
- fallbackNpm: '^11.3'
- - name: Set up node ${{ steps.package-engines-versions.outputs.nodeVersion }}
+ - name: Set up node ${{ steps.package-engines-versions.outputs.node-version }}
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
- node-version: ${{ steps.package-engines-versions.outputs.nodeVersion }}
+ node-version: ${{ steps.package-engines-versions.outputs.node-version }}
cache: npm
- - name: Set up npm ${{ steps.package-engines-versions.outputs.npmVersion }}
- run: npm i -g 'npm@${{ steps.package-engines-versions.outputs.npmVersion }}'
+ - name: Set up npm ${{ steps.package-engines-versions.outputs.package-manager-version }}
+ run: npm i -g 'npm@${{ steps.package-engines-versions.outputs.package-manager-version }}'
- name: Rebase to ${{ needs.init.outputs.base_ref }}
if: ${{ contains(needs.init.outputs.arg1, 'rebase') }}
diff --git a/.github/workflows/cypress.yml b/.github/workflows/cypress.yml
index 18f08ac1ff..9b05c29f1b 100644
--- a/.github/workflows/cypress.yml
+++ b/.github/workflows/cypress.yml
@@ -32,8 +32,8 @@ jobs:
init:
runs-on: ubuntu-latest
outputs:
- nodeVersion: ${{ steps.versions.outputs.nodeVersion }}
- npmVersion: ${{ steps.versions.outputs.npmVersion }}
+ nodeVersion: ${{ steps.versions.outputs.node-version }}
+ npmVersion: ${{ steps.versions.outputs.package-manager-version }}
env:
PUPPETEER_SKIP_DOWNLOAD: true
@@ -63,19 +63,16 @@ jobs:
composer-options: '--no-dev'
- name: Read package.json node and npm engines version
- uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
+ uses: nextcloud-libraries/parse-package-engines-action@122ae05d4257008180a514e1ddeb0c1b9d094bdd # v0.1.0
id: versions
- with:
- fallbackNode: '^24'
- fallbackNpm: '^11.3'
- - name: Set up node ${{ steps.versions.outputs.nodeVersion }}
+ - name: Set up node ${{ steps.versions.outputs.node-version }}
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
- node-version: ${{ steps.versions.outputs.nodeVersion }}
+ node-version: ${{ steps.versions.outputs.node-version }}
- - name: Set up npm ${{ steps.versions.outputs.npmVersion }}
- run: npm i -g 'npm@${{ steps.versions.outputs.npmVersion }}'
+ - name: Set up npm ${{ steps.versions.outputs.package-manager-version }}
+ run: npm i -g 'npm@${{ steps.versions.outputs.package-manager-version }}'
- name: Install node dependencies & build app
run: |
@@ -118,7 +115,7 @@ jobs:
run: npm i -g 'npm@${{ needs.init.outputs.npmVersion }}'
- name: Run ${{ matrix.containers == 'component' && 'component' || 'E2E' }} cypress tests
- uses: cypress-io/github-action@09090944bd8aaa2a517cefb6e38bf1aae336b42b # v7.4.3
+ uses: cypress-io/github-action@c541a95ea92d9239347a2355f2e895cd4b3f8060 # v7.4.6
with:
record: ${{ secrets.CYPRESS_RECORD_KEY && true }}
parallel: ${{ secrets.CYPRESS_RECORD_KEY && true }}
diff --git a/.github/workflows/dependabot-approve-merge.yml b/.github/workflows/dependabot-approve-merge.yml
index 76340acb52..eaa1e9f287 100644
--- a/.github/workflows/dependabot-approve-merge.yml
+++ b/.github/workflows/dependabot-approve-merge.yml
@@ -9,7 +9,7 @@
name: Auto approve Dependabot PRs
on:
- pull_request_target: # zizmor: ignore[dangerous-triggers]
+ pull_request:
branches:
- main
- master
diff --git a/.github/workflows/lint-eslint.yml b/.github/workflows/lint-eslint.yml
index 5ad2d20e5e..43ef34c380 100644
--- a/.github/workflows/lint-eslint.yml
+++ b/.github/workflows/lint-eslint.yml
@@ -61,19 +61,16 @@ jobs:
persist-credentials: false
- name: Read package.json node and npm engines version
- uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
+ uses: nextcloud-libraries/parse-package-engines-action@122ae05d4257008180a514e1ddeb0c1b9d094bdd # v0.1.0
id: versions
- with:
- fallbackNode: '^24'
- fallbackNpm: '^11.3'
- - name: Set up node ${{ steps.versions.outputs.nodeVersion }}
+ - name: Set up node ${{ steps.versions.outputs.node-version }}
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
- node-version: ${{ steps.versions.outputs.nodeVersion }}
+ node-version: ${{ steps.versions.outputs.node-version }}
- - name: Set up npm ${{ steps.versions.outputs.npmVersion }}
- run: npm i -g 'npm@${{ steps.versions.outputs.npmVersion }}'
+ - name: Set up npm ${{ steps.versions.outputs.package-manager-version }}
+ run: npm i -g 'npm@${{ steps.versions.outputs.package-manager-version }}'
- name: Install dependencies
env:
diff --git a/.github/workflows/lint-stylelint.yml b/.github/workflows/lint-stylelint.yml
index e4b26b5858..f648d4135e 100644
--- a/.github/workflows/lint-stylelint.yml
+++ b/.github/workflows/lint-stylelint.yml
@@ -30,19 +30,16 @@ jobs:
persist-credentials: false
- name: Read package.json node and npm engines version
- uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
+ uses: nextcloud-libraries/parse-package-engines-action@122ae05d4257008180a514e1ddeb0c1b9d094bdd # v0.1.0
id: versions
- with:
- fallbackNode: '^24'
- fallbackNpm: '^11.3'
- - name: Set up node ${{ steps.versions.outputs.nodeVersion }}
+ - name: Set up node ${{ steps.versions.outputs.node-version }}
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
- node-version: ${{ steps.versions.outputs.nodeVersion }}
+ node-version: ${{ steps.versions.outputs.node-version }}
- - name: Set up npm ${{ steps.versions.outputs.npmVersion }}
- run: npm i -g 'npm@${{ steps.versions.outputs.npmVersion }}'
+ - name: Set up npm ${{ steps.versions.outputs.package-manager-version }}
+ run: npm i -g 'npm@${{ steps.versions.outputs.package-manager-version }}'
- name: Install dependencies
env:
diff --git a/.github/workflows/node-test.yml b/.github/workflows/node-test.yml
index 1b74d3e4ed..279e84f0f9 100644
--- a/.github/workflows/node-test.yml
+++ b/.github/workflows/node-test.yml
@@ -65,19 +65,16 @@ jobs:
persist-credentials: false
- name: Read package.json node and npm engines version
- uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
+ uses: nextcloud-libraries/parse-package-engines-action@122ae05d4257008180a514e1ddeb0c1b9d094bdd # v0.1.0
id: versions
- with:
- fallbackNode: '^24'
- fallbackNpm: '^11.3'
- - name: Set up node ${{ steps.versions.outputs.nodeVersion }}
+ - name: Set up node ${{ steps.versions.outputs.node-version }}
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
- node-version: ${{ steps.versions.outputs.nodeVersion }}
+ node-version: ${{ steps.versions.outputs.node-version }}
- - name: Set up npm ${{ steps.versions.outputs.npmVersion }}
- run: npm i -g 'npm@${{ steps.versions.outputs.npmVersion }}'
+ - name: Set up npm ${{ steps.versions.outputs.package-manager-version }}
+ run: npm i -g 'npm@${{ steps.versions.outputs.package-manager-version }}'
- name: Install dependencies & build
env:
@@ -93,7 +90,7 @@ jobs:
run: npm run test:coverage --if-present
- name: Collect coverage
- uses: codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f # v7.0.0
+ uses: codecov/codecov-action@303a32d7a59b442fa8d48b6a1cc6825c09c847a5 # v7.1.1
with:
files: ./coverage/lcov.info
diff --git a/.github/workflows/npm-audit-fix.yml b/.github/workflows/npm-audit-fix.yml
index fd84e64a3e..338e5f5baf 100644
--- a/.github/workflows/npm-audit-fix.yml
+++ b/.github/workflows/npm-audit-fix.yml
@@ -15,12 +15,17 @@ on:
- cron: '30 2 * * 0'
permissions:
- contents: read
+ contents: write
+ pull-requests: write
jobs:
build:
runs-on: ubuntu-latest
+ env:
+ # env variable for maintainers: 'false' disables auto-merge for these pull requests
+ AUTOMERGE: true
+
strategy:
fail-fast: false
matrix:
@@ -29,7 +34,6 @@ jobs:
- 'stable35'
- 'stable34'
- 'stable33'
- - 'stable32'
name: npm-audit-fix-${{ matrix.branches }}
@@ -43,19 +47,16 @@ jobs:
continue-on-error: true
- name: Read package.json node and npm engines version
- uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
+ uses: nextcloud-libraries/parse-package-engines-action@122ae05d4257008180a514e1ddeb0c1b9d094bdd # v0.1.0
id: versions
- with:
- fallbackNode: '^24'
- fallbackNpm: '^11.3'
- - name: Set up node ${{ steps.versions.outputs.nodeVersion }}
+ - name: Set up node ${{ steps.versions.outputs.node-version }}
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
- node-version: ${{ steps.versions.outputs.nodeVersion }}
+ node-version: ${{ steps.versions.outputs.node-version }}
- - name: Set up npm ${{ steps.versions.outputs.npmVersion }}
- run: npm i -g 'npm@${{ steps.versions.outputs.npmVersion }}'
+ - name: Set up npm ${{ steps.versions.outputs.package-manager-version }}
+ run: npm i -g 'npm@${{ steps.versions.outputs.package-manager-version }}'
- name: Fix npm audit
id: npm-audit
@@ -70,6 +71,7 @@ jobs:
npm run build --if-present
- name: Create Pull Request
+ id: create-pull-request
if: steps.checkout.outcome == 'success'
uses: peter-evans/create-pull-request@5f6978faf089d4d20b00c7766989d076bb2fc7f1 # v8.1.1
with:
@@ -84,3 +86,19 @@ jobs:
labels: |
dependencies
3. to review
+
+ # Approve using the default GITHUB_TOKEN, as the PR itself was created
+ # using COMMAND_BOT_PAT and GitHub does not allow an account to approve its own PR
+ - name: GitHub actions bot approve
+ if: steps.create-pull-request.outputs.pull-request-operation != 'none'
+ run: gh pr review --approve "$PR_URL"
+ env:
+ PR_URL: ${{ steps.create-pull-request.outputs.pull-request-url }}
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+
+ - name: Enable auto merge
+ if: steps.create-pull-request.outputs.pull-request-operation != 'none' && fromJSON(env.AUTOMERGE)
+ uses: peter-evans/enable-pull-request-automerge@a660677d5469627102a1c1e11409dd063606628d # v3.0.0
+ with:
+ token: ${{ secrets.GITHUB_TOKEN }}
+ pull-request-number: ${{ steps.create-pull-request.outputs.pull-request-number }}
diff --git a/.github/workflows/npm-build.yml b/.github/workflows/npm-build.yml
index c6085726c2..f81723bd19 100644
--- a/.github/workflows/npm-build.yml
+++ b/.github/workflows/npm-build.yml
@@ -58,19 +58,16 @@ jobs:
persist-credentials: false
- name: Read package.json node and npm engines version
- uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
+ uses: nextcloud-libraries/parse-package-engines-action@122ae05d4257008180a514e1ddeb0c1b9d094bdd # v0.1.0
id: versions
- with:
- fallbackNode: '^24'
- fallbackNpm: '^11.3'
- - name: Set up node ${{ steps.versions.outputs.nodeVersion }}
+ - name: Set up node ${{ steps.versions.outputs.node-version }}
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
- node-version: ${{ steps.versions.outputs.nodeVersion }}
+ node-version: ${{ steps.versions.outputs.node-version }}
- - name: Set up npm ${{ steps.versions.outputs.npmVersion }}
- run: npm i -g 'npm@${{ steps.versions.outputs.npmVersion }}'
+ - name: Set up npm ${{ steps.versions.outputs.package-manager-version }}
+ run: npm i -g 'npm@${{ steps.versions.outputs.package-manager-version }}'
- name: Validate package-lock.json # See https://github.com/npm/cli/issues/4460
run: |
diff --git a/.github/workflows/pr-feedback.yml b/.github/workflows/pr-feedback.yml
index 1bd9c59ac0..e93d2be9b0 100644
--- a/.github/workflows/pr-feedback.yml
+++ b/.github/workflows/pr-feedback.yml
@@ -36,7 +36,7 @@ jobs:
blocklist=$(curl https://raw.githubusercontent.com/nextcloud/.github/master/non-community-usernames.txt | paste -s -d, -)
echo "blocklist=$blocklist" >> "$GITHUB_OUTPUT"
- - uses: nextcloud-libraries/pr-feedback-action@5227c55be184087d0aef6338bee210d8620b6297 # v1.0.1
+ - uses: nextcloud-libraries/pr-feedback-action@4738cf661995d96df3512409ec17c900a4081d33 # v2.0.0
with:
feedback-message: |
Hello there,
@@ -50,6 +50,6 @@ jobs:
(If you believe you should not receive this message, you can add yourself to the [blocklist](https://github.com/nextcloud/.github/blob/master/non-community-usernames.txt).)
days-before-feedback: 14
- start-date: '2025-06-12'
+ max-days-overdue: 7
exempt-authors: '${{ steps.blocklist.outputs.blocklist }},${{ steps.scrape.outputs.users }}'
exempt-bots: true
diff --git a/.github/workflows/update-nextcloud-ocp-approve-merge.yml b/.github/workflows/update-nextcloud-ocp-approve-merge.yml
deleted file mode 100644
index 88c54da0ab..0000000000
--- a/.github/workflows/update-nextcloud-ocp-approve-merge.yml
+++ /dev/null
@@ -1,59 +0,0 @@
-# This workflow is provided via the organization template repository
-#
-# https://github.com/nextcloud/.github
-# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
-#
-# SPDX-FileCopyrightText: 2023-2024 Nextcloud GmbH and Nextcloud contributors
-# SPDX-License-Identifier: MIT
-
-name: Auto approve nextcloud/ocp
-
-on:
- pull_request_target: # zizmor: ignore[dangerous-triggers]
- branches:
- - main
- - master
- - stable*
-
-permissions:
- contents: read
-
-concurrency:
- group: update-nextcloud-ocp-approve-merge-${{ github.head_ref || github.run_id }}
- cancel-in-progress: true
-
-jobs:
- auto-approve-merge:
- if: github.actor == 'nextcloud-command'
- runs-on: ubuntu-latest-low
- permissions:
- # for auto-approve-action to approve PRs
- pull-requests: write
- # for alexwilson/enable-github-automerge-action to approve PRs
- contents: write
-
- steps:
- - name: Disabled on forks
- if: ${{ github.event.pull_request.head.repo.full_name != github.repository }}
- run: |
- echo 'Can not approve PRs from forks'
- exit 1
-
- - uses: mdecoleman/pr-branch-name@55795d86b4566d300d237883103f052125cc7508 # v3.0.0
- id: branchname
- with:
- repo-token: ${{ secrets.GITHUB_TOKEN }}
-
- - name: GitHub actions bot approve
- if: startsWith(steps.branchname.outputs.branch, 'automated/noid/') && endsWith(steps.branchname.outputs.branch, 'update-nextcloud-ocp')
- run: gh pr review --approve "$PR_URL"
- env:
- PR_URL: ${{ github.event.pull_request.html_url }}
- GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-
- # Enable GitHub auto merge
- - name: Auto merge
- uses: alexwilson/enable-github-automerge-action@2c32e18a76e0726ffe7a573bfff2d42a20885126 # 3.0.0
- if: startsWith(steps.branchname.outputs.branch, 'automated/noid/') && endsWith(steps.branchname.outputs.branch, 'update-nextcloud-ocp')
- with:
- github-token: ${{ secrets.GITHUB_TOKEN }}
diff --git a/.github/workflows/update-nextcloud-ocp.yml b/.github/workflows/update-nextcloud-ocp.yml
index 2d359af494..894bc13a72 100644
--- a/.github/workflows/update-nextcloud-ocp.yml
+++ b/.github/workflows/update-nextcloud-ocp.yml
@@ -14,8 +14,9 @@ on:
- cron: "5 2 * * 0"
permissions:
- contents: read
+ contents: write
issues: write
+ pull-requests: write
jobs:
update-nextcloud-ocp:
@@ -24,6 +25,10 @@ jobs:
# Only allowed to be run on nextcloud repositories
if: ${{ github.repository_owner == 'nextcloud' }}
+ env:
+ # env variable for maintainers: 'false' disables auto-merge for these pull requests
+ AUTOMERGE: true
+
strategy:
fail-fast: false
matrix:
@@ -32,7 +37,6 @@ jobs:
- 'stable35'
- 'stable34'
- 'stable33'
- - 'stable32'
name: update-nextcloud-ocp-${{ matrix.branches }}
@@ -101,6 +105,7 @@ jobs:
body: 'Please check the output of the GitHub action and manually resolve the issues
${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
${{ steps.codeowners.outputs.codeowners }}'
- name: Create Pull Request
+ id: create-pull-request
if: steps.checkout.outcome == 'success'
uses: peter-evans/create-pull-request@5f6978faf089d4d20b00c7766989d076bb2fc7f1 # v8.1.1
with:
@@ -111,13 +116,25 @@ jobs:
signoff: true
branch: 'automated/noid/${{ matrix.branches }}-update-nextcloud-ocp'
title: '[${{ matrix.branches }}] Update nextcloud/ocp dependency'
- add-path: |
- composer.json
- composer.lock
- vendor-bin/nextcloud-ocp/composer.json
- vendor-bin/nextcloud-ocp/composer.lock
+ add-paths: ${{ steps.check_composer_bin.outputs.files_exists == 'true' && 'vendor-bin/nextcloud-ocp/composer.json,vendor-bin/nextcloud-ocp/composer.lock' || 'composer.json,composer.lock' }}
body: |
Auto-generated update of [nextcloud/ocp](https://github.com/nextcloud-deps/ocp/) dependency
labels: |
dependencies
3. to review
+
+ # Approve using the default GITHUB_TOKEN, as the PR itself was created
+ # using COMMAND_BOT_PAT and GitHub does not allow an account to approve its own PR
+ - name: GitHub actions bot approve
+ if: steps.create-pull-request.outputs.pull-request-operation != 'none'
+ run: gh pr review --approve "$PR_URL"
+ env:
+ PR_URL: ${{ steps.create-pull-request.outputs.pull-request-url }}
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+
+ - name: Enable auto merge
+ if: steps.create-pull-request.outputs.pull-request-operation != 'none' && fromJSON(env.AUTOMERGE)
+ uses: peter-evans/enable-pull-request-automerge@a660677d5469627102a1c1e11409dd063606628d # v3.0.0
+ with:
+ token: ${{ secrets.GITHUB_TOKEN }}
+ pull-request-number: ${{ steps.create-pull-request.outputs.pull-request-number }}