Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
a88d10e
feat: Migrate docs to /docs folder and centralize documentation workflow
rubenvdlinde Mar 13, 2026
5db0fa5
chore: Remove old website/ directory
rubenvdlinde Mar 13, 2026
bcfa77e
fix: Remove deprecated published parameter + fix AMEF import + enhanc…
rubenvdlinde Mar 16, 2026
7d48310
fix: Use PHP CLI for GEMMA release import in test setup
rubenvdlinde Mar 16, 2026
4369c31
fix: Align Postman tests with seed data and fix koppeling type enum
rubenvdlinde Mar 16, 2026
4867456
fix: Fix seed data for all remaining test failures
rubenvdlinde Mar 16, 2026
67973f1
fix: Achieve 100% Newman pass rate (456/456 assertions)
rubenvdlinde Mar 16, 2026
19fee76
feat: Add OpenSpec sync caller workflow
rubenvdlinde Mar 16, 2026
290260b
feat: Add issue triage caller workflow
rubenvdlinde Mar 16, 2026
69ac476
fix: Correct Postman test data and thresholds for passing API suite
rubenvdlinde Mar 16, 2026
10fed8d
fix: Add beheer menu (position 7) creation to test setup
rubenvdlinde Mar 16, 2026
9c478be
fix: Replace ObjectEntityMapper references with MagicMapper
rubenvdlinde Mar 16, 2026
fa4f836
fix: replace standalone SBOM workflow with reusable quality workflow
rubenvdlinde Mar 17, 2026
4df1775
fix: consolidate quality and SBOM workflows into single reusable work…
rubenvdlinde Mar 17, 2026
bc51bba
fix: Resolve merge conflicts with development branch
rubenvdlinde Mar 17, 2026
45ee319
feat: Add OpenRegister dependency check and enforce scoped CSS
rubenvdlinde Mar 18, 2026
4205cba
feat: Add support contact info to app description and README
rubenvdlinde Mar 18, 2026
fe8df12
feat: Standardize settings with CnVersionInfoCard, fix section icon
rubenvdlinde Mar 18, 2026
db97fca
fix: Add @nextcloud/dialogs webpack alias to fix local dev build
rubenvdlinde Mar 18, 2026
f6284dd
fix: Import t/n translation functions in settings entry point
rubenvdlinde Mar 18, 2026
b84b65f
fix: Pass app version from IAppManager instead of deprecated OCP\App
rubenvdlinde Mar 18, 2026
4aa98a4
feat: Add i18n support — fix imports, correct app IDs, Composition AP…
rubenvdlinde Mar 18, 2026
b8010ce
chore: Update test results and add l10n bundles
rubenvdlinde Mar 18, 2026
28d6358
fix: Resolve Psalm errors in softwarecatalog
rubenvdlinde Mar 18, 2026
1f80726
docs: Add testing, dependencies, and installation sections to README
rubenvdlinde Mar 19, 2026
af81e0f
fix: Resolve all PHPCS errors — auto-fix formatting + manual fixes fo…
rubenvdlinde Mar 19, 2026
e96ff29
style: Apply PHPCS auto-formatting
rubenvdlinde Mar 19, 2026
c37eff3
style: Apply PHPCS auto-formatting
rubenvdlinde Mar 19, 2026
d186ba4
style: Apply PHPCS auto-formatting
rubenvdlinde Mar 19, 2026
63ddc87
fix: Resolve all PHPStan errors — fix named param mismatches, undefin…
rubenvdlinde Mar 19, 2026
81243ee
Merge pull request #193 from ConductionNL/fix/sbom-reusable-workflow
rubenvdlinde Mar 19, 2026
defea1b
Merge remote-tracking branch 'origin/development' into feature/opensp…
rubenvdlinde Mar 19, 2026
9c686af
fix: Resolve PHPCS and Psalm errors after merge with development
rubenvdlinde Mar 19, 2026
29875bc
Merge pull request #194 from ConductionNL/feature/openspec-implementa…
rubenvdlinde Mar 19, 2026
2d921ed
fix: Regenerate package-lock.json to sync with package.json
rubenvdlinde Mar 19, 2026
46525ef
Merge pull request #195 from ConductionNL/feature/openspec-implementa…
rubenvdlinde Mar 19, 2026
651a055
refactor: Replace else clauses with early returns — remove ElseExpres…
rubenvdlinde Mar 19, 2026
3f5435d
chore: Update linter artifacts
rubenvdlinde Mar 19, 2026
c17a3da
refactor: Replace GenericObjectTable with CnIndexPage, fix all ESLint…
rubenvdlinde Mar 19, 2026
016410a
fix: Use @nextcloud/stylelint-config instead of missing stylelint-con…
rubenvdlinde Mar 19, 2026
caf5cb6
Merge pull request #196 from ConductionNL/fix/migrate-cnindexpage
rubenvdlinde Mar 19, 2026
187eb2f
chore: Update test results
rubenvdlinde Mar 19, 2026
55a1c1c
style: Apply linter formatting
rubenvdlinde Mar 19, 2026
10d8db7
config: Remove DisallowInlineIf PHPCS rule — allow ternaries for PHPM…
rubenvdlinde Mar 19, 2026
0772a6c
config: Restore DisallowInlineIf PHPCS rule — use early returns inste…
rubenvdlinde Mar 19, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
858 changes: 858 additions & 0 deletions .claude/commands/test.md

