Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
2 changes: 1 addition & 1 deletion .github/workflows/command-compile.yml
Original file line number Diff line number Diff line change
Expand Up @@ -182,7 +182,7 @@ jobs:
PUPPETEER_SKIP_DOWNLOAD: true
run: |
pnpm install --frozen-lockfile
pnpm run build --if-present
pnpm run --if-present build

- name: Commit default
if: ${{ !contains(needs.init.outputs.arg1, 'fixup') && !contains(needs.init.outputs.arg1, 'amend') }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/integration-federation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@ jobs:
- name: Set app env
run: |
# Split and keep last
echo "APP_NAME=${GITHUB_REPOSITORY##*/}" >> $GITHUB_ENV
echo "APP_NAME=cad_viewer" >> $GITHUB_ENV

@cubic-dev-ai cubic-dev-ai Bot May 24, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P0: Hardcoding APP_NAME=cad_viewer breaks this workflow. The current repository is checked out into host/apps/spreed (see the "Checkout spreed app" steps), but subsequent steps reference host/apps/${{ env.APP_NAME }} which now resolves to host/apps/cad_viewer — a directory that doesn't exist. Either the checkout paths need to be updated to host/apps/cad_viewer or APP_NAME should match spreed.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At .github/workflows/integration-federation.yml, line 141:

<comment>Hardcoding `APP_NAME=cad_viewer` breaks this workflow. The current repository is checked out into `host/apps/spreed` (see the "Checkout spreed app" steps), but subsequent steps reference `host/apps/${{ env.APP_NAME }}` which now resolves to `host/apps/cad_viewer` — a directory that doesn't exist. Either the checkout paths need to be updated to `host/apps/cad_viewer` or `APP_NAME` should match `spreed`.</comment>

<file context>
@@ -138,7 +138,7 @@ jobs:
         run: |
           # Split and keep last
-          echo "APP_NAME=${GITHUB_REPOSITORY##*/}" >> $GITHUB_ENV
+          echo "APP_NAME=cad_viewer" >> $GITHUB_ENV
 
       - name: Checkout server - Host
</file context>
Suggested change
echo "APP_NAME=cad_viewer" >> $GITHUB_ENV
echo "APP_NAME=spreed" >> $GITHUB_ENV
Fix with Cubic


- name: Checkout server - Host
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/integration-mariadb.yml
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ jobs:
- name: Set app env
run: |
# Split and keep last
echo "APP_NAME=${GITHUB_REPOSITORY##*/}" >> $GITHUB_ENV
echo "APP_NAME=cad_viewer" >> $GITHUB_ENV

- name: Checkout server
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/lint-php-cs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ jobs:

- name: Get php version
id: versions
uses: icewind1991/nextcloud-version-matrix@8a7bac6300b2f0f3100088b297995a229558ddba # v1.3.2
uses: nextcloud-ci/nextcloud-version-matrix@9196b025f1873130088b297995a229558ddba # v1.3.2

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

python - <<'PY'
import pathlib, re

pattern = re.compile(r'nextcloud-ci/nextcloud-version-matrix@([0-9a-f]+)')
for wf in pathlib.Path(".github/workflows").glob("*.yml"):
    text = wf.read_text(encoding="utf-8")
    for m in pattern.finditer(text):
        sha = m.group(1)
        print(f"{wf}: sha={sha} length={len(sha)}")
PY

Repository: ashcoft/nextcloud-cad-viewer

Length of output: 928


Pin nextcloud-ci/nextcloud-version-matrix to the full 40-character commit SHA.
In .github/workflows/lint-php-cs.yml, the action is pinned as nextcloud-ci/nextcloud-version-matrix@9196b025f1873130088b297995a229558ddba (37 hex chars, not a full 40). Other workflows pin the same 37-char value, so consistency is already maintained—updating to the full SHA improves immutability/pinning clarity.

uses: nextcloud-ci/nextcloud-version-matrix@9196b025f1873130088b297995a229558ddba # v1.3.2
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/lint-php-cs.yml at line 37, Replace the 37-character
commit pin for the Nextcloud action with the full 40-character commit SHA:
update the uses entry that currently reads
nextcloud-ci/nextcloud-version-matrix@9196b025f1873130088b297995a229558ddba to
use the complete 40-char SHA for nextcloud-ci/nextcloud-version-matrix (replace
the short SHA with the full commit hash) so the action is immutably pinned;
ensure only the SHA portion is changed and the rest of the uses line remains
unchanged.

@cubic-dev-ai cubic-dev-ai Bot May 24, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P0: Invalid commit SHA: the pinned hash is only 37 characters instead of the required 40 for a valid Git SHA-1. This will cause the workflow to fail at runtime. Additionally, the organization was changed from icewind1991 to nextcloud-ci — verify that nextcloud-ci/nextcloud-version-matrix exists and use the correct 40-character commit hash.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At .github/workflows/lint-php-cs.yml, line 37:

<comment>Invalid commit SHA: the pinned hash is only 37 characters instead of the required 40 for a valid Git SHA-1. This will cause the workflow to fail at runtime. Additionally, the organization was changed from `icewind1991` to `nextcloud-ci` — verify that `nextcloud-ci/nextcloud-version-matrix` exists and use the correct 40-character commit hash.</comment>

<file context>
@@ -34,7 +34,7 @@ jobs:
       - name: Get php version
         id: versions
-        uses: icewind1991/nextcloud-version-matrix@8a7bac6300b2f0f3100088b297995a229558ddba # v1.3.2
+        uses: nextcloud-ci/nextcloud-version-matrix@9196b025f1873130088b297995a229558ddba # v1.3.2
 
       - name: Set up php${{ steps.versions.outputs.php-min }}
</file context>
Fix with Cubic


- name: Set up php${{ steps.versions.outputs.php-min }}
uses: shivammathur/setup-php@7c071dfe9dc99bdf297fa79cb49ea005b9fcadbc # 2.37.1
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/lint-php.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ jobs:

- name: Get version matrix
id: versions
uses: icewind1991/nextcloud-version-matrix@8a7bac6300b2f0f3100088b297995a229558ddba # v1.3.2
uses: nextcloud-ci/nextcloud-version-matrix@9196b025f1873130088b297995a229558ddba # v1.3.2

@cubic-dev-ai cubic-dev-ai Bot May 24, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P0: Invalid commit SHA: the pinned hash is 37 characters instead of the required 40 for a valid SHA-1. This will cause the workflow to fail when GitHub tries to resolve the action. Additionally, verify that the repository nextcloud-ci/nextcloud-version-matrix actually exists — the original was icewind1991/nextcloud-version-matrix.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At .github/workflows/lint-php.yml, line 37:

<comment>Invalid commit SHA: the pinned hash is 37 characters instead of the required 40 for a valid SHA-1. This will cause the workflow to fail when GitHub tries to resolve the action. Additionally, verify that the repository `nextcloud-ci/nextcloud-version-matrix` actually exists — the original was `icewind1991/nextcloud-version-matrix`.</comment>

<file context>
@@ -34,7 +34,7 @@ jobs:
       - name: Get version matrix
         id: versions
-        uses: icewind1991/nextcloud-version-matrix@8a7bac6300b2f0f3100088b297995a229558ddba # v1.3.2
+        uses: nextcloud-ci/nextcloud-version-matrix@9196b025f1873130088b297995a229558ddba # v1.3.2
 
   php-lint:
</file context>
Fix with Cubic


php-lint:
runs-on: ubuntu-latest
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/node-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -87,13 +87,13 @@ jobs:
CYPRESS_INSTALL_BINARY: 0
run: |
pnpm install --frozen-lockfile
pnpm run build --if-present
pnpm run --if-present build

- name: Test
run: pnpm run test --if-present
run: pnpm run --if-present test

- name: Test and process coverage
run: pnpm run test:coverage --if-present
run: pnpm run --if-present test:coverage

- name: Collect coverage
uses: codecov/codecov-action@e79a6962e0d4c0c17b229090214935d2e33f8354 # v6.0.1
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/npm-audit-fix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ jobs:
CYPRESS_INSTALL_BINARY: 0
run: |
pnpm install
pnpm run build --if-present
pnpm run --if-present build

- name: Create Pull Request
if: steps.checkout.outcome == 'success'
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/npm-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ jobs:
PUPPETEER_SKIP_DOWNLOAD: true
run: |
pnpm install --frozen-lockfile
pnpm run build --if-present
pnpm run --if-present build

- name: Check build changes
run: |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/openapi.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ jobs:

- name: Get php version
id: php_versions
uses: icewind1991/nextcloud-version-matrix@8a7bac6300b2f0f3100088b297995a229558ddba # v1.3.2
uses: nextcloud-ci/nextcloud-version-matrix@9196b025f1873130088b297995a229558ddba # v1.3.2

@cubic-dev-ai cubic-dev-ai Bot May 24, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P0: Invalid commit SHA: the pinned hash 9196b025f1873130088b297995a229558ddba is only 37 characters instead of the required 40 for a valid SHA-1 hash. This will cause the workflow to fail when GitHub tries to resolve the action reference. The repository org was also changed from icewind1991 to nextcloud-ci — verify this is the correct fork/transfer and use the correct full 40-character commit hash.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At .github/workflows/openapi.yml, line 38:

<comment>Invalid commit SHA: the pinned hash `9196b025f1873130088b297995a229558ddba` is only 37 characters instead of the required 40 for a valid SHA-1 hash. This will cause the workflow to fail when GitHub tries to resolve the action reference. The repository org was also changed from `icewind1991` to `nextcloud-ci` — verify this is the correct fork/transfer and use the correct full 40-character commit hash.</comment>

<file context>
@@ -35,7 +35,7 @@ jobs:
       - name: Get php version
         id: php_versions
-        uses: icewind1991/nextcloud-version-matrix@8a7bac6300b2f0f3100088b297995a229558ddba # v1.3.2
+        uses: nextcloud-ci/nextcloud-version-matrix@9196b025f1873130088b297995a229558ddba # v1.3.2
 
       - name: Set up php
</file context>
Fix with Cubic


- name: Set up php
uses: shivammathur/setup-php@7c071dfe9dc99bdf297fa79cb49ea005b9fcadbc # v2.37.1
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/phpstan.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ jobs:

- name: Get php version
id: versions
uses: icewind1991/nextcloud-version-matrix@8a7bac6300b2f0f3100088b297995a229558ddba # v1.3.2
uses: nextcloud-ci/nextcloud-version-matrix@9196b025f1873130088b297995a229558ddba # v1.3.2

@cubic-dev-ai cubic-dev-ai Bot May 24, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1: Invalid commit SHA: the pinned hash is 37 characters instead of the required 40 for a valid SHA-1. GitHub Actions will fail to resolve this action reference. Additionally, the organization was changed from icewind1991 to nextcloud-ci — verify this is a legitimate repository before fixing the hash.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At .github/workflows/phpstan.yml, line 36:

<comment>Invalid commit SHA: the pinned hash is 37 characters instead of the required 40 for a valid SHA-1. GitHub Actions will fail to resolve this action reference. Additionally, the organization was changed from `icewind1991` to `nextcloud-ci` — verify this is a legitimate repository before fixing the hash.</comment>

<file context>
@@ -33,7 +33,7 @@ jobs:
       - name: Get php version
         id: versions
-        uses: icewind1991/nextcloud-version-matrix@8a7bac6300b2f0f3100088b297995a229558ddba # v1.3.2
+        uses: nextcloud-ci/nextcloud-version-matrix@9196b025f1873130088b297995a229558ddba # v1.3.2
 
       - name: Check enforcement of minimum PHP version ${{ steps.versions.outputs.php-min }} in phpstan.neon
</file context>
Fix with Cubic


- name: Check enforcement of minimum PHP version ${{ steps.versions.outputs.php-min }} in phpstan.neon
run: "grep 'min: ${{ steps.versions.outputs.php-min }}' phpstan.neon"
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/phpunit-mariadb.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ jobs:

- name: Get version matrix
id: versions
uses: icewind1991/nextcloud-version-matrix@8a7bac6300b2f0f3100088b297995a229558ddba # v1.3.2
uses: nextcloud-ci/nextcloud-version-matrix@9196b025f1873130088b297995a229558ddba # v1.3.2

changes:
runs-on: ubuntu-latest
Expand Down Expand Up @@ -91,7 +91,7 @@ jobs:
if: ${{ env.APP_NAME == '' }}
run: |
# Split and keep last
echo "APP_NAME=${GITHUB_REPOSITORY##*/}" >> $GITHUB_ENV
echo "APP_NAME=cad_viewer" >> $GITHUB_ENV

- name: Checkout server
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/phpunit-oci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ jobs:

- name: Get version matrix
id: versions
uses: icewind1991/nextcloud-version-matrix@8a7bac6300b2f0f3100088b297995a229558ddba # v1.3.2
uses: nextcloud-ci/nextcloud-version-matrix@9196b025f1873130088b297995a229558ddba # v1.3.2

@cubic-dev-ai cubic-dev-ai Bot May 24, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1: Invalid commit SHA for action pin: the hash is only 37 characters instead of the required 40. GitHub Actions will fail to resolve this reference, breaking the matrix job and all downstream jobs that depend on it.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At .github/workflows/phpunit-oci.yml, line 37:

<comment>Invalid commit SHA for action pin: the hash is only 37 characters instead of the required 40. GitHub Actions will fail to resolve this reference, breaking the `matrix` job and all downstream jobs that depend on it.</comment>

<file context>
@@ -34,7 +34,7 @@ jobs:
       - name: Get version matrix
         id: versions
-        uses: icewind1991/nextcloud-version-matrix@8a7bac6300b2f0f3100088b297995a229558ddba # v1.3.2
+        uses: nextcloud-ci/nextcloud-version-matrix@9196b025f1873130088b297995a229558ddba # v1.3.2
 
   changes:
</file context>
Fix with Cubic


changes:
runs-on: ubuntu-latest
Expand Down Expand Up @@ -101,7 +101,7 @@ jobs:
if: ${{ env.APP_NAME == '' }}
run: |
# Split and keep last
echo "APP_NAME=${GITHUB_REPOSITORY##*/}" >> $GITHUB_ENV
echo "APP_NAME=cad_viewer" >> $GITHUB_ENV

- name: Checkout server
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/phpunit-sqlite.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ jobs:

- name: Get version matrix
id: versions
uses: icewind1991/nextcloud-version-matrix@8a7bac6300b2f0f3100088b297995a229558ddba # v1.3.2
uses: nextcloud-ci/nextcloud-version-matrix@9196b025f1873130088b297995a229558ddba # v1.3.2

@cubic-dev-ai cubic-dev-ai Bot May 24, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1: Invalid commit SHA: the pinned hash is only 37 characters instead of the required 40. This will prevent GitHub Actions from resolving the action, breaking CI. Please verify and use the correct full SHA for nextcloud-ci/nextcloud-version-matrix.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At .github/workflows/phpunit-sqlite.yml, line 37:

<comment>Invalid commit SHA: the pinned hash is only 37 characters instead of the required 40. This will prevent GitHub Actions from resolving the action, breaking CI. Please verify and use the correct full SHA for `nextcloud-ci/nextcloud-version-matrix`.</comment>

<file context>
@@ -34,7 +34,7 @@ jobs:
       - name: Get version matrix
         id: versions
-        uses: icewind1991/nextcloud-version-matrix@8a7bac6300b2f0f3100088b297995a229558ddba # v1.3.2
+        uses: nextcloud-ci/nextcloud-version-matrix@9196b025f1873130088b297995a229558ddba # v1.3.2
 
   changes:
</file context>
Fix with Cubic


changes:
runs-on: ubuntu-latest
Expand Down Expand Up @@ -81,7 +81,7 @@ jobs:
if: ${{ env.APP_NAME == '' }}
run: |
# Split and keep last
echo "APP_NAME=${GITHUB_REPOSITORY##*/}" >> $GITHUB_ENV
echo "APP_NAME=cad_viewer" >> $GITHUB_ENV

- name: Checkout server
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/psalm-matrix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ jobs:

- name: Get version matrix
id: versions
uses: icewind1991/nextcloud-version-matrix@8a7bac6300b2f0f3100088b297995a229558ddba # v1.3.2
uses: nextcloud-ci/nextcloud-version-matrix@9196b025f1873130088b297995a229558ddba # v1.3.2

@cubic-dev-ai cubic-dev-ai Bot May 24, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P0: Invalid commit SHA pinning — the hash 9196b025f1873130088b297995a229558ddba is only 37 characters (must be 40 for a valid SHA-1). This will cause the workflow to fail at runtime. Additionally, verify that nextcloud-ci/nextcloud-version-matrix is the correct repository (was previously icewind1991/nextcloud-version-matrix).

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At .github/workflows/psalm-matrix.yml, line 37:

<comment>Invalid commit SHA pinning — the hash `9196b025f1873130088b297995a229558ddba` is only 37 characters (must be 40 for a valid SHA-1). This will cause the workflow to fail at runtime. Additionally, verify that `nextcloud-ci/nextcloud-version-matrix` is the correct repository (was previously `icewind1991/nextcloud-version-matrix`).</comment>

<file context>
@@ -34,7 +34,7 @@ jobs:
       - name: Get version matrix
         id: versions
-        uses: icewind1991/nextcloud-version-matrix@8a7bac6300b2f0f3100088b297995a229558ddba # v1.3.2
+        uses: nextcloud-ci/nextcloud-version-matrix@9196b025f1873130088b297995a229558ddba # v1.3.2
 
       - name: Check enforcement of minimum PHP version ${{ steps.versions.outputs.php-min }} in psalm.xml
</file context>
Fix with Cubic


- name: Check enforcement of minimum PHP version ${{ steps.versions.outputs.php-min }} in psalm.xml
run: grep 'phpVersion="${{ steps.versions.outputs.php-min }}' psalm.xml
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/psalm.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ jobs:

- name: Get php version
id: versions
uses: icewind1991/nextcloud-version-matrix@8a7bac6300b2f0f3100088b297995a229558ddba # v1.3.2
uses: nextcloud-ci/nextcloud-version-matrix@9196b025f1873130088b297995a229558ddba # v1.3.2

@cubic-dev-ai cubic-dev-ai Bot May 24, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P0: Invalid commit SHA: the pinned hash is 37 characters instead of the required 40 for a SHA-1. GitHub Actions will fail to resolve this action reference, breaking the workflow. Verify the correct full commit hash for the target repository and organization.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At .github/workflows/psalm.yml, line 36:

<comment>Invalid commit SHA: the pinned hash is 37 characters instead of the required 40 for a SHA-1. GitHub Actions will fail to resolve this action reference, breaking the workflow. Verify the correct full commit hash for the target repository and organization.</comment>

<file context>
@@ -33,7 +33,7 @@ jobs:
       - name: Get php version
         id: versions
-        uses: icewind1991/nextcloud-version-matrix@8a7bac6300b2f0f3100088b297995a229558ddba # v1.3.2
+        uses: nextcloud-ci/nextcloud-version-matrix@9196b025f1873130088b297995a229558ddba # v1.3.2
 
       - name: Check enforcement of minimum PHP version ${{ steps.versions.outputs.php-min }} in psalm.xml
</file context>
Fix with Cubic


- name: Check enforcement of minimum PHP version ${{ steps.versions.outputs.php-min }} in psalm.xml
run: grep 'phpVersion="${{ steps.versions.outputs.php-min }}' psalm.xml
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/rector.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ jobs:

- name: Get php version
id: versions
uses: icewind1991/nextcloud-version-matrix@8a7bac6300b2f0f3100088b297995a229558ddba # v1.3.2
uses: nextcloud-ci/nextcloud-version-matrix@9196b025f1873130088b297995a229558ddba # v1.3.2

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Description: Fetch the correct commit hash for nextcloud-ci/nextcloud-version-matrix@v1.3.2

# Fetch the commit SHA for the v1.3.2 tag
gh api repos/nextcloud-ci/nextcloud-version-matrix/git/ref/tags/v1.3.2 --jq '.object.sha'

Repository: ashcoft/nextcloud-cad-viewer

Length of output: 229


Fix the truncated action SHA in .github/workflows/rector.yml (line 39)

  • The uses: ref @9196b025f1873130088b297995a229558ddba is shorter than a full 40-hex commit SHA, which will make GitHub Actions fail to resolve the action.
  • The suggested lookup for v1.3.2 via gh api .../git/ref/tags/v1.3.2 returned 404, so the next step is to replace with the correct full commit SHA (or use the exact existing tag/release).
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/rector.yml at line 39, The `uses:` ref currently uses a
truncated commit SHA `@9196b025f1873130088b297995a229558ddba` for
nextcloud-version-matrix which is shorter than a full 40-hex SHA and will fail;
replace that truncated ref with either the full 40-character commit SHA for the
commit that corresponds to tag `v1.3.2` or with the exact tag/release name
(e.g., `@v1.3.2` if the tag exists). Locate the `uses:
nextcloud-ci/nextcloud-version-matrix@...` line, verify the correct ref by
querying the repository tags or commit history (or `gh api`), and update the ref
to the full commit SHA or canonical tag to ensure GitHub Actions can resolve the
action.

@cubic-dev-ai cubic-dev-ai Bot May 24, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1: Invalid commit SHA — the pinned hash is only 37 characters instead of the required 40. GitHub Actions cannot resolve a truncated SHA, so this workflow will fail at the "Get php version" step. Verify the correct full commit hash for nextcloud-ci/nextcloud-version-matrix v1.3.2 and use the complete 40-character SHA.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At .github/workflows/rector.yml, line 39:

<comment>Invalid commit SHA — the pinned hash is only 37 characters instead of the required 40. GitHub Actions cannot resolve a truncated SHA, so this workflow will fail at the "Get php version" step. Verify the correct full commit hash for `nextcloud-ci/nextcloud-version-matrix` v1.3.2 and use the complete 40-character SHA.</comment>

<file context>
@@ -36,7 +36,7 @@ jobs:
       - name: Get php version
         id: versions
-        uses: icewind1991/nextcloud-version-matrix@8a7bac6300b2f0f3100088b297995a229558ddba # v1.3.2
+        uses: nextcloud-ci/nextcloud-version-matrix@9196b025f1873130088b297995a229558ddba # v1.3.2
 
       - name: Set up php${{ steps.versions.outputs.php-min }}
</file context>
Fix with Cubic


- name: Set up php${{ steps.versions.outputs.php-min }}
uses: shivammathur/setup-php@7c071dfe9dc99bdf297fa79cb49ea005b9fcadbc # v2.37.1
Expand Down
9 changes: 6 additions & 3 deletions .reuse/dep5
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: nextcloud-cad-viewer
Upstream-Contact: CAD Viewer Contributors
Upstream-Name: cad_viewer
Source: https://github.com/ashcoft/nextcloud-cad-viewer
Comment on lines +2 to 3

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Description: Check if the GitHub repository name has changed to match the new app ID

# Fetch the repository information
gh repo view ashcoft/nextcloud-cad-viewer --json name,nameWithOwner 2>&1

# Also check if a repository with the new name exists
gh repo view ashcoft/cad_viewer --json name,nameWithOwner 2>&1 || echo "Repository ashcroft/cad_viewer does not exist"

Repository: ashcoft/nextcloud-cad-viewer

Length of output: 289


Clarify .reuse/dep5 upstream metadata
Source still points to the existing upstream repo https://github.com/ashcoft/nextcloud-cad-viewer; the remaining inconsistency is that Upstream-Name: cad_viewer doesn’t match the nextcloud-cad-viewer repo slug in Source. Align Upstream-Name and/or Source to the intended upstream/app name for consistency.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.reuse/dep5 around lines 2 - 3, The .reuse/dep5 metadata has mismatched
upstream identifiers: the Upstream-Name field is "cad_viewer" while Source
points to "https://github.com/ashcoft/nextcloud-cad-viewer"; update either
Upstream-Name or Source so they consistently refer to the same upstream (for
example change Upstream-Name to "nextcloud-cad-viewer" to match the repo slug,
or update Source to the intended upstream URL that matches "cad_viewer"), and
ensure the chosen value reflects the canonical upstream/app name across the
file.


Files: *
Copyright: 2026 CAD Viewer Contributors
Copyright: 2024 ashcoft
License: MIT

Files: .github/workflows/*
Copyright: 2023-2024 Nextcloud GmbH and Nextcloud contributors
License: MIT
Comment on lines 5 to 11

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Description: Search for references to CC0 in the repository to identify which files might use this license

# Search for CC0 references in documentation and metadata
rg -i 'CC0' --type-add 'config:*.{json,xml,md,txt,yml,yaml}' --type config -C 2

# Check if there are any SPDX headers indicating CC0
rg 'SPDX-License-Identifier.*CC0' -C 2

Repository: ashcoft/nextcloud-cad-viewer

Length of output: 4978


.reuse/dep5 needs CC0-1.0 attribution for LICENSES/CC0-1.0.txt

.reuse/dep5 currently assigns Files: * (MIT) and does not define a Files: LICENSES/CC0-1.0.txt block, so the CC0 license text file is covered by MIT instead of License: CC0-1.0. Add the appropriate Files: entry (with the CC0-1.0 copyright/affirmer text).

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.reuse/dep5 around lines 5 - 11, Update the .reuse/dep5 metadata to add a
dedicated block for the CC0 license file so it's not covered by the global
"Files: *" MIT entry: add a new entry with "Files: LICENSES/CC0-1.0.txt", the
correct copyright/affirmer text used by the CC0 file (e.g. the year range and
the copyright/affirmer name that appears inside LICENSES/CC0-1.0.txt), and
"License: CC0-1.0" so the file is explicitly attributed to CC0-1.0 rather than
MIT.

121 changes: 121 additions & 0 deletions LICENSES/CC0-1.0.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
Creative Commons Legal Code

CC0 1.0 Universal

CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE
LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN
ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS
INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO
WARRANTIES REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR
WORKS PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES
RESULTING FROM THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS
PROVIDED HEREUNDER.

Statement of Purpose

The laws of most jurisdictions throughout the world automatically confer
exclusive Copyright and Related Rights (defined below) upon the creator
and subsequent owner(s) (each and all, an "owner") of an original work of
authorship and/or a database (each, a "Work").

Certain owners wish to permanently relinquish those rights to a Work for
the purpose of contributing to a commons of creative, cultural and
scientific works ("Commons") that the public can reliably and without fear
of later claims of infringement build upon, modify, incorporate in other
works, reuse and redistribute as freely as possible in any form whatsoever
and for any purposes, including without limitation commercial purposes.
These owners may contribute to the Commons to promote the ideal of a free
culture and the further production of creative, cultural and scientific
works, or to gain reputation or greater distribution for their Work in
part through the use and efforts of others.

For these and/or other purposes and motivations, and without any
expectation of additional consideration or compensation, the person
associating CC0 with a Work (the "Affirmer"), to the extent that he or she
is the owner of Copyright and Related Rights in the Work, voluntarily
elects to apply CC0 to the Work and publicly distribute the Work under its
terms, with knowledge of his or her Copyright and Related Rights in the
Work and the meaning and intended legal effect of CC0 on those rights.

1. Copyright and Related Rights. A Work made available under CC0 may be
protected by copyright and related or neighboring rights ("Copyright and
Related Rights"). Copyright and Related Rights include, but are not
limited to, the following:

i. the right to reproduce, adapt, distribute, perform, display,
communicate, and translate a Work;
ii. moral rights retained by the original author(s) and/or performer(s);
iii. publicity and privacy rights pertaining to a person's image or
likeness depicted in a Work;
iv. rights protecting against unfair competition in regards to a Work,
subject to the limitations in paragraph 4(a), below;
v. rights protecting the extraction, dissemination, use and reuse of
data in a Work;
vi. database rights (such as those arising under Directive 96/9/EC of the
European Parliament and of the Council of 11 March 1996 on the legal
protection of databases, and under any national implementation
thereof, including any amended or successive version of such
directive); and
vii. other similar, equivalent or corresponding rights throughout the
world based on applicable law or treaty, and any national
implementations thereof.

2. Waiver. To the greatest extent permitted by, but not in contravention
of, applicable law, Affirmer hereby overtly, fully, permanently,
irrevocably and unconditionally waives, abandons, and relinquishes all of
Affirmer's Copyright and Related Rights and associated claims and causes
of action, whether now known or unknown (including existing as well as
future claims and causes of action), in the Work (i) in all territories
worldwide, (ii) for the maximum duration provided by applicable law or
treaty (including future time extensions), (iii) in any current or future
medium and for any number of copies, and (iv) for any purpose whatsoever,
including without limitation commercial, advertising or promotional
purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each
member of the public at large and to the detriment of Affirmer's heirs and
successors, fully intending that such Waiver shall not be subject to
revocation, rescission, cancellation, termination, or any other legal or
equitable action to disrupt the quiet enjoyment of the Work by the public
as contemplated by Affirmer's express Statement of Purpose.

3. Public License Fallback. Should any part of the Waiver for any reason
be judged legally invalid or ineffective under applicable law, then the
Waiver shall be preserved to the maximum extent permitted taking into
account Affirmer's express Statement of Purpose. In addition, to the
extent the Waiver is so judged Affirmer hereby grants to each affected
person a royalty-free, non transferable, non sublicensable, non exclusive,
irrevocable and unconditional license to exercise Affirmer's Copyright and
Related Rights in the Work (i) in all territories worldwide, (ii) for the
maximum duration provided by applicable law or treaty (including future
time extensions), (iii) in any current or future medium and for any number
of copies, and (iv) for any purpose whatsoever, including without
limitation commercial, advertising or promotional purposes (the
"License"). The License shall be deemed effective as of the date CC0 was
applied by Affirmer to the Work. Should any part of the License for any
reason be judged legally invalid or ineffective under applicable law, such
partial invalidity or ineffectiveness shall not invalidate the remainder
of the License, and in such case Affirmer hereby affirms that he or she
will not (i) exercise any of his or her remaining Copyright and Related
Rights in the Work or (ii) assert any associated claims and causes of action
with respect to the Work, in either case contrary to Affirmer's express
Statement of Purpose.

4. Limitations and Disclaimers.

a. No trademark or patent rights held by Affirmer are waived, abandoned,
surrendered, licensed or otherwise affected by this document.
b. Affirmer offers the Work as-is and makes no representations or
warranties of any kind concerning the Work, express, implied,
statutory or otherwise, including without limitation warranties of
title, merchantability, fitness for a particular purpose, non
infringement, or the absence of latent or other defects, accuracy, or
the present or absence of errors, whether or not discoverable, all to
the greatest extent permitted by applicable law.
c. Affirmer disclaims responsibility for clearing rights of other persons
that may apply to the Work or any use thereof, including without
limitation any person's Copyright and Related Rights in the Work.
Further, Affirmer disclaims responsibility for obtaining any necessary
consents, permissions or other rights required for any use of the
Work.
d. Affirmer understands and acknowledges that Creative Commons is not a
party to this document and has no duty or obligation with respect to
this CC0 or use of the Work.
6 changes: 3 additions & 3 deletions appinfo/info.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
<info xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://apps.nextcloud.com/schema/apps/info.xsd">
<id>nextcloud-cad-viewer</id>
<id>cad_viewer</id>
<name>CAD Viewer</name>
<summary>DWG/DXF file viewer for Nextcloud</summary>
<description><![CDATA[A native Nextcloud app that provides DWG and DXF file viewing capabilities. Integrates [mlightcad/cad-viewer](https://github.com/mlightcad/cad-viewer) - a fully web-based CAD viewer that runs entirely in the browser without backend server requirements.
Expand Down Expand Up @@ -33,9 +33,9 @@
</dependencies>
<navigations>
<navigation>
<id>nextcloud-cad-viewer</id>
<id>cad_viewer</id>
<name>CAD Viewer</name>
<route>nextcloud-cad-viewer.view.index</route>
<route>cad_viewer.view.index</route>
<type>link</type>
</navigation>
</navigations>
Expand Down
2 changes: 1 addition & 1 deletion lib/AppInfo/Application.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@

class Application extends App implements IBootstrap
{
public const APP_ID = 'nextcloud-cad-viewer';
public const APP_ID = 'cad_viewer';

public function __construct()
{
Expand Down
2 changes: 1 addition & 1 deletion phpstan.neon
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ parameters:
- lib
bootstrapFiles:
- vendor/autoload.php
# min: 80300
# min: 8.3
treatPhpDocTypesAsCertain: false
ignoreErrors:
-
Expand Down
7 changes: 4 additions & 3 deletions src/App.vue
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,12 @@ declare global {
}

const t = (app: string, text: string) => {
return (window as any).t ? (window as any).t(app, text) : text
const nextcloudTranslate = (window as unknown as { t?: (app: string, text: string) => string }).t
return nextcloudTranslate ? nextcloudTranslate(app, text) : text
}

// Use the new app ID for translations
const appTranslation = (text: string) => t('nextcloud-cad-viewer', text)
const appTranslation = (text: string) => t('cad_viewer', text)

export default defineComponent({
name: 'CadViewerApp',
Expand Down Expand Up @@ -69,7 +70,7 @@ export default defineComponent({
return
}

fileUrl.value = generateUrl('/apps/nextcloud-cad-viewer/api/file/{fileId}/content', { fileId: fid as string })
fileUrl.value = generateUrl('/apps/cad_viewer/api/file/{fileId}/content', { fileId: fid as string })

if (viewerContainer.value) {
viewerInstance.value = await loadCADViewer(viewerContainer.value, {
Expand Down
4 changes: 2 additions & 2 deletions src/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,14 +27,14 @@ function registerFileAction(): void {
if (OCA.Files && typeof OCA.Files.registerFileAction === 'function') {
OCA.Files.registerFileAction({
name: 'cad-viewer-open',
displayName: t('nextcloud-cad-viewer', 'Open with CAD Viewer'),
displayName: t('cad_viewer', 'Open with CAD Viewer'),
mime,
permissions: OC.PERMISSION_READ,
icon: () => OC.imagePath('core', 'actions/screen'),
actionHandler: (_fileName: string, context: { fileInfo?: { id: number | string } }) => {
const fileId = context.fileInfo?.id
if (fileId) {
window.location.href = OC.generateUrl('/apps/nextcloud-cad-viewer/view') + '?fileIds=' + fileId
window.location.href = OC.generateUrl('/apps/cad_viewer/view') + '?fileIds=' + fileId
}
},
})
Expand Down
Loading
Loading