Skip to content

Conversation

@mokosiy
Copy link

@mokosiy mokosiy commented Oct 21, 2025


Manifest summary

App name: MultiDrive
Version: 1.2
Homepage: https://multidrive.io
License: Freeware
Installer type: Silent (/s /D=$dir)
Binaries:

  • MultiDrive.exe – GUI
  • mdcli.exe – CLI

Verification

Tested locally on Windows 10 & 11:

  • Silent installation works
  • Both GUI and CLI shims created (multidrive, mdcli)
  • Uninstall works
  • checkver detects version correctly from changelog

Autoupdate

Uses https://dl.atola.com/multidrive/MultiDriveSetup_$version.exe

Package request

Closes #16536

Summary by CodeRabbit

  • Chores
    • Added a Windows installer manifest: includes 64-bit download with SHA-256 integrity check, silent install arguments, executable/binary mappings, Start Menu shortcut, and GitHub-based version checks with a templated autoupdate URL supporting major/minor version substitution.

@coderabbitai
Copy link

coderabbitai bot commented Oct 21, 2025

Note

Other AI code review bot(s) detected

CodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review.

Walkthrough

Adds a new JSON manifest at bucket/multidrive.json describing MultiDrive v1.2.0: metadata, x64 download URL and SHA‑256, silent install args, executable mappings, Start Menu/desktop shortcuts, GitHub-based checkver with a templated autoupdate URL and 64-bit architecture settings.

Changes

Cohort / File(s) Summary
MultiDrive manifest
bucket/multidrive.json
New JSON manifest declaring MultiDrive v1.2.0: description, homepage, license, x64 download URL and SHA‑256, silent installer arguments, binary/executable mappings (MultiDrive.exe, mdcli.exe), Start Menu and desktop shortcut entries, GitHub changelog checkver with case-insensitive regex, and an autoupdate URL template using version variables.

Sequence Diagram(s)

sequenceDiagram
    autonumber
    participant PM as Package Manager
    participant Manifest as bucket/multidrive.json
    participant GH as GitHub (releases/changelog)
    participant Host as Download Host (x64 ZIP)
    participant Installer as Windows Installer

    PM->>Manifest: read metadata, version, urls, sha256, args
    PM->>Host: download x64 artifact
    Host-->>PM: artifact.zip
    PM->>PM: verify SHA‑256
    alt checksum OK
        PM->>Installer: run installer with silent args
        Installer-->>PM: install success
        PM->>PM: register binaries & create shortcuts
    else checksum mismatch
        PM-->>PM: abort install (checksum error)
    end

    Note over PM,GH: Autoupdate / checkver flow
    PM->>GH: fetch changelog/release page
    GH-->>PM: page content
    PM->>PM: extract latest version using regex
    PM->>Manifest: expand autoupdate URL template -> artifact URL
Loading

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

  • Verify download URL and SHA‑256 match the release asset.
  • Confirm silent installer arguments are appropriate for the installer type.
  • Check executable names and shortcut target paths.
  • Validate the changelog regex and autoupdate URL template for correct version substitution.

Poem

🐇 I nibbled on bytes and found a feed,
A manifest tidy, swift as a reed.
Hashes, shortcuts, versions in tune —
Quiet install beneath the moon. 🥕

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and specifically describes the main change: adding a new MultiDrive manifest at version 1.2 with a concise, descriptive format following the repository's conventions.
Description check ✅ Passed The pull request description is comprehensive and follows the template structure with conventional title format, confirming template compliance, manifest details, verification, and package request reference.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions
Copy link
Contributor

Your changes did not pass all checks.

Please address the issues in the manifest and comment starting with /verify to rerun the checks.

multidrive

  • Lint
  • Description
  • License
  • Hashes
  • Checkver
  • Autoupdate

Check the full log for details.

@z-Fng z-Fng added the package-request-needed Create a package request issue before raising PR. Check the criteria for a package to be accepted. label Oct 21, 2025
@z-Fng z-Fng marked this pull request as draft October 21, 2025 13:49
@mokosiy mokosiy marked this pull request as ready for review October 22, 2025 06:34
@mokosiy
Copy link
Author