Large diffs are not rendered by default.

454 changes: 454 additions & 0 deletions .claude/commands/update.md

Large diffs are not rendered by default.

2 changes: 2 additions & 0 deletions .claude/skills/test-architectuur-expert.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,8 @@ Sarah's account is in the Default Organisation (expected for VNG roles). The org
| Issue | Title | Test Step |
|-------|-------|-----------|
| #148 | (VNGR) GEMMA-architectuur opvraagbaar met API | Step 12 |
| #412 | Niet alle AMEF views hebben documentatie | Step 15 |
| #413 | Views testen vs softwarecatalogus scope | Step 19 |

## Acceptance Criteria Reference

Expand Down
5 changes: 5 additions & 0 deletions .claude/skills/test-bezoeker.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,11 @@ This persona tests everything an **unauthenticated user** sees. The search page
| #448 | Overzichtspagina's: vormgeving inconsistent | Verify dienst/koppeling detail pages match applicatie layout |
| #453 | Zoeken: filters van slag met filter Type=Koppeling | Verify Type=Koppeling filter correctly scopes other facets |
| #455 | Tabblad koppelingen en contactpersonen publiekelijk niet getoond | Verify Koppelingen and Contactpersonen tabs visible on public app detail pages |
| #205 | Gedepubliceerde applicatie nog vindbaar | Verify depublished applications do NOT appear in public search |
| #333 | UUID uit filters refcomp en standaarden | Verify reference component and standards filters show names, not UUIDs |
| #398 | Zoeken: Filter met UUID's onder leveranciers | Verify leverancier filter shows readable names, not UUIDs |
| #438 | Zoeken: verschillende vormgeving Diensten na filteren | Verify dienst card layout is consistent across filter combinations |
| #440 | Zoeken: Organisatietype teveel aan opties | Verify Organisatietype filter shows only 4 options: gemeente, samenwerking, leverancier, community |

## Acceptance Criteria Reference

Expand Down
16 changes: 16 additions & 0 deletions .claude/skills/test-functioneel-beheerder.md
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,22 @@ Peter's account (`peter.vandijk@test.nl`) is in the Default Organisation. **Impo
| #187 | Tekstvoorstellen (remaining text changes) | Step 7 |
| #449 | Handleiding facets configureren klopt niet | Step 21 |
| #450 | Back-end: Icoon voor publiceren verwijderen | Step 6 |
| #23 | Data migratie verificatie | Step 19 |
| #65 | Collega's toegang geven (contactpersonen beheer) | Step 5 |
| #182 | Algemene voorwaarden, Privacyverklaring, Disclaimer, FAQ | Step 21 |
| #188 | Aanmeldproces | Step 3 |
| #208 | NC Dashboard organisatie overzicht table issue | Step 23 |
| #209 | Help knop gaat naar niet bestaande pagina | Step 23 |
| #231 | AMEFF exports foutmelding bij import in Archi | Step 24 |
| #255 | Dashboard welkomstekst | Step 23 |
| #268 | Dashboard tekst aanpassen na inloggen | Step 23 |
| #329 | Teksten SWC definitief (PowerPoint vergelijking) | Step 7 |
| #336 | Views | Step 22 |
| #338 | Dashboard en Inloggen | Step 23 |
| #339 | Activeren gebruikers | Step 3 |
| #411 | Vraag: Required eisen uitgezet voor dataimport | Step 19 |
| #417 | Vraag: Andere email adressen voor contactpersonen | Step 5 |
| #431 | Aanmeldproces: tussenvoegsel niet meer aanwezig | Step 3 |

## Acceptance Criteria Reference

Expand Down
4 changes: 4 additions & 0 deletions .claude/skills/test-gemeente.md
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,10 @@ Maria's active organization is **Test Gemeente**. The internal Nextcloud org UUI
| #346 | Zoeken: paginering werkt niet | Step 14 |
| #347 | Zoeken: Dienstkaartje toont array | **MOVED → bezoeker** (public search page) |
| #349 | Zoeken: UUID's onder standaarden filter | Step 14 |
| #261 | Wizards: pas te testen na RBAC | Step 10 |
| #311 | Altijd inlog-account en -organisatie tonen | Step 4 |
| #331 | Koppeling relatie Applicatie | Step 11 |
| #418 | Performance: applicaties dropdown traag bij dienst wizard | Step 10 |

## Acceptance Criteria Reference

Expand Down
17 changes: 17 additions & 0 deletions .claude/skills/test-leverancier.md
Original file line number Diff line number Diff line change
Expand Up @@ -137,6 +137,23 @@ This agent tests the following steps from the test flow (`testen.md`):
| #454 | Wizard koppelingen: Reeds bestaande koppelingen voor worden niet gevonden | Step 11 |
| #456 | Consistentie in werking van wizards | Step 7 |
| #457 | Koppeling: verwijderen geeft een 400-error | Step 11 |
| #6 | Standaarden registreren bij pakket | Step 16 |
| #73 | Meerdere contactpersonen registreren en koppelen | Step 5 |
| #335 | Diensten Wizards | Step 9 |
| #405 | Applicatie verwijderen die door dienst ondersteund wordt | Step 7 |
| #415 | Spelling "Applicatie informatie" | Step 7 |
| #430 | Beheertabel toont kolom Compliancy met applicatienamen | Step 7 |
| #432 | Koppeling naamgeving niet consistent | Step 11 |
| #433 | Import koppelingen lijkt niet goed te gaan | Step 11 |
| #434 | Eerste account leverancier niet beschikbaar als contactpersoon | Step 5 |
| #436 | Error bij ophalen applicatie overzicht | Step 7 |
| #439 | Error na openen Applicatie-overzicht | Step 7 |
| #441 | Mapping versies gaat niet goed bij geimporteerde applicaties | Step 7 |
| #442 | Opgevoerd document wijzigt van naam naar bewijs_<getal> | Step 7 |
| #419 | Standaarden en standaard-versie niet goed gekoppeld | Step 16 |
| #420 | Gemeente-applicaties verschijnen niet in aanbod-endpoint | Step 12 |
| #435 | Import: niet alle geimporteerde applicaties zichtbaar | Step 7 |
| #437 | Geimporteerde leverancier: koppeling opslaan geeft foutmelding | Step 11 |

## Acceptance Criteria Reference

Expand Down
1 change: 1 addition & 0 deletions .claude/skills/test-security-officer.md
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ The authoritative RBAC rules are in `softwarecatalog/lib/Settings/softwarecatalo
| #315 | Hoge prioriteit: Zoekpagina toont deel gemeentelijk applicatielandschap | Step 14 |
| #447 | Zoeken: concept leverancier zonder VNG triage direct vindbaar | Step 3 |
| #455 | Tabblad koppelingen en contactpersonen publiekelijk niet getoond — RBAC? | Step 12 |
| #414 | Mogen deelnemers gebruiksobjecten lezen | Step 12 |

## Testing Hints for Specific Issues

Expand Down
5 changes: 2 additions & 3 deletions .github/workflows/code-quality.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
name: Code Quality

on:
push:
branches: [main, development, feature/**, bugfix/**, hotfix/**]
pull_request:
branches: [main, beta, development]

Expand All @@ -12,13 +10,14 @@ jobs:
with:
app-name: softwarecatalog
php-version: "8.3"
nextcloud-ref: stable32
nextcloud-test-refs: '["stable32"]'
enable-psalm: true
enable-phpstan: true
enable-phpmetrics: true
enable-frontend: true
enable-eslint: true
enable-phpunit: true
enable-sbom: true
additional-apps: '[{"repo":"ConductionNL/openregister","app":"openregister"}]'
enable-newman: true
newman-collection-path: "tests"
63 changes: 5 additions & 58 deletions .github/workflows/documentation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,65 +2,12 @@ name: Documentation

on:
push:
branches:
- development
branches: [documentation]
pull_request:
branches:
- development
branches: [documentation]

jobs:
deploy:
name: Deploy Documentation
runs-on: ubuntu-latest
if: github.event_name == 'push'
permissions:
contents: write
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Setup Node.js 18
uses: actions/setup-node@v3
with:
node-version: '18'

- name: Clear build cache and install dependencies
timeout-minutes: 3
run: |
cd docusaurus
rm -rf node_modules/.cache
rm -rf .docusaurus
rm -rf build
npm run ci

- name: Verify build output
run: |
cd docusaurus/build
if [ ! -f index.html ]; then
echo "ERROR: index.html not found in build directory!"
exit 1
fi

- name: Create .nojekyll and CNAME files
run: |
cd docusaurus/build
touch .nojekyll
echo "softwarecatalog.app" > CNAME

- name: Deploy to GitHub Pages
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./docusaurus/build
publish_branch: gh-pages
user_name: 'github-actions[bot]'
user_email: 'github-actions[bot]@users.noreply.github.com'
force_orphan: false
allow_empty_commit: true
keep_files: false

- name: Verify deployment
run: |
git fetch origin gh-pages
echo "Deployment completed. Latest commit: $(git rev-parse origin/gh-pages)"
uses: ConductionNL/.github/.github/workflows/documentation.yml@main
with:
cname: softwarecatalog.app
20 changes: 20 additions & 0 deletions .github/workflows/issue-triage.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
name: Issue Triage

on:
issues:
types: [opened, labeled]
workflow_dispatch:
inputs:
backlog-existing:
description: "Triage all existing untriaged open issues"
type: boolean
default: true

jobs:
triage:
uses: ConductionNL/.github/.github/workflows/issue-triage.yml@feature/openspec-project-sync
with:
app-name: softwarecatalog
backlog-existing: ${{ github.event_name == 'workflow_dispatch' && inputs.backlog-existing || false }}
secrets:
PROJECT_TOKEN: ${{ secrets.PROJECT_TOKEN }}
15 changes: 15 additions & 0 deletions .github/workflows/openspec-sync.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
name: OpenSpec Sync

on:
push:
branches: [development]
paths: ['openspec/**']
workflow_dispatch:

jobs:
sync:
uses: ConductionNL/.github/.github/workflows/openspec-sync.yml@feature/openspec-project-sync
with:
app-name: softwarecatalog
secrets:
PROJECT_TOKEN: ${{ secrets.PROJECT_TOKEN }}
3 changes: 3 additions & 0 deletions .license-overrides.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"@fortawesome/free-solid-svg-icons": "License is (CC-BY-4.0 AND MIT) — both are approved open-source licenses, compound AND expression not parsed by checker"
}
1 change: 1 addition & 0 deletions .phpunit.cache/test-results
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"version":2,"defects":{"OCA\\SoftwareCatalog\\Tests\\Unit\\EventListener\\SoftwareCatalogEventListenerTest::testHandleOrganizationCreatedEvent":8,"OCA\\SoftwareCatalog\\Tests\\Unit\\EventListener\\SoftwareCatalogEventListenerTest::testHandleContactCreatedEvent":8,"OCA\\SoftwareCatalog\\Tests\\Unit\\EventListener\\SoftwareCatalogEventListenerTest::testHandleGebruikerCreatedEvent":8,"OCA\\SoftwareCatalog\\Tests\\Unit\\EventListener\\SoftwareCatalogEventListenerTest::testHandleContactUpdatedEvent":8,"OCA\\SoftwareCatalog\\Tests\\Unit\\EventListener\\SoftwareCatalogEventListenerTest::testHandleGebruikerUpdatedEvent":8,"OCA\\SoftwareCatalog\\Tests\\Unit\\EventListener\\SoftwareCatalogEventListenerTest::testHandleContactDeletedEvent":8,"OCA\\SoftwareCatalog\\Tests\\Unit\\EventListener\\SoftwareCatalogEventListenerTest::testHandleGebruikerDeletedEvent":8,"OCA\\SoftwareCatalog\\Tests\\Unit\\EventListener\\SoftwareCatalogEventListenerTest::testHandleGebruikerLockedEvent":8,"OCA\\SoftwareCatalog\\Tests\\Unit\\EventListener\\SoftwareCatalogEventListenerTest::testHandleGebruikerUnlockedEvent":8,"OCA\\SoftwareCatalog\\Tests\\Unit\\EventListener\\SoftwareCatalogEventListenerTest::testHandleContactRevertedEvent":8,"OCA\\SoftwareCatalog\\Tests\\Unit\\EventListener\\SoftwareCatalogEventListenerTest::testHandleGebruikerRevertedEvent":8,"OCA\\SoftwareCatalog\\Tests\\Unit\\EventListener\\SoftwareCatalogEventListenerTest::testHandleEventWithNullObject":8,"OCA\\SoftwareCatalog\\Tests\\Unit\\EventListener\\SoftwareCatalogEventListenerTest::testExceptionHandlingDuringEventProcessing":8,"OCA\\SoftwareCatalog\\Tests\\Unit\\OrganisationUserWorkflowTest::testCompleteOrganisationUserWorkflow":8,"OCA\\SoftwareCatalog\\Tests\\Unit\\OrganisationUserWorkflowTest::testWorkflowWithGemeenteOrganisation":8,"OCA\\SoftwareCatalog\\Tests\\Unit\\OrganisationUserWorkflowTest::testWorkflowWithSamenwerkingOrganisation":8,"OCA\\SoftwareCatalog\\Tests\\Unit\\OrganisationUserWorkflowTest::testWorkflowWithCommunityOrganisation":8,"OCA\\SoftwareCatalog\\Tests\\Unit\\OrganisationUserWorkflowTest::testConvertContactpersoonWhenUserAlreadyExists":8,"OCA\\SoftwareCatalog\\Tests\\Unit\\OrganisationUserWorkflowTest::testPasswordChangeWithInvalidUser":8,"OCA\\SoftwareCatalog\\Tests\\Unit\\Service\\ContactPersonHandlerTest::testGetRoleGroupByOrganizationType":8,"OCA\\SoftwareCatalog\\Tests\\Unit\\Service\\ContactPersonHandlerTest::testAddUserToGroupWithCheck":8,"OCA\\SoftwareCatalog\\Tests\\Unit\\Service\\EmailServiceTest::testSendOrganizationWelcomeEmailSuccess":8,"OCA\\SoftwareCatalog\\Tests\\Unit\\Service\\EmailServiceTest::testSendOrganizationWelcomeEmailWithoutEmail":8,"OCA\\SoftwareCatalog\\Tests\\Unit\\Service\\EmailServiceTest::testSendGebruikerWelcomeEmailSuccess":8,"OCA\\SoftwareCatalog\\Tests\\Unit\\Service\\EmailServiceTest::testSendContactWelcomeEmailSuccess":8,"OCA\\SoftwareCatalog\\Tests\\Unit\\Service\\EmailServiceTest::testSendEmailFailure":8,"OCA\\SoftwareCatalog\\Tests\\Unit\\Service\\EmailServiceTest::testSendEmailException":8,"OCA\\SoftwareCatalog\\Tests\\Unit\\Service\\EmailServiceTest::testGetSenderEmail":8,"OCA\\SoftwareCatalog\\Tests\\Unit\\Service\\EmailServiceTest::testGetSenderName":8,"OCA\\SoftwareCatalog\\Tests\\Integration\\KoppelingenGebruikIntegrationTest::testGetKoppelingenGebruikForProductUuid":8,"OCA\\SoftwareCatalog\\Tests\\Integration\\KoppelingenGebruikIntegrationTest::testGetKoppelingenGebruikForModuleUuid":8,"OCA\\SoftwareCatalog\\Tests\\Integration\\KoppelingenGebruikIntegrationTest::testGetKoppelingenGebruikForOrganisationUuid":8,"OCA\\SoftwareCatalog\\Tests\\Integration\\KoppelingenGebruikIntegrationTest::testAmbtenaarAccessToAllOrganisations":8,"OCA\\SoftwareCatalog\\Tests\\Integration\\KoppelingenGebruikIntegrationTest::testPaginationParameters":8,"OCA\\SoftwareCatalog\\Tests\\Integration\\KoppelingenGebruikIntegrationTest::testResponseFormatConsistency":8,"OCA\\SoftwareCatalog\\Tests\\Integration\\KoppelingenGebruikIntegrationTest::testInvalidUuidReturnsEmptyResults":8,"OCA\\SoftwareCatalog\\Tests\\Integration\\KoppelingenGebruikIntegrationTest::testOrganisationOwnerAccessToOwnedProductUsage":8,"OCA\\SoftwareCatalog\\Tests\\Integration\\KoppelingenGebruikIntegrationTest::testThreeOrganisationAccessControlMatrix":8},"times":{"OCA\\SoftwareCatalog\\Tests\\Unit\\EventListener\\SoftwareCatalogEventListenerTest::testHandleOrganizationCreatedEvent":0.029,"OCA\\SoftwareCatalog\\Tests\\Unit\\EventListener\\SoftwareCatalogEventListenerTest::testHandleContactCreatedEvent":0.001,"OCA\\SoftwareCatalog\\Tests\\Unit\\EventListener\\SoftwareCatalogEventListenerTest::testHandleGebruikerCreatedEvent":0,"OCA\\SoftwareCatalog\\Tests\\Unit\\EventListener\\SoftwareCatalogEventListenerTest::testHandleContactUpdatedEvent":0,"OCA\\SoftwareCatalog\\Tests\\Unit\\EventListener\\SoftwareCatalogEventListenerTest::testHandleGebruikerUpdatedEvent":0,"OCA\\SoftwareCatalog\\Tests\\Unit\\EventListener\\SoftwareCatalogEventListenerTest::testHandleContactDeletedEvent":0,"OCA\\SoftwareCatalog\\Tests\\Unit\\EventListener\\SoftwareCatalogEventListenerTest::testHandleGebruikerDeletedEvent":0,"OCA\\SoftwareCatalog\\Tests\\Unit\\EventListener\\SoftwareCatalogEventListenerTest::testHandleGebruikerLockedEvent":0,"OCA\\SoftwareCatalog\\Tests\\Unit\\EventListener\\SoftwareCatalogEventListenerTest::testHandleGebruikerUnlockedEvent":0,"OCA\\SoftwareCatalog\\Tests\\Unit\\EventListener\\SoftwareCatalogEventListenerTest::testHandleContactRevertedEvent":0,"OCA\\SoftwareCatalog\\Tests\\Unit\\EventListener\\SoftwareCatalogEventListenerTest::testHandleGebruikerRevertedEvent":0,"OCA\\SoftwareCatalog\\Tests\\Unit\\EventListener\\SoftwareCatalogEventListenerTest::testHandleEventWithNullObject":0,"OCA\\SoftwareCatalog\\Tests\\Unit\\EventListener\\SoftwareCatalogEventListenerTest::testExceptionHandlingDuringEventProcessing":0}}
Loading
Loading