From 633f0a54658f0a572de707ce72b340eb08bfeef0 Mon Sep 17 00:00:00 2001 From: "Bernd.Rederlechner@t-systems.com" Date: Mon, 10 Jul 2023 17:09:32 +0200 Subject: [PATCH 01/29] Override upstream Readme in .github --- .github/README.md | 56 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 .github/README.md diff --git a/.github/README.md b/.github/README.md new file mode 100644 index 000000000..76c7b0ac8 --- /dev/null +++ b/.github/README.md @@ -0,0 +1,56 @@ +# user_oidc: Customisation of OpenID app for MagentaCLOUD + +The app extends the standard `user_oidc` Nextcloud app, +see [upstream configuration hints for basic setup](https://github.com/nextcloud/user_oidc/README.md) + +The app is extended by the following features + +## Event-based provisioning (upstream contribution candidate) +The mechanism allows to implement custom puser provisioning logic in a separate Nextcloud app by +registering and handling a attribute change and provisioning event: + +``` +use OCP\AppFramework\App; +use OCP\AppFramework\Bootstrap\IBootContext; +use OCP\AppFramework\Bootstrap\IBootstrap; +use OCP\AppFramework\Bootstrap\IRegistrationContext; + +class Application extends App implements IBootstrap { +... + public function register(IRegistrationContext $context): void { + $context->registerEventListener(AttributeMappedEvent::class, MyUserAttributeListener::class); + $context->registerEventListener(UserAccountChangeEvent::class, MyUserAccountChangeListener::class); + } +... +} +``` +The provisioning handler should return a `OCA\UserOIDC\Event\UserAccountChangeResult` object + +## Telekom-specific bearer token + +Due to historic reason, Telekom bearer tokens have a close to standard structure, but +require special security implementation in detail. The customisation overrides te standard + + +### Requiring web-token libraries +The central configuration branch `nmc/2372-central-setup` automatic merge will frequently fail if composer +upstream + +The fast and easy way to bring it back to sync with upstream is: +``` +git checkout nmc/2372-central-setup +git rebase --onto main nmc/2372-central-setup +# manually take over everything from upstream for composer.lock (TODO: automate that) + +# update web-token dependencies in composer.lock +composer update web-token +``` +It is recommended to leave the version management for all other libraries to upstream +and only update web-token with the dedicated `composer update web-token`. + + +### Configuring an additional Bearer preshared secret with provider +TODO + +### Testing Bearer secrets +TODO \ No newline at end of file From a30a3d72cc77374c75ac2d0691c63d7c1043c3aa Mon Sep 17 00:00:00 2001 From: "Bernd.Rederlechner@t-systems.com" Date: Mon, 10 Jul 2023 17:18:04 +0200 Subject: [PATCH 02/29] Correct some wordings --- .github/README.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/README.md b/.github/README.md index 76c7b0ac8..cc522ede0 100644 --- a/.github/README.md +++ b/.github/README.md @@ -1,9 +1,11 @@ -# user_oidc: Customisation of OpenID app for MagentaCLOUD +# MagentaCLOUD user_oidc + +Customisation of the Nextcloud delivered OpenID connect app for MagentaCLOUD. The app extends the standard `user_oidc` Nextcloud app, -see [upstream configuration hints for basic setup](https://github.com/nextcloud/user_oidc/README.md) +see [upstream configuration hints for basic setup](https://github.com/nextcloud/user_oidc/blob/main/README.md) -The app is extended by the following features +The app is extended by the following features: ## Event-based provisioning (upstream contribution candidate) The mechanism allows to implement custom puser provisioning logic in a separate Nextcloud app by From 50f0cf4c3e182437b324462f0a0f6d77bb9a616f Mon Sep 17 00:00:00 2001 From: "Bernd.Rederlechner@t-systems.com" Date: Tue, 11 Jul 2023 18:06:01 +0200 Subject: [PATCH 03/29] Add automatic phpunit run after assembly --- .github/workflows/nmc-custom-phpunit.yml | 39 ++++++++++++++++++++ .github/workflows/nmc-custom-versions.yml | 43 +++++++++++++++++++++++ 2 files changed, 82 insertions(+) create mode 100644 .github/workflows/nmc-custom-phpunit.yml create mode 100644 .github/workflows/nmc-custom-versions.yml diff --git a/.github/workflows/nmc-custom-phpunit.yml b/.github/workflows/nmc-custom-phpunit.yml new file mode 100644 index 000000000..ab230b4b1 --- /dev/null +++ b/.github/workflows/nmc-custom-phpunit.yml @@ -0,0 +1,39 @@ +### +# SPDX-License-Identifier: AGPL-3.0 +# +# Author: Bernd rederlechner +# +# Assemble a customisation for trunk (no backports) and stable +# (backport xor trunk) +# +# It creates review (user-specific) customisations branches +# - customisation-- +# - customisation-- + +name: MCLOUD phpunit (customisation change) + +### +# The automated unittets cycles are started as soon as a new +# customisation branch is pushed +on: + push: + branches: + - customisation-*master + - customisation-*nmcstable/** + +jobs: + build-custom: + strategy: + fail-fast: false + matrix: + phpversion: ['8.0', '8.1'] + database: ['mysql'] + custombase: [ "main", "nmcstable/25.0.6" ] + uses: nextmcloud/.github/.github/workflows/nmc-custom-app-phpunit.yml@master + with: + assembly: ${{ format('customisation-{0}-{1}', github.actor, matrix.custombase) }} + appname: 'user_oidc' + server-branch: ${{ matrix.custombase }} + phpversion: ${{ matrix.phpversion }} + database: ${{ matrix.database }} + secrets: inherit \ No newline at end of file diff --git a/.github/workflows/nmc-custom-versions.yml b/.github/workflows/nmc-custom-versions.yml new file mode 100644 index 000000000..635791314 --- /dev/null +++ b/.github/workflows/nmc-custom-versions.yml @@ -0,0 +1,43 @@ +### +# SPDX-License-Identifier: AGPL-3.0 +# +# Author: Bernd rederlechner +# +# Assemble a customisation for trunk (no backports) and stable +# (backport xor trunk) +# +# It creates review (user-specific) customisations branches +# - customisation-- +# - customisation-- + +name: MCLOUD custom app versions + +### +# The customisation-* branches are always reassembled if a customisation branch +# is updated or included into a custom PR +on: + workflow_dispatch: + pull_request: + types: + - opened + - reopened + - synchronize + branches: + - master + - main + - trunk + - nmcstable/** + # - stable/** + +jobs: + build-custom: + strategy: + fail-fast: false + matrix: + custombase: [ "main", "nmcstable/25.0.6" ] + uses: nextmcloud/.github/.github/workflows/nmc-custom-assembly.yml@master + with: + trunk: "main" + stable: ${{ matrix.custombase }} + result: ${{ format('customisation-{0}-{1}', github.actor, matrix.custombase) }} + secrets: inherit From 83d64613771eed52f6b4cd45e52958f19894698d Mon Sep 17 00:00:00 2001 From: "Bernd.Rederlechner@t-systems.com" Date: Tue, 11 Jul 2023 18:19:30 +0200 Subject: [PATCH 04/29] Correct trunk name for customisation branch --- .github/workflows/nmc-custom-phpunit.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/nmc-custom-phpunit.yml b/.github/workflows/nmc-custom-phpunit.yml index ab230b4b1..76e047406 100644 --- a/.github/workflows/nmc-custom-phpunit.yml +++ b/.github/workflows/nmc-custom-phpunit.yml @@ -18,8 +18,8 @@ name: MCLOUD phpunit (customisation change) on: push: branches: - - customisation-*master - - customisation-*nmcstable/** + - customisation-*-main + - customisation-*-nmcstable/** jobs: build-custom: From c9727c73f84d06d557b7404f47d517d73f1856bb Mon Sep 17 00:00:00 2001 From: "Bernd.Rederlechner@t-systems.com" Date: Tue, 11 Jul 2023 18:37:51 +0200 Subject: [PATCH 05/29] Debug scheduling on push --- .github/workflows/nmc-custom-phpunit.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/nmc-custom-phpunit.yml b/.github/workflows/nmc-custom-phpunit.yml index 76e047406..1d5426f38 100644 --- a/.github/workflows/nmc-custom-phpunit.yml +++ b/.github/workflows/nmc-custom-phpunit.yml @@ -18,8 +18,8 @@ name: MCLOUD phpunit (customisation change) on: push: branches: - - customisation-*-main - - customisation-*-nmcstable/** + - 'customisation*-main' + - 'customisation*-nmcstable/25.0.6' jobs: build-custom: From 9775679726929c7081d2ad1a9919b021b8cc0703 Mon Sep 17 00:00:00 2001 From: "Bernd.Rederlechner@t-systems.com" Date: Wed, 12 Jul 2023 08:50:24 +0200 Subject: [PATCH 06/29] Include phpunit in versions assembling --- .github/workflows/nmc-custom-phpunit.yml | 39 ----------------------- .github/workflows/nmc-custom-versions.yml | 20 +++++++++++- 2 files changed, 19 insertions(+), 40 deletions(-) delete mode 100644 .github/workflows/nmc-custom-phpunit.yml diff --git a/.github/workflows/nmc-custom-phpunit.yml b/.github/workflows/nmc-custom-phpunit.yml deleted file mode 100644 index 1d5426f38..000000000 --- a/.github/workflows/nmc-custom-phpunit.yml +++ /dev/null @@ -1,39 +0,0 @@ -### -# SPDX-License-Identifier: AGPL-3.0 -# -# Author: Bernd rederlechner -# -# Assemble a customisation for trunk (no backports) and stable -# (backport xor trunk) -# -# It creates review (user-specific) customisations branches -# - customisation-- -# - customisation-- - -name: MCLOUD phpunit (customisation change) - -### -# The automated unittets cycles are started as soon as a new -# customisation branch is pushed -on: - push: - branches: - - 'customisation*-main' - - 'customisation*-nmcstable/25.0.6' - -jobs: - build-custom: - strategy: - fail-fast: false - matrix: - phpversion: ['8.0', '8.1'] - database: ['mysql'] - custombase: [ "main", "nmcstable/25.0.6" ] - uses: nextmcloud/.github/.github/workflows/nmc-custom-app-phpunit.yml@master - with: - assembly: ${{ format('customisation-{0}-{1}', github.actor, matrix.custombase) }} - appname: 'user_oidc' - server-branch: ${{ matrix.custombase }} - phpversion: ${{ matrix.phpversion }} - database: ${{ matrix.database }} - secrets: inherit \ No newline at end of file diff --git a/.github/workflows/nmc-custom-versions.yml b/.github/workflows/nmc-custom-versions.yml index 635791314..6b0c3eb60 100644 --- a/.github/workflows/nmc-custom-versions.yml +++ b/.github/workflows/nmc-custom-versions.yml @@ -30,7 +30,8 @@ on: # - stable/** jobs: - build-custom: + + assemble: strategy: fail-fast: false matrix: @@ -41,3 +42,20 @@ jobs: stable: ${{ matrix.custombase }} result: ${{ format('customisation-{0}-{1}', github.actor, matrix.custombase) }} secrets: inherit + + phpunit: + strategy: + fail-fast: false + matrix: + phpversion: ['8.0', '8.1'] + database: ['mysql'] + custombase: [ "main", "nmcstable/25.0.6" ] + uses: nextmcloud/.github/.github/workflows/nmc-custom-app-phpunit.yml@master + need: assemble + with: + assembly: ${{ format('customisation-{0}-{1}', github.actor, matrix.custombase) }} + appname: 'user_oidc' + server-branch: ${{ matrix.custombase }} + phpversion: ${{ matrix.phpversion }} + database: ${{ matrix.database }} + secrets: inherit \ No newline at end of file From 38e09f364d4146925eb5f097caedeb9fb8b706cd Mon Sep 17 00:00:00 2001 From: "Bernd.Rederlechner@t-systems.com" Date: Wed, 12 Jul 2023 09:08:29 +0200 Subject: [PATCH 07/29] Fix syntax --- .github/workflows/nmc-custom-versions.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/nmc-custom-versions.yml b/.github/workflows/nmc-custom-versions.yml index 6b0c3eb60..ff9767903 100644 --- a/.github/workflows/nmc-custom-versions.yml +++ b/.github/workflows/nmc-custom-versions.yml @@ -57,5 +57,5 @@ jobs: appname: 'user_oidc' server-branch: ${{ matrix.custombase }} phpversion: ${{ matrix.phpversion }} - database: ${{ matrix.database }} + database: ${{ matrix.database }} secrets: inherit \ No newline at end of file From ce03abbc0c54c10abb45896c5e999c4438b23e3b Mon Sep 17 00:00:00 2001 From: "Bernd.Rederlechner@t-systems.com" Date: Wed, 12 Jul 2023 09:16:58 +0200 Subject: [PATCH 08/29] Fix needs syntax --- .github/workflows/nmc-custom-versions.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/nmc-custom-versions.yml b/.github/workflows/nmc-custom-versions.yml index ff9767903..7fa8a8320 100644 --- a/.github/workflows/nmc-custom-versions.yml +++ b/.github/workflows/nmc-custom-versions.yml @@ -51,7 +51,7 @@ jobs: database: ['mysql'] custombase: [ "main", "nmcstable/25.0.6" ] uses: nextmcloud/.github/.github/workflows/nmc-custom-app-phpunit.yml@master - need: assemble + needs: assemble with: assembly: ${{ format('customisation-{0}-{1}', github.actor, matrix.custombase) }} appname: 'user_oidc' From 85bf2f9a13b92e359db67f91616b5cc8fc28d749 Mon Sep 17 00:00:00 2001 From: "Bernd.Rederlechner@t-systems.com" Date: Wed, 12 Jul 2023 12:32:57 +0200 Subject: [PATCH 09/29] Move readme to central setup --- .github/README.md | 58 ----------------------------------------------- 1 file changed, 58 deletions(-) delete mode 100644 .github/README.md diff --git a/.github/README.md b/.github/README.md deleted file mode 100644 index cc522ede0..000000000 --- a/.github/README.md +++ /dev/null @@ -1,58 +0,0 @@ -# MagentaCLOUD user_oidc - -Customisation of the Nextcloud delivered OpenID connect app for MagentaCLOUD. - -The app extends the standard `user_oidc` Nextcloud app, -see [upstream configuration hints for basic setup](https://github.com/nextcloud/user_oidc/blob/main/README.md) - -The app is extended by the following features: - -## Event-based provisioning (upstream contribution candidate) -The mechanism allows to implement custom puser provisioning logic in a separate Nextcloud app by -registering and handling a attribute change and provisioning event: - -``` -use OCP\AppFramework\App; -use OCP\AppFramework\Bootstrap\IBootContext; -use OCP\AppFramework\Bootstrap\IBootstrap; -use OCP\AppFramework\Bootstrap\IRegistrationContext; - -class Application extends App implements IBootstrap { -... - public function register(IRegistrationContext $context): void { - $context->registerEventListener(AttributeMappedEvent::class, MyUserAttributeListener::class); - $context->registerEventListener(UserAccountChangeEvent::class, MyUserAccountChangeListener::class); - } -... -} -``` -The provisioning handler should return a `OCA\UserOIDC\Event\UserAccountChangeResult` object - -## Telekom-specific bearer token - -Due to historic reason, Telekom bearer tokens have a close to standard structure, but -require special security implementation in detail. The customisation overrides te standard - - -### Requiring web-token libraries -The central configuration branch `nmc/2372-central-setup` automatic merge will frequently fail if composer -upstream - -The fast and easy way to bring it back to sync with upstream is: -``` -git checkout nmc/2372-central-setup -git rebase --onto main nmc/2372-central-setup -# manually take over everything from upstream for composer.lock (TODO: automate that) - -# update web-token dependencies in composer.lock -composer update web-token -``` -It is recommended to leave the version management for all other libraries to upstream -and only update web-token with the dedicated `composer update web-token`. - - -### Configuring an additional Bearer preshared secret with provider -TODO - -### Testing Bearer secrets -TODO \ No newline at end of file From 8d822a44443334741ae395ea031295f15cd36d1b Mon Sep 17 00:00:00 2001 From: "Bernd.Rederlechner@t-systems.com" Date: Sat, 19 Aug 2023 08:54:14 +0200 Subject: [PATCH 10/29] Refactor for working fast-fail precheck --- .github/workflows/nmc-custom-release.yml | 58 ++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 .github/workflows/nmc-custom-release.yml diff --git a/.github/workflows/nmc-custom-release.yml b/.github/workflows/nmc-custom-release.yml new file mode 100644 index 000000000..5962a538f --- /dev/null +++ b/.github/workflows/nmc-custom-release.yml @@ -0,0 +1,58 @@ +### +# SPDX-License-Identifier: AGPL-3.0 +# +# Author: Bernd rederlechner +# +# Builds a stable release package based on a release assembly +# customisation-- +# +# As soon as a package is deployed to production, the tag and the branch +# MUST STAY FOR 2 years and not deleted. +# +# Release packages, tags and customisation branches not delivered to production should +# be deleted asap a newer release is available. +# + +name: MCLOUD custom app release + +on: + workflow_dispatch: + inputs: + increment: + description: 'Release increment' + required: true + type: number + branch: + type: choice + description: Branch to build a package from + options: + - main + - stable25 + - stable26 + - stable27 + default: main + +jobs: + check-custom: + uses: nextmcloud/.github/.github/workflows/nmc-app-precond.yml@master + with: + versionbranch: ${{ inputs.branch }} + increment: ${{ inputs.increment }} + secrets: inherit + assemble-custom: + uses: nextmcloud/.github/.github/workflows/nmc-custom-assembly.yml@master + needs: check-custom + with: + trunk: 'main' + stable: ${{ inputs.branch }} + result: ${{ format('customisation-{0}-{1}', inputs.branch, inputs.increment ) }} + secrets: inherit + build-custom: + uses: nextmcloud/.github/.github/workflows/nmc-custom-app-build.yml@master + needs: [ check-custom, assemble-custom ] + with: + appname: ${{ needs.check-custom.outputs.appname }} + assembly: ${{ format('customisation-{0}-{1}', inputs.branch , inputs.increment ) }} + tag: ${{ needs.check-custom.outputs.tag }} + prerelease: ${{ inputs.branch == 'main' && true || false }} + secrets: inherit From 9a3c0370fb1884703e9ca257a78f0fdcf36db6eb Mon Sep 17 00:00:00 2001 From: "Bernd.Rederlechner@t-systems.com" Date: Fri, 1 Sep 2023 12:37:19 +0200 Subject: [PATCH 11/29] Remove obsolete stable versions base in matrix --- .github/workflows/nmc-custom-versions.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/nmc-custom-versions.yml b/.github/workflows/nmc-custom-versions.yml index 7fa8a8320..6d262e273 100644 --- a/.github/workflows/nmc-custom-versions.yml +++ b/.github/workflows/nmc-custom-versions.yml @@ -35,7 +35,7 @@ jobs: strategy: fail-fast: false matrix: - custombase: [ "main", "nmcstable/25.0.6" ] + custombase: [ "main" ] uses: nextmcloud/.github/.github/workflows/nmc-custom-assembly.yml@master with: trunk: "main" From cb09967fcddec713653f9b86283b6a2379954055 Mon Sep 17 00:00:00 2001 From: "Bernd.Rederlechner@t-systems.com" Date: Fri, 1 Sep 2023 19:19:41 +0200 Subject: [PATCH 12/29] Add required composer dependencies programmatically --- ...release.yml => nmc-custom-app-release.yml} | 14 +++- ...rsions.yml => nmc-custom-app-versions.yml} | 15 +++- .../workflows/nmc-custom-oidc-composer.yml | 82 +++++++++++++++++++ 3 files changed, 108 insertions(+), 3 deletions(-) rename .github/workflows/{nmc-custom-release.yml => nmc-custom-app-release.yml} (83%) rename .github/workflows/{nmc-custom-versions.yml => nmc-custom-app-versions.yml} (82%) create mode 100644 .github/workflows/nmc-custom-oidc-composer.yml diff --git a/.github/workflows/nmc-custom-release.yml b/.github/workflows/nmc-custom-app-release.yml similarity index 83% rename from .github/workflows/nmc-custom-release.yml rename to .github/workflows/nmc-custom-app-release.yml index 5962a538f..b34abf189 100644 --- a/.github/workflows/nmc-custom-release.yml +++ b/.github/workflows/nmc-custom-app-release.yml @@ -47,9 +47,21 @@ jobs: stable: ${{ inputs.branch }} result: ${{ format('customisation-{0}-{1}', inputs.branch, inputs.increment ) }} secrets: inherit + + composerdep: + strategy: + fail-fast: false + matrix: + custombase: [ "main" ] + uses: ./.github/workflows/nmc-custom-oidc-composer.yml + needs: assemble-custom + with: + assembly: ${{ format('customisation-{0}-{1}', github.actor, matrix.custombase) }} + secrets: inherit + build-custom: uses: nextmcloud/.github/.github/workflows/nmc-custom-app-build.yml@master - needs: [ check-custom, assemble-custom ] + needs: [ check-custom, composerdep ] with: appname: ${{ needs.check-custom.outputs.appname }} assembly: ${{ format('customisation-{0}-{1}', inputs.branch , inputs.increment ) }} diff --git a/.github/workflows/nmc-custom-versions.yml b/.github/workflows/nmc-custom-app-versions.yml similarity index 82% rename from .github/workflows/nmc-custom-versions.yml rename to .github/workflows/nmc-custom-app-versions.yml index 6d262e273..e18f19412 100644 --- a/.github/workflows/nmc-custom-versions.yml +++ b/.github/workflows/nmc-custom-app-versions.yml @@ -43,15 +43,26 @@ jobs: result: ${{ format('customisation-{0}-{1}', github.actor, matrix.custombase) }} secrets: inherit + composerdep: + strategy: + fail-fast: false + matrix: + custombase: [ "main" ] + uses: ./.github/workflows/nmc-custom-oidc-composer.yml + needs: assemble + with: + assembly: ${{ format('customisation-{0}-{1}', github.actor, matrix.custombase) }} + secrets: inherit + phpunit: strategy: fail-fast: false matrix: phpversion: ['8.0', '8.1'] database: ['mysql'] - custombase: [ "main", "nmcstable/25.0.6" ] + custombase: [ "main" ] uses: nextmcloud/.github/.github/workflows/nmc-custom-app-phpunit.yml@master - needs: assemble + needs: composerdep with: assembly: ${{ format('customisation-{0}-{1}', github.actor, matrix.custombase) }} appname: 'user_oidc' diff --git a/.github/workflows/nmc-custom-oidc-composer.yml b/.github/workflows/nmc-custom-oidc-composer.yml new file mode 100644 index 000000000..474b32575 --- /dev/null +++ b/.github/workflows/nmc-custom-oidc-composer.yml @@ -0,0 +1,82 @@ +### +# SPDX-License-Identifier: AGPL-3.0 +# +# Author: Bernd Rederlechner Date: Fri, 1 Sep 2023 19:33:57 +0200 Subject: [PATCH 13/29] Remove commit push blocker --- .github/workflows/nmc-custom-oidc-composer.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/nmc-custom-oidc-composer.yml b/.github/workflows/nmc-custom-oidc-composer.yml index 474b32575..ca247fbdf 100644 --- a/.github/workflows/nmc-custom-oidc-composer.yml +++ b/.github/workflows/nmc-custom-oidc-composer.yml @@ -45,7 +45,6 @@ jobs: # set user in case commits are needed git config user.name $BUILD_USER git config user.email $BUILD_EMAIL - git remote set-url origin http://no.such.host # install php dependencies - name: Set up php ${{ env.PHP_VERSION }} From aa83c5bcdd7e9e75a6f87446759d43c189f9c9b3 Mon Sep 17 00:00:00 2001 From: "Bernd.Rederlechner@t-systems.com" Date: Mon, 4 Sep 2023 08:49:39 +0200 Subject: [PATCH 14/29] Fix assembly branch name for dependency check --- .github/workflows/nmc-custom-app-release.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/nmc-custom-app-release.yml b/.github/workflows/nmc-custom-app-release.yml index b34abf189..64d287cef 100644 --- a/.github/workflows/nmc-custom-app-release.yml +++ b/.github/workflows/nmc-custom-app-release.yml @@ -51,12 +51,10 @@ jobs: composerdep: strategy: fail-fast: false - matrix: - custombase: [ "main" ] uses: ./.github/workflows/nmc-custom-oidc-composer.yml needs: assemble-custom with: - assembly: ${{ format('customisation-{0}-{1}', github.actor, matrix.custombase) }} + assembly: ${{ format('customisation-{0}-{1}', inputs.branch, inputs.increment) }} secrets: inherit build-custom: From d4702f6e29c333f14b94542796a32d7e99815809 Mon Sep 17 00:00:00 2001 From: Mauro Mura Date: Wed, 29 Oct 2025 07:57:31 +0100 Subject: [PATCH 15/29] Update nmc-custom-oidc-composer.yml --- .github/workflows/nmc-custom-oidc-composer.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/nmc-custom-oidc-composer.yml b/.github/workflows/nmc-custom-oidc-composer.yml index ca247fbdf..d4f2c5273 100644 --- a/.github/workflows/nmc-custom-oidc-composer.yml +++ b/.github/workflows/nmc-custom-oidc-composer.yml @@ -26,7 +26,7 @@ jobs: BUILD_USER: ${{ github.actor }} BUILD_EMAIL: ${{ github.actor }}@users.noreply.github.com BUILD_TOKEN: ${{ secrets.BUILD_TOKEN || secrets.GITHUB_TOKEN }} - PHP_VERSION: ${{ vars.PHP_VERSION || '8.1' }} + PHP_VERSION: ${{ vars.PHP_VERSION || '8.2' }} steps: - name: Fetch custom assembly id: checkout_custom From 01e7a4b0898bf4608d01a84529fb0f8df3d7c5e4 Mon Sep 17 00:00:00 2001 From: memurats Date: Mon, 4 May 2026 15:32:33 +0200 Subject: [PATCH 16/29] update --- .../workflows/nmc-custom-oidc-composer.yml | 53 +++++++++++-------- 1 file changed, 31 insertions(+), 22 deletions(-) diff --git a/.github/workflows/nmc-custom-oidc-composer.yml b/.github/workflows/nmc-custom-oidc-composer.yml index d4f2c5273..d014d43ae 100644 --- a/.github/workflows/nmc-custom-oidc-composer.yml +++ b/.github/workflows/nmc-custom-oidc-composer.yml @@ -1,7 +1,7 @@ ### # SPDX-License-Identifier: AGPL-3.0 # -# Author: Bernd Rederlechner # # user_oidc is (so far) the only app where we add php packages # to Nextcloud standard. We add these commandline based in build @@ -10,7 +10,6 @@ name: MCLOUD custom user_oidc dependencies - on: workflow_call: inputs: @@ -23,16 +22,15 @@ jobs: build-custom: runs-on: ubuntu-latest env: - BUILD_USER: ${{ github.actor }} - BUILD_EMAIL: ${{ github.actor }}@users.noreply.github.com - BUILD_TOKEN: ${{ secrets.BUILD_TOKEN || secrets.GITHUB_TOKEN }} - PHP_VERSION: ${{ vars.PHP_VERSION || '8.2' }} + BUILD_USER: ${{ github.actor }} + BUILD_EMAIL: ${{ github.actor }}@users.noreply.github.com + BUILD_TOKEN: ${{ secrets.BUILD_TOKEN || secrets.GITHUB_TOKEN }} + PHP_VERSION: ${{ vars.PHP_VERSION || '8.2' }} + steps: - name: Fetch custom assembly - id: checkout_custom + id: checkout_custom uses: actions/checkout@v3 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: repository: ${{ github.repository }} ref: ${{ inputs.assembly }} @@ -40,29 +38,28 @@ jobs: token: ${{ env.BUILD_TOKEN }} - name: Prepare GIT modifications - id: prepare_git + id: prepare_git run: | - # set user in case commits are needed - git config user.name $BUILD_USER - git config user.email $BUILD_EMAIL + git config user.name "$BUILD_USER" + git config user.email "$BUILD_EMAIL" - # install php dependencies - name: Set up php ${{ env.PHP_VERSION }} uses: shivammathur/setup-php@v2 with: php-version: ${{ env.PHP_VERSION }} coverage: none - + - name: Check composer.json id: check_composer uses: andstor/file-existence-action@v1 with: files: "./composer.json" - + - name: Install composer JWT dependencies if: steps.check_composer.outputs.files_exists == 'true' run: | - composer require web-token/jwt-core:^2.0 \ + composer require \ + web-token/jwt-core:^2.2 \ web-token/jwt-encryption:^2.2 \ web-token/jwt-signature:^2.2 \ web-token/jwt-encryption-algorithm-aescbc:^2.2 \ @@ -71,11 +68,23 @@ jobs: web-token/jwt-encryption-algorithm-pbes2:^2.2 \ web-token/jwt-signature-algorithm-hmac:^2.2 \ web-token/jwt-signature-algorithm-rsa:^2.2 \ - web-token/jwt-util-ecc:^2.2 + web-token/jwt-util-ecc:^2.2 \ + spomky-labs/aes-key-wrap:^6 \ + --with-all-dependencies - - name: Commit push composer.json/.lock '${{ env.CUSTOM_BRANCH }}' + vendor/bin/mozart compose + composer dump-autoload + + - name: Commit and push dependency changes + if: steps.check_composer.outputs.files_exists == 'true' id: pushcomposerdep run: | - git commit -m "Add jwt-token composer library dependencies" composer.json composer.lock - git push origin $CUSTOM_BRANCH - + git add composer.json composer.lock lib/Vendor lib/autoload + + if git diff --cached --quiet; then + echo "No composer dependency changes to commit." + exit 0 + fi + + git commit -m "Add JWT composer library dependencies" + git push origin HEAD:${{ inputs.assembly }} \ No newline at end of file From 2fc69237360dab400b6e2f15c2fbb3538e2ab5c0 Mon Sep 17 00:00:00 2001 From: memurats Date: Mon, 4 May 2026 16:00:48 +0200 Subject: [PATCH 17/29] fix --- .github/workflows/nmc-custom-oidc-composer.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/nmc-custom-oidc-composer.yml b/.github/workflows/nmc-custom-oidc-composer.yml index d014d43ae..47af37df2 100644 --- a/.github/workflows/nmc-custom-oidc-composer.yml +++ b/.github/workflows/nmc-custom-oidc-composer.yml @@ -78,8 +78,13 @@ jobs: - name: Commit and push dependency changes if: steps.check_composer.outputs.files_exists == 'true' id: pushcomposerdep + - name: Commit and push dependency changes run: | - git add composer.json composer.lock lib/Vendor lib/autoload + git add composer.json composer.lock lib/Vendor + + if [ -d lib/autoload ]; then + git add lib/autoload + fi if git diff --cached --quiet; then echo "No composer dependency changes to commit." From cc7be83f1e23a3ea1687467793fef1aea5ac51a1 Mon Sep 17 00:00:00 2001 From: memurats Date: Mon, 4 May 2026 16:09:02 +0200 Subject: [PATCH 18/29] fix --- .github/workflows/nmc-custom-oidc-composer.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/nmc-custom-oidc-composer.yml b/.github/workflows/nmc-custom-oidc-composer.yml index 47af37df2..c818f8c4f 100644 --- a/.github/workflows/nmc-custom-oidc-composer.yml +++ b/.github/workflows/nmc-custom-oidc-composer.yml @@ -92,4 +92,4 @@ jobs: fi git commit -m "Add JWT composer library dependencies" - git push origin HEAD:${{ inputs.assembly }} \ No newline at end of file + git push origin HEAD:${{ inputs.assembly }} From e52056ff0bd65188f4626a1c7b65c2705258e882 Mon Sep 17 00:00:00 2001 From: memurats Date: Mon, 4 May 2026 16:13:20 +0200 Subject: [PATCH 19/29] fix --- .github/workflows/nmc-custom-oidc-composer.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/nmc-custom-oidc-composer.yml b/.github/workflows/nmc-custom-oidc-composer.yml index c818f8c4f..a10e28dea 100644 --- a/.github/workflows/nmc-custom-oidc-composer.yml +++ b/.github/workflows/nmc-custom-oidc-composer.yml @@ -22,7 +22,7 @@ jobs: build-custom: runs-on: ubuntu-latest env: - BUILD_USER: ${{ github.actor }} + BUILD_USER: ${{ github.actor }} BUILD_EMAIL: ${{ github.actor }}@users.noreply.github.com BUILD_TOKEN: ${{ secrets.BUILD_TOKEN || secrets.GITHUB_TOKEN }} PHP_VERSION: ${{ vars.PHP_VERSION || '8.2' }} @@ -78,7 +78,8 @@ jobs: - name: Commit and push dependency changes if: steps.check_composer.outputs.files_exists == 'true' id: pushcomposerdep - - name: Commit and push dependency changes + env: + ASSEMBLY_BRANCH: ${{ inputs.assembly }} run: | git add composer.json composer.lock lib/Vendor @@ -92,4 +93,4 @@ jobs: fi git commit -m "Add JWT composer library dependencies" - git push origin HEAD:${{ inputs.assembly }} + git push origin HEAD:$ASSEMBLY_BRANCH From eb190b26245c2c370ea366d07849d8f3bea517b6 Mon Sep 17 00:00:00 2001 From: memurats Date: Mon, 4 May 2026 16:20:24 +0200 Subject: [PATCH 20/29] fix --- .github/workflows/nmc-custom-oidc-composer.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/nmc-custom-oidc-composer.yml b/.github/workflows/nmc-custom-oidc-composer.yml index a10e28dea..5b412d722 100644 --- a/.github/workflows/nmc-custom-oidc-composer.yml +++ b/.github/workflows/nmc-custom-oidc-composer.yml @@ -81,10 +81,11 @@ jobs: env: ASSEMBLY_BRANCH: ${{ inputs.assembly }} run: | - git add composer.json composer.lock lib/Vendor + git add composer.json composer.lock + git add -f lib/Vendor if [ -d lib/autoload ]; then - git add lib/autoload + git add -f lib/autoload fi if git diff --cached --quiet; then From 4373758e2586be43c86c9c68969b11ec66b4d41d Mon Sep 17 00:00:00 2001 From: Mauro Mura Date: Wed, 6 May 2026 11:52:12 +0200 Subject: [PATCH 21/29] Refactor GitHub Actions workflow for user_oidc --- .../workflows/nmc-custom-oidc-composer.yml | 59 +++---------------- 1 file changed, 9 insertions(+), 50 deletions(-) diff --git a/.github/workflows/nmc-custom-oidc-composer.yml b/.github/workflows/nmc-custom-oidc-composer.yml index 5b412d722..afe95fcaa 100644 --- a/.github/workflows/nmc-custom-oidc-composer.yml +++ b/.github/workflows/nmc-custom-oidc-composer.yml @@ -3,10 +3,8 @@ # # Author: Bernd Rederlechner # -# user_oidc is (so far) the only app where we add php packages -# to Nextcloud standard. We add these commandline based in build -# to avoid continuous merge conflicts due to "composer.lock" -# merge problems +# user_oidc brings its PHP dependencies via composer.json. +# composer install also runs Mozart via post-install-cmd. name: MCLOUD custom user_oidc dependencies @@ -22,14 +20,11 @@ jobs: build-custom: runs-on: ubuntu-latest env: - BUILD_USER: ${{ github.actor }} - BUILD_EMAIL: ${{ github.actor }}@users.noreply.github.com BUILD_TOKEN: ${{ secrets.BUILD_TOKEN || secrets.GITHUB_TOKEN }} - PHP_VERSION: ${{ vars.PHP_VERSION || '8.2' }} + PHP_VERSION: ${{ vars.PHP_VERSION || '8.1' }} steps: - name: Fetch custom assembly - id: checkout_custom uses: actions/checkout@v3 with: repository: ${{ github.repository }} @@ -37,17 +32,12 @@ jobs: fetch-depth: 0 token: ${{ env.BUILD_TOKEN }} - - name: Prepare GIT modifications - id: prepare_git - run: | - git config user.name "$BUILD_USER" - git config user.email "$BUILD_EMAIL" - - - name: Set up php ${{ env.PHP_VERSION }} + - name: Set up PHP ${{ env.PHP_VERSION }} uses: shivammathur/setup-php@v2 with: php-version: ${{ env.PHP_VERSION }} coverage: none + tools: composer - name: Check composer.json id: check_composer @@ -55,43 +45,12 @@ jobs: with: files: "./composer.json" - - name: Install composer JWT dependencies + - name: Install composer dependencies and build prefixed vendor if: steps.check_composer.outputs.files_exists == 'true' run: | - composer require \ - web-token/jwt-core:^2.2 \ - web-token/jwt-encryption:^2.2 \ - web-token/jwt-signature:^2.2 \ - web-token/jwt-encryption-algorithm-aescbc:^2.2 \ - web-token/jwt-encryption-algorithm-ecdh-es:^2.2 \ - web-token/jwt-encryption-algorithm-rsa:^2.2 \ - web-token/jwt-encryption-algorithm-pbes2:^2.2 \ - web-token/jwt-signature-algorithm-hmac:^2.2 \ - web-token/jwt-signature-algorithm-rsa:^2.2 \ - web-token/jwt-util-ecc:^2.2 \ - spomky-labs/aes-key-wrap:^6 \ - --with-all-dependencies - - vendor/bin/mozart compose - composer dump-autoload + composer install --no-interaction --prefer-dist - - name: Commit and push dependency changes + - name: Run unit tests if: steps.check_composer.outputs.files_exists == 'true' - id: pushcomposerdep - env: - ASSEMBLY_BRANCH: ${{ inputs.assembly }} run: | - git add composer.json composer.lock - git add -f lib/Vendor - - if [ -d lib/autoload ]; then - git add -f lib/autoload - fi - - if git diff --cached --quiet; then - echo "No composer dependency changes to commit." - exit 0 - fi - - git commit -m "Add JWT composer library dependencies" - git push origin HEAD:$ASSEMBLY_BRANCH + XDEBUG_MODE=off composer test:unit From 31c3fd1e3ea0424c1422a9fa2b92552689826368 Mon Sep 17 00:00:00 2001 From: Mauro Mura Date: Wed, 6 May 2026 11:54:56 +0200 Subject: [PATCH 22/29] Update PHP version to 8.3 in workflow --- .github/workflows/nmc-custom-oidc-composer.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/nmc-custom-oidc-composer.yml b/.github/workflows/nmc-custom-oidc-composer.yml index afe95fcaa..8066b60d6 100644 --- a/.github/workflows/nmc-custom-oidc-composer.yml +++ b/.github/workflows/nmc-custom-oidc-composer.yml @@ -21,7 +21,7 @@ jobs: runs-on: ubuntu-latest env: BUILD_TOKEN: ${{ secrets.BUILD_TOKEN || secrets.GITHUB_TOKEN }} - PHP_VERSION: ${{ vars.PHP_VERSION || '8.1' }} + PHP_VERSION: ${{ vars.PHP_VERSION || '8.3' }} steps: - name: Fetch custom assembly From 73862c92bc277c131c3c98a29db34967b0636c71 Mon Sep 17 00:00:00 2001 From: memurats Date: Wed, 6 May 2026 17:43:15 +0200 Subject: [PATCH 23/29] update workflow options --- .github/workflows/nmc-custom-app-release.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/nmc-custom-app-release.yml b/.github/workflows/nmc-custom-app-release.yml index 64d287cef..ec889c38c 100644 --- a/.github/workflows/nmc-custom-app-release.yml +++ b/.github/workflows/nmc-custom-app-release.yml @@ -27,9 +27,9 @@ on: description: Branch to build a package from options: - main - - stable25 - - stable26 - - stable27 + - stable32 + - stable33 + - stable34 default: main jobs: From 771c89cffb6ad142f93f6d3b22c72d1e9a00700c Mon Sep 17 00:00:00 2001 From: Mauro Mura Date: Thu, 7 May 2026 10:16:59 +0200 Subject: [PATCH 24/29] Update OIDC composer workflow and dependencies Updated author information, upgraded checkout action, and modified composer dependency handling in the workflow. --- .../workflows/nmc-custom-oidc-composer.yml | 91 +++++++++++++++++-- 1 file changed, 84 insertions(+), 7 deletions(-) diff --git a/.github/workflows/nmc-custom-oidc-composer.yml b/.github/workflows/nmc-custom-oidc-composer.yml index 8066b60d6..c1b9d0a5d 100644 --- a/.github/workflows/nmc-custom-oidc-composer.yml +++ b/.github/workflows/nmc-custom-oidc-composer.yml @@ -1,10 +1,12 @@ ### # SPDX-License-Identifier: AGPL-3.0 # -# Author: Bernd Rederlechner +# Author: Mauro Mura # # user_oidc brings its PHP dependencies via composer.json. # composer install also runs Mozart via post-install-cmd. +# We add these commandline based in build to avoid continuous +# merge conflicts due to "composer.lock" merge problems. name: MCLOUD custom user_oidc dependencies @@ -20,24 +22,31 @@ jobs: build-custom: runs-on: ubuntu-latest env: + BUILD_USER: ${{ github.actor }} + BUILD_EMAIL: ${{ github.actor }}@users.noreply.github.com BUILD_TOKEN: ${{ secrets.BUILD_TOKEN || secrets.GITHUB_TOKEN }} PHP_VERSION: ${{ vars.PHP_VERSION || '8.3' }} + ASSEMBLY_BRANCH: ${{ inputs.assembly }} steps: - name: Fetch custom assembly - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: repository: ${{ github.repository }} ref: ${{ inputs.assembly }} fetch-depth: 0 token: ${{ env.BUILD_TOKEN }} + - name: Prepare GIT modifications + run: | + git config user.name "$BUILD_USER" + git config user.email "$BUILD_EMAIL" + - name: Set up PHP ${{ env.PHP_VERSION }} uses: shivammathur/setup-php@v2 with: php-version: ${{ env.PHP_VERSION }} coverage: none - tools: composer - name: Check composer.json id: check_composer @@ -45,12 +54,80 @@ jobs: with: files: "./composer.json" - - name: Install composer dependencies and build prefixed vendor + - name: Patch composer.json for custom user_oidc dependencies + if: steps.check_composer.outputs.files_exists == 'true' + run: | + php <<'PHP' + Date: Thu, 7 May 2026 10:37:40 +0200 Subject: [PATCH 25/29] Update composer command and commit logic --- .github/workflows/nmc-custom-oidc-composer.yml | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/.github/workflows/nmc-custom-oidc-composer.yml b/.github/workflows/nmc-custom-oidc-composer.yml index c1b9d0a5d..71080bea7 100644 --- a/.github/workflows/nmc-custom-oidc-composer.yml +++ b/.github/workflows/nmc-custom-oidc-composer.yml @@ -117,17 +117,16 @@ jobs: web-token/jwt-encryption \ spomky-labs/aes-key-wrap \ --with-all-dependencies \ - --no-interaction + --no-interaction \ + --no-scripts - name: Commit and push composer changes if: steps.check_composer.outputs.files_exists == 'true' run: | - if git diff --quiet; then + if git diff --cached --quiet; then echo "No composer changes to commit" exit 0 fi - - // git add composer.json composer.lock lib/Vendor lib/autoload - + git commit -m "Add custom user_oidc composer dependencies" git push origin "HEAD:${ASSEMBLY_BRANCH}" From d853f6bca4a299e272dc548375fd9964650043db Mon Sep 17 00:00:00 2001 From: Mauro Mura Date: Thu, 7 May 2026 13:16:49 +0200 Subject: [PATCH 26/29] Fix git status check before committing changes --- .github/workflows/nmc-custom-oidc-composer.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/nmc-custom-oidc-composer.yml b/.github/workflows/nmc-custom-oidc-composer.yml index 71080bea7..42c212a85 100644 --- a/.github/workflows/nmc-custom-oidc-composer.yml +++ b/.github/workflows/nmc-custom-oidc-composer.yml @@ -123,10 +123,14 @@ jobs: - name: Commit and push composer changes if: steps.check_composer.outputs.files_exists == 'true' run: | + git status --short + + git add composer.json composer.lock + if git diff --cached --quiet; then echo "No composer changes to commit" exit 0 fi - + git commit -m "Add custom user_oidc composer dependencies" git push origin "HEAD:${ASSEMBLY_BRANCH}" From 9b3a05543af5433beb07f2d6d52a0da1cf1eba2f Mon Sep 17 00:00:00 2001 From: Mauro Mura Date: Thu, 7 May 2026 13:24:54 +0200 Subject: [PATCH 27/29] Change PHP version from 8.3 to 8.1 in workflow --- .github/workflows/nmc-custom-oidc-composer.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/nmc-custom-oidc-composer.yml b/.github/workflows/nmc-custom-oidc-composer.yml index 42c212a85..010b4210d 100644 --- a/.github/workflows/nmc-custom-oidc-composer.yml +++ b/.github/workflows/nmc-custom-oidc-composer.yml @@ -25,7 +25,7 @@ jobs: BUILD_USER: ${{ github.actor }} BUILD_EMAIL: ${{ github.actor }}@users.noreply.github.com BUILD_TOKEN: ${{ secrets.BUILD_TOKEN || secrets.GITHUB_TOKEN }} - PHP_VERSION: ${{ vars.PHP_VERSION || '8.3' }} + PHP_VERSION: ${{ vars.PHP_VERSION || '8.1' }} ASSEMBLY_BRANCH: ${{ inputs.assembly }} steps: From 234111011140aa3308fa2912d1b3f8bcb8abd661 Mon Sep 17 00:00:00 2001 From: Mauro Mura Date: Thu, 7 May 2026 13:31:36 +0200 Subject: [PATCH 28/29] Set PHP version to 8.1.0 in workflow config --- .github/workflows/nmc-custom-oidc-composer.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/nmc-custom-oidc-composer.yml b/.github/workflows/nmc-custom-oidc-composer.yml index 010b4210d..00ddd2968 100644 --- a/.github/workflows/nmc-custom-oidc-composer.yml +++ b/.github/workflows/nmc-custom-oidc-composer.yml @@ -69,6 +69,7 @@ jobs: JSON_THROW_ON_ERROR ); + $json['config']['platform']['php'] = '8.1.0'; $json['autoload']['psr-4']['OCA\\UserOIDC\\'] = 'lib/'; $json['autoload-dev']['psr-4']['OCA\\UserOIDC\\Tests\\'] = 'tests/'; @@ -117,6 +118,7 @@ jobs: web-token/jwt-encryption \ spomky-labs/aes-key-wrap \ --with-all-dependencies \ + --no-dev \ --no-interaction \ --no-scripts From 4c65c1300c8a6e50b918ce85ef0960ab835922b3 Mon Sep 17 00:00:00 2001 From: Mauro Mura Date: Thu, 7 May 2026 13:35:48 +0200 Subject: [PATCH 29/29] Update PHP version and exclude dev dependencies Updated PHP version and removed development dependencies from the workflow configuration. --- .github/workflows/nmc-custom-oidc-composer.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/nmc-custom-oidc-composer.yml b/.github/workflows/nmc-custom-oidc-composer.yml index 00ddd2968..03f6c553f 100644 --- a/.github/workflows/nmc-custom-oidc-composer.yml +++ b/.github/workflows/nmc-custom-oidc-composer.yml @@ -70,6 +70,11 @@ jobs: ); $json['config']['platform']['php'] = '8.1.0'; + + // In this workflow we only need production dependencies for the release package. + // Keep require-dev out of the lock resolving process because current dev deps may require PHP >= 8.2. + unset($json['require-dev']); + $json['autoload']['psr-4']['OCA\\UserOIDC\\'] = 'lib/'; $json['autoload-dev']['psr-4']['OCA\\UserOIDC\\Tests\\'] = 'tests/';