mokosiy commented Oct 22, 2025

I checked the link. It works, and the file can be downloaded.
https://dl.atola.com/multidrive/MultiDriveSetup_1.2.exe

@mokosiy
Copy link
Author

mokosiy commented Oct 24, 2025

/verify

@github-actions
Copy link
Contributor

Your changes did not pass all checks.

Please address the issues in the manifest and comment starting with /verify to rerun the checks.

multidrive

  • Lint
  • Description
  • License
  • Hashes
  • Checkver
  • Autoupdate

Check the full log for details.

@mokosiy
Copy link
Author

mokosiy commented Oct 24, 2025

/verify

@github-actions
Copy link
Contributor

Your changes did not pass all checks.

Please address the issues in the manifest and comment starting with /verify to rerun the checks.

multidrive

  • Lint
  • Description
  • License
  • Hashes
  • Checkver
  • Autoupdate

Check the full log for details.

@mokosiy
Copy link
Author

mokosiy commented Oct 27, 2025

/verify

@github-actions
Copy link
Contributor

Your changes did not pass all checks.

Please address the issues in the manifest and comment starting with /verify to rerun the checks.

multidrive

  • Lint
  • Description
  • License
  • Hashes
  • Checkver
  • Autoupdate

Check the full log for details.

@mokosiy
Copy link
Author

mokosiy commented Oct 27, 2025

/verify

@github-actions
Copy link
Contributor

Your changes did not pass all checks.

Please address the issues in the manifest and comment starting with /verify to rerun the checks.

multidrive

  • Lint
  • Description
  • License
  • Hashes
  • Checkver
  • Autoupdate

Check the full log for details.

Copy link
Author

@mokosiy mokosiy left a comment

Choose a reason for hiding this comment

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

Fixed download URL

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 3af8185 and 461402b.

📒 Files selected for processing (1)
  • bucket/multidrive.json (1 hunks)
🔇 Additional comments (2)
bucket/multidrive.json (2)

17-20: Verify checkver regex against actual changelog HTML.

The case-insensitive regex pattern (?i)Version(?:\\s*<!--.*?-->\\s*)?\\s*([\\d.]+) is designed to extract version numbers from the changelog at https://multidrive.io/changelog, accounting for optional HTML comments between "Version" and the version number. Ensure this regex reliably matches the actual HTML structure of the changelog without false positives or negatives.

Please verify the regex pattern matches the current changelog format by testing it locally or confirming through manual inspection of the target URL.


2-5: Manual verification required for SHA-256 hash integrity.

The sandbox environment cannot access external URLs to verify the hash against the actual binary. However, the URL structure in the file (https://github.com/atola-technology/multidrive/releases/download/v1.2.0/MultiDriveSetup_1.2.exe) appears valid and follows correct GitHub releases format. The hash on line 9 is present and properly formatted.

To complete verification, you should:

  • Download the file from the GitHub URL outside the sandbox
  • Compute its SHA-256 hash
  • Confirm it matches: A0A54F942BAD251D05C299713D74839757C905700FFF8AE46DB5CB9F3012366C

The original review comment references needing to "correct" the URL, but the current URL appears structurally sound. Clarify what specific correction is needed, if any.

Copy link
Author

@mokosiy mokosiy left a comment

Choose a reason for hiding this comment

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

autoupdate URL fixed

@mokosiy
Copy link
Author

mokosiy commented Nov 6, 2025

/verify

@github-actions
Copy link
Contributor

github-actions bot commented Nov 6, 2025

Your changes did not pass all checks.

Please address the issues in the manifest and comment starting with /verify to rerun the checks.

multidrive

  • Lint
  • Description
  • License
  • Hashes
  • Checkver
  • Autoupdate

Check the full log for details.

…ted manifest to use GitHub releases and simpler version matching
Copilot AI review requested due to automatic review settings November 6, 2025 06:54
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR adds a new Scoop manifest for MultiDrive, a free disk backup, clone, and wipe utility with CLI support. The manifest enables automated installation and updates of MultiDrive version 1.2.0 through Scoop.

  • Adds installation configuration for MultiDrive with silent install support
  • Configures command-line tools (MultiDrive.exe and mdcli.exe) to be available in PATH
  • Sets up automatic version checking and updates from the GitHub repository

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (1)
bucket/multidrive.json (1)

34-34: Regex pattern should support three-part versions.

The regex ([0-9]+\\.[0-9]+) matches only two-part versions (e.g., 1.2), not three-part versions (e.g., 1.2.3). If MultiDrive releases future versions with three-part numbers, version detection will fail. Broaden the pattern to ([0-9]+(?:\\.[0-9]+)+) to handle both formats:

-        "regex": "MultiDriveSetup_([0-9]+\\.[0-9]+)\\.exe"
+        "regex": "MultiDriveSetup_([0-9]+(?:\\.[0-9]+)+)\\.exe"
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 8cee3ac and 3b8f36c.

📒 Files selected for processing (1)
  • bucket/multidrive.json (1 hunks)
🧰 Additional context used
🧠 Learnings (8)
📓 Common learnings
Learnt from: mokosiy
Repo: ScoopInstaller/Extras PR: 16428
File: bucket/multidrive.json:8-8
Timestamp: 2025-10-27T13:19:16.982Z
Learning: For MultiDrive manifests in the ScoopInstaller/Extras repository: the direct download URL at dl.atola.com causes 403 errors due to Cloudflare Bot Fight Mode blocking the Scoop bot, so GitHub Releases URLs should be used instead (e.g., https://github.com/atola-technology/multidrive/releases/download/...).
📚 Learning: 2025-10-27T13:19:16.982Z
Learnt from: mokosiy
Repo: ScoopInstaller/Extras PR: 16428
File: bucket/multidrive.json:8-8
Timestamp: 2025-10-27T13:19:16.982Z
Learning: For MultiDrive manifests in the ScoopInstaller/Extras repository: the direct download URL at dl.atola.com causes 403 errors due to Cloudflare Bot Fight Mode blocking the Scoop bot, so GitHub Releases URLs should be used instead (e.g., https://github.com/atola-technology/multidrive/releases/download/...).

Applied to files:

  • bucket/multidrive.json
📚 Learning: 2025-10-16T15:59:21.258Z
Learnt from: o-l-a-v
Repo: ScoopInstaller/Extras PR: 16349
File: bucket/fvim.json:45-49
Timestamp: 2025-10-16T15:59:21.258Z
Learning: In Scoop manifests, the `autoupdate.url` and `autoupdate.architecture.<arch>.url` fields must be valid URIs according to the JSON schema (defined with `"format": "uri"`). Variables like `$matchUrlx64` that contain only path segments must be combined with a base URL (e.g., `https://github.com/.../releases/download/`) to form a complete valid URI.

Applied to files:

  • bucket/multidrive.json
📚 Learning: 2025-09-05T09:41:52.653Z
Learnt from: Gitoffthelawn
Repo: ScoopInstaller/Extras PR: 16106
File: bucket/czkawka-gui.json:25-25
Timestamp: 2025-09-05T09:41:52.653Z
Learning: For czkawka-gui manifests in Scoop Extras, the correct upstream filename pattern for Windows GUI builds in recent versions uses "gtk46" (without underscore), not "gtk_46" (with underscore). The autoupdate URL should use "windows_czkawka_gui_gtk46.zip" format. This was confirmed by a working 10.0.0 update with valid hash.

Applied to files:

  • bucket/multidrive.json
📚 Learning: 2025-09-05T09:41:52.653Z
Learnt from: Gitoffthelawn
Repo: ScoopInstaller/Extras PR: 16106
File: bucket/czkawka-gui.json:25-25
Timestamp: 2025-09-05T09:41:52.653Z
Learning: For czkawka-gui manifests in Scoop Extras, the correct upstream filename pattern for Windows GUI builds uses "gtk46" (without underscore), not "gtk_46" (with underscore). The autoupdate URL should use "windows_czkawka_gui_gtk46.zip" format.

Applied to files:

  • bucket/multidrive.json
📚 Learning: 2025-10-19T13:58:23.389Z
Learnt from: o-l-a-v
Repo: ScoopInstaller/Extras PR: 16378
File: bucket/compactgui.json:20-22
Timestamp: 2025-10-19T13:58:23.389Z
Learning: In the ScoopInstaller/Extras repository, the CompactGUI manifest removed hash verification from the autoupdate block because the hash verification mechanism (scraping SHA-256 from release page HTML) is no longer available in newer CompactGUI releases. GitHub asset digests exist in beta releases but not in v3.8.0, and Scoop doesn't have built-in support for extracting from GitHub API asset digests.

Applied to files:

  • bucket/multidrive.json
📚 Learning: 2025-10-13T09:37:06.093Z
Learnt from: o-l-a-v
Repo: ScoopInstaller/Extras PR: 16328
File: bucket/winutil.json:0-0
Timestamp: 2025-10-13T09:37:06.093Z
Learning: When reviewing code in Scoop manifests, always verify the actual file content if the diff appears incomplete or unusual, as diff context can be truncated or displayed incorrectly. The pattern `[string[]](...).ForEach{...}` is commonly used in post_uninstall scripts across the Extras repository.

Applied to files:

  • bucket/multidrive.json
📚 Learning: 2025-10-15T11:54:31.320Z
Learnt from: o-l-a-v
Repo: ScoopInstaller/Extras PR: 16341
File: bucket/foxit-pdf-reader.json:47-50
Timestamp: 2025-10-15T11:54:31.320Z
Learning: In bucket/foxit-pdf-reader.json and bucket/foxit-reader.json, the checkver script uses MaximumRedirection 1 (not 0) for Invoke-WebRequest to properly handle Foxit's backend redirect behavior when parsing the Location header for version detection.

Applied to files:

  • bucket/multidrive.json

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 3b8f36c and 44d6198.

📒 Files selected for processing (1)
  • bucket/multidrive.json (1 hunks)
🧰 Additional context used
🧠 Learnings (9)
📓 Common learnings
Learnt from: mokosiy
Repo: ScoopInstaller/Extras PR: 16428
File: bucket/multidrive.json:8-8
Timestamp: 2025-10-27T13:19:16.982Z
Learning: For MultiDrive manifests in the ScoopInstaller/Extras repository: the direct download URL at dl.atola.com causes 403 errors due to Cloudflare Bot Fight Mode blocking the Scoop bot, so GitHub Releases URLs should be used instead (e.g., https://github.com/atola-technology/multidrive/releases/download/...).
📚 Learning: 2025-10-27T13:19:16.982Z
Learnt from: mokosiy
Repo: ScoopInstaller/Extras PR: 16428
File: bucket/multidrive.json:8-8
Timestamp: 2025-10-27T13:19:16.982Z
Learning: For MultiDrive manifests in the ScoopInstaller/Extras repository: the direct download URL at dl.atola.com causes 403 errors due to Cloudflare Bot Fight Mode blocking the Scoop bot, so GitHub Releases URLs should be used instead (e.g., https://github.com/atola-technology/multidrive/releases/download/...).

Applied to files:

  • bucket/multidrive.json
📚 Learning: 2025-10-16T15:59:21.258Z
Learnt from: o-l-a-v
Repo: ScoopInstaller/Extras PR: 16349
File: bucket/fvim.json:45-49
Timestamp: 2025-10-16T15:59:21.258Z
Learning: In Scoop manifests, the `autoupdate.url` and `autoupdate.architecture.<arch>.url` fields must be valid URIs according to the JSON schema (defined with `"format": "uri"`). Variables like `$matchUrlx64` that contain only path segments must be combined with a base URL (e.g., `https://github.com/.../releases/download/`) to form a complete valid URI.

Applied to files:

  • bucket/multidrive.json
📚 Learning: 2025-09-05T09:41:52.653Z
Learnt from: Gitoffthelawn
Repo: ScoopInstaller/Extras PR: 16106
File: bucket/czkawka-gui.json:25-25
Timestamp: 2025-09-05T09:41:52.653Z
Learning: For czkawka-gui manifests in Scoop Extras, the correct upstream filename pattern for Windows GUI builds in recent versions uses "gtk46" (without underscore), not "gtk_46" (with underscore). The autoupdate URL should use "windows_czkawka_gui_gtk46.zip" format. This was confirmed by a working 10.0.0 update with valid hash.

Applied to files:

  • bucket/multidrive.json
📚 Learning: 2025-09-05T09:41:52.653Z
Learnt from: Gitoffthelawn
Repo: ScoopInstaller/Extras PR: 16106
File: bucket/czkawka-gui.json:25-25
Timestamp: 2025-09-05T09:41:52.653Z
Learning: For czkawka-gui manifests in Scoop Extras, the correct upstream filename pattern for Windows GUI builds uses "gtk46" (without underscore), not "gtk_46" (with underscore). The autoupdate URL should use "windows_czkawka_gui_gtk46.zip" format.

Applied to files:

  • bucket/multidrive.json
📚 Learning: 2025-10-19T13:58:23.389Z
Learnt from: o-l-a-v
Repo: ScoopInstaller/Extras PR: 16378
File: bucket/compactgui.json:20-22
Timestamp: 2025-10-19T13:58:23.389Z
Learning: In the ScoopInstaller/Extras repository, the CompactGUI manifest removed hash verification from the autoupdate block because the hash verification mechanism (scraping SHA-256 from release page HTML) is no longer available in newer CompactGUI releases. GitHub asset digests exist in beta releases but not in v3.8.0, and Scoop doesn't have built-in support for extracting from GitHub API asset digests.

Applied to files:

  • bucket/multidrive.json
📚 Learning: 2025-10-13T09:37:06.093Z
Learnt from: o-l-a-v
Repo: ScoopInstaller/Extras PR: 16328
File: bucket/winutil.json:0-0
Timestamp: 2025-10-13T09:37:06.093Z
Learning: When reviewing code in Scoop manifests, always verify the actual file content if the diff appears incomplete or unusual, as diff context can be truncated or displayed incorrectly. The pattern `[string[]](...).ForEach{...}` is commonly used in post_uninstall scripts across the Extras repository.

Applied to files:

  • bucket/multidrive.json
📚 Learning: 2025-10-15T11:54:31.320Z
Learnt from: o-l-a-v
Repo: ScoopInstaller/Extras PR: 16341
File: bucket/foxit-pdf-reader.json:47-50
Timestamp: 2025-10-15T11:54:31.320Z
Learning: In bucket/foxit-pdf-reader.json and bucket/foxit-reader.json, the checkver script uses MaximumRedirection 1 (not 0) for Invoke-WebRequest to properly handle Foxit's backend redirect behavior when parsing the Location header for version detection.

Applied to files:

  • bucket/multidrive.json
📚 Learning: 2025-10-16T13:55:04.356Z
Learnt from: o-l-a-v
Repo: ScoopInstaller/Extras PR: 16349
File: bucket/debugtron.json:18-25
Timestamp: 2025-10-16T13:55:04.356Z
Learning: In Scoop manifests, the `checkver.github` field must be a full URI (e.g., `https://github.com/owner/repo`), not just `owner/repo`. The schema defines it with `"format": "uri"`.

Applied to files:

  • bucket/multidrive.json
🔇 Additional comments (3)
bucket/multidrive.json (3)

18-20: Update bin array to create lowercase multidrive shim as per PR objectives.

The PR objectives specify shims multidrive (lowercase) and mdcli, but the current bin array entry "MultiDrive.exe" would create a shim named MultiDrive (capitalized) due to case preservation. To match the PR objectives, use a tuple format to specify a custom shim name:

 "bin": [
-    "MultiDrive.exe",
+    ["MultiDrive.exe", "multidrive"],
     "mdcli.exe"
 ]

This creates shim multidrive (lowercase) for MultiDrive.exe and mdcli for mdcli.exe, matching the PR requirements.


31-37: Autoupdate URL template is correct, but dependent on checkver regex.

The autoupdate block correctly uses $version, $majorVersion, and $minorVersion to construct the GitHub release URL. This pattern is supported by Scoop and used in established manifests like MySQL. Once the checkver regex is added (as noted above), the variables will properly resolve:

  • v$versionv1.2.0 (full release tag)
  • MultiDriveSetup_$majorVersion.$minorVersion.exeMultiDriveSetup_1.2.exe (filename with major.minor)

This matches the download URL structure on line 8.


31-37: I'll gather the necessary information to verify the autoupdate variable syntax and checkver configuration.

I found critical information. The Scoop documentation confirms that $majorVersion and $minorVersion are supported variables, derived by splitting the version on dots, and the MySQL example in the official autoupdate documentation explicitly uses $majorVersion.$minorVersion in URLs.

Let me examine the manifest file to verify the checkver configuration and whether the autoupdate structure aligns with the release URLs.

Let me examine the actual manifest file to verify the checkver configuration and ensure all parts of the autoupdate block are correct.

Based on my verification, I've found critical information about the review comment.

The Scoop documentation confirms that $majorVersion and $minorVersion are supported built-in autoupdate variables, derived by splitting the version on dots. The official Scoop Manifest Autoupdate documentation includes a MySQL example that explicitly uses $majorVersion.$minorVersion in the autoupdate URL, demonstrating these are standard, supported variables.

The review comment's core assertion that these variables are "non-standard" is factually incorrect. However, the underlying concern about version alignment with the GitHub release structure could be valid, depending on how the checkver regex is configured. The review comment conflates two separate issues: (1) whether the variables exist (they do), and (2) whether they produce the right values for this specific manifest's release structure (which cannot be determined without seeing the checkver regex).


Likely an incorrect or invalid review comment.

@mokosiy
Copy link
Author

mokosiy commented Nov 6, 2025

/verify

@github-actions
Copy link
Contributor

github-actions bot commented Nov 6, 2025

Your changes did not pass all checks.

Please address the issues in the manifest and comment starting with /verify to rerun the checks.

multidrive

  • Lint
  • Description
  • License
  • Hashes
  • Checkver
  • Autoupdate

Check the full log for details.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

♻️ Duplicate comments (1)
bucket/multidrive.json (1)

28-30: Add missing regex field to checkver block.

The checkver configuration lacks a regex pattern to extract the version from GitHub release assets. Without this, checkver cannot reliably identify and parse new release versions. Add a regex that matches the installer filename pattern:

 "checkver": {
-    "github": "https://github.com/atola-technology/multidrive"
+    "github": "https://github.com/atola-technology/multidrive",
+    "regex": "MultiDriveSetup_([0-9]+\\.[0-9]+)\\.exe"
 }

This regex extracts the major.minor version (e.g., 1.2) from the release asset name, which is then used by autoupdate to construct both the tag (v$version = v1.2) and the filename (MultiDriveSetup_$majorVersion.$minorVersion.exe = MultiDriveSetup_1.2.exe).

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 44d6198 and 8d9f61c.

📒 Files selected for processing (1)
  • bucket/multidrive.json (1 hunks)
🧰 Additional context used
🧠 Learnings (10)
📓 Common learnings
Learnt from: mokosiy
Repo: ScoopInstaller/Extras PR: 16428
File: bucket/multidrive.json:8-8
Timestamp: 2025-10-27T13:19:16.982Z
Learning: For MultiDrive manifests in the ScoopInstaller/Extras repository: the direct download URL at dl.atola.com causes 403 errors due to Cloudflare Bot Fight Mode blocking the Scoop bot, so GitHub Releases URLs should be used instead (e.g., https://github.com/atola-technology/multidrive/releases/download/...).
Learnt from: o-l-a-v
Repo: ScoopInstaller/Extras PR: 16378
File: bucket/compactgui.json:20-22
Timestamp: 2025-10-19T13:58:23.389Z
Learning: In the ScoopInstaller/Extras repository, the CompactGUI manifest removed hash verification from the autoupdate block because the hash verification mechanism (scraping SHA-256 from release page HTML) is no longer available in newer CompactGUI releases. GitHub asset digests exist in beta releases but not in v3.8.0, and Scoop doesn't have built-in support for extracting from GitHub API asset digests.
📚 Learning: 2025-10-16T13:42:43.224Z
Learnt from: o-l-a-v
Repo: ScoopInstaller/Extras PR: 16349
File: bucket/debugviewpp.json:14-21
Timestamp: 2025-10-16T13:42:43.224Z
Learning: In the DebugViewPP project (CobaltFusion/DebugViewPP), the executable name changed from "DebugView++.exe" (in v1.8.0.103 and earlier) to "Debugviewpp.exe" (in v1.9.0.28 and later). The manifest bucket/debugviewpp.json correctly uses "Debugviewpp.exe" for current versions.

Applied to files:

  • bucket/multidrive.json
📚 Learning: 2025-10-27T13:19:16.982Z
Learnt from: mokosiy
Repo: ScoopInstaller/Extras PR: 16428
File: bucket/multidrive.json:8-8
Timestamp: 2025-10-27T13:19:16.982Z
Learning: For MultiDrive manifests in the ScoopInstaller/Extras repository: the direct download URL at dl.atola.com causes 403 errors due to Cloudflare Bot Fight Mode blocking the Scoop bot, so GitHub Releases URLs should be used instead (e.g., https://github.com/atola-technology/multidrive/releases/download/...).

Applied to files:

  • bucket/multidrive.json
📚 Learning: 2025-10-16T15:59:21.258Z
Learnt from: o-l-a-v
Repo: ScoopInstaller/Extras PR: 16349
File: bucket/fvim.json:45-49
Timestamp: 2025-10-16T15:59:21.258Z
Learning: In Scoop manifests, the `autoupdate.url` and `autoupdate.architecture.<arch>.url` fields must be valid URIs according to the JSON schema (defined with `"format": "uri"`). Variables like `$matchUrlx64` that contain only path segments must be combined with a base URL (e.g., `https://github.com/.../releases/download/`) to form a complete valid URI.

Applied to files:

  • bucket/multidrive.json
📚 Learning: 2025-09-05T09:41:52.653Z
Learnt from: Gitoffthelawn
Repo: ScoopInstaller/Extras PR: 16106
File: bucket/czkawka-gui.json:25-25
Timestamp: 2025-09-05T09:41:52.653Z
Learning: For czkawka-gui manifests in Scoop Extras, the correct upstream filename pattern for Windows GUI builds in recent versions uses "gtk46" (without underscore), not "gtk_46" (with underscore). The autoupdate URL should use "windows_czkawka_gui_gtk46.zip" format. This was confirmed by a working 10.0.0 update with valid hash.

Applied to files:

  • bucket/multidrive.json
📚 Learning: 2025-09-05T09:41:52.653Z
Learnt from: Gitoffthelawn
Repo: ScoopInstaller/Extras PR: 16106
File: bucket/czkawka-gui.json:25-25
Timestamp: 2025-09-05T09:41:52.653Z
Learning: For czkawka-gui manifests in Scoop Extras, the correct upstream filename pattern for Windows GUI builds uses "gtk46" (without underscore), not "gtk_46" (with underscore). The autoupdate URL should use "windows_czkawka_gui_gtk46.zip" format.

Applied to files:

  • bucket/multidrive.json
📚 Learning: 2025-10-19T13:58:23.389Z
Learnt from: o-l-a-v
Repo: ScoopInstaller/Extras PR: 16378
File: bucket/compactgui.json:20-22
Timestamp: 2025-10-19T13:58:23.389Z
Learning: In the ScoopInstaller/Extras repository, the CompactGUI manifest removed hash verification from the autoupdate block because the hash verification mechanism (scraping SHA-256 from release page HTML) is no longer available in newer CompactGUI releases. GitHub asset digests exist in beta releases but not in v3.8.0, and Scoop doesn't have built-in support for extracting from GitHub API asset digests.

Applied to files:

  • bucket/multidrive.json
📚 Learning: 2025-10-13T09:37:06.093Z
Learnt from: o-l-a-v
Repo: ScoopInstaller/Extras PR: 16328
File: bucket/winutil.json:0-0
Timestamp: 2025-10-13T09:37:06.093Z
Learning: When reviewing code in Scoop manifests, always verify the actual file content if the diff appears incomplete or unusual, as diff context can be truncated or displayed incorrectly. The pattern `[string[]](...).ForEach{...}` is commonly used in post_uninstall scripts across the Extras repository.

Applied to files:

  • bucket/multidrive.json
📚 Learning: 2025-10-15T11:54:31.320Z
Learnt from: o-l-a-v
Repo: ScoopInstaller/Extras PR: 16341
File: bucket/foxit-pdf-reader.json:47-50
Timestamp: 2025-10-15T11:54:31.320Z
Learning: In bucket/foxit-pdf-reader.json and bucket/foxit-reader.json, the checkver script uses MaximumRedirection 1 (not 0) for Invoke-WebRequest to properly handle Foxit's backend redirect behavior when parsing the Location header for version detection.

Applied to files:

  • bucket/multidrive.json
📚 Learning: 2025-10-16T13:55:04.356Z
Learnt from: o-l-a-v
Repo: ScoopInstaller/Extras PR: 16349
File: bucket/debugtron.json:18-25
Timestamp: 2025-10-16T13:55:04.356Z
Learning: In Scoop manifests, the `checkver.github` field must be a full URI (e.g., `https://github.com/owner/repo`), not just `owner/repo`. The schema defines it with `"format": "uri"`.

Applied to files:

  • bucket/multidrive.json
🔇 Additional comments (1)
bucket/multidrive.json (1)

1-37: No issues found. Manifest is valid and autoupdate syntax is correct.

The manifest has been verified:

  • JSON syntax is valid
  • $version, $majorVersion, and $minorVersion are documented Scoop autoupdate variables
  • For version "1.2.0", the autoupdate URL correctly resolves to v1.2.0/MultiDriveSetup_1.2.exe
  • The checkver.github field is a properly formatted full URI
  • The autoupdate URL has valid scheme and format

The manifest passes validation and requires no changes.

Comment on lines +18 to +20
"bin": [
"MultiDrive.exe",
"mdcli.exe"
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Configure bin to create lowercase shim names as specified in PR objectives.

The bin entries currently list bare executable names, which will create shims named "MultiDrive.exe" and "mdcli.exe". However, the PR objectives specify shim names should be lowercase: multidrive and mdcli. Use the tuple format to explicitly map executables to desired shim names:

 "bin": [
-    "MultiDrive.exe",
-    "mdcli.exe"
+    ["MultiDrive.exe", "multidrive"],
+    ["mdcli.exe", "mdcli"]
 ]
🤖 Prompt for AI Agents
In bucket/multidrive.json around lines 18 to 20, the "bin" array lists bare
executable names so the created shims will be "MultiDrive.exe" and "mdcli.exe"
instead of the lowercase shims required; update the entries to the tuple mapping
format so each executable is mapped to the desired lowercase shim name (map
"MultiDrive.exe" to "multidrive" and "mdcli.exe" to "mdcli") ensuring shims are
created with the specified lowercase names.

@mokosiy
Copy link
Author

mokosiy commented Nov 6, 2025

/verify

@github-actions
Copy link
Contributor

github-actions bot commented Nov 6, 2025

All changes look good.

Wait for review from human collaborators.

multidrive

  • Lint
  • Description
  • License
  • Hashes
  • Checkver
  • Autoupdate

Check the full log for details.

@mokosiy
Copy link
Author

mokosiy commented Nov 6, 2025

/verify

@github-actions
Copy link
Contributor

github-actions bot commented Nov 6, 2025

All changes look good.

Wait for review from human collaborators.

multidrive

  • Lint
  • Description
  • License
  • Hashes
  • Checkver
  • Autoupdate

Check the full log for details.

@mokosiy
Copy link
Author

mokosiy commented Nov 6, 2025

/verify

@github-actions
Copy link
Contributor

github-actions bot commented Nov 6, 2025

All changes look good.

Wait for review from human collaborators.

multidrive

  • Lint
  • Description
  • License
  • Hashes
  • Checkver
  • Autoupdate

Check the full log for details.

@z-Fng z-Fng removed the package-request-needed Create a package request issue before raising PR. Check the criteria for a package to be accepted. label Nov 6, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Request]: MultiDrive

2 participants