Add self-contained Homebrew tap#43
Conversation
|
🧙 Sourcery has finished reviewing your pull request! Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
📝 WalkthroughWalkthroughAdds an AutoPiP Homebrew cask with Sparkle updates, quarantine handling, cleanup, CI lifecycle validation, automated stable-release bumps, and README installation commands. ChangesHomebrew cask distribution
Estimated code review effort: 3 (Moderate) | ~25 minutes Sequence Diagram(s)sequenceDiagram
participant Appcast
participant GitHubActions
participant CaskFile
participant GitHubRelease
Appcast->>GitHubActions: provide latest stable version and DMG URL
GitHubActions->>CaskFile: compare current version and validate URL
GitHubActions->>GitHubRelease: download release DMG
GitHubRelease-->>GitHubActions: return DMG
GitHubActions->>CaskFile: write version and SHA256
GitHubActions->>CaskFile: commit and push updated cask
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with 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.
Inline comments:
In `@Casks/autopip.rb`:
- Around line 54-57: Remove the automatic quarantine-clearing commands from the
preflight block and the corresponding post-install retry around AutoPiP.app.
Leave Gatekeeper quarantine intact by default, or gate any removal behind an
explicit user opt-in and document the manual override path.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro Plus
Run ID: 89fd2b11-ddc7-4d5e-b91c-11fa49ad85ae
📒 Files selected for processing (4)
.github/workflows/homebrew-cask-bump.yml.github/workflows/homebrew-cask.ymlCasks/autopip.rbREADME.md
| preflight do | ||
| command.run "/usr/bin/xattr", | ||
| args: ["-dr", "com.apple.quarantine", "#{staged_path}/AutoPiP.app"], | ||
| must_succeed: false |
There was a problem hiding this comment.
🔒 Security & Privacy | 🟠 Major | ⚡ Quick win
Do not silently bypass Gatekeeper.
This removes quarantine before the user can make an informed launch decision; lines 80-82 retry the same bypass after installation. Require explicit user opt-in (or leave quarantine intact and document the manual override) instead of automatically making an unnotarized build launchable.
🤖 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 `@Casks/autopip.rb` around lines 54 - 57, Remove the automatic
quarantine-clearing commands from the preflight block and the corresponding
post-install retry around AutoPiP.app. Leave Gatekeeper quarantine intact by
default, or gate any removal behind an explicit user opt-in and document the
manual override path.
Adds a Homebrew tap that lives inside this repository; no separate
homebrew-autopiprepo to create or maintain. The cask sits inCasks/, which is the layout Homebrew looks for in any tap.The tap URL is passed explicitly because this repo isn't named
homebrew-autopip. Installing the fully qualified name also satisfies the tap trust requirement introduced in Homebrew 6.0, and scopes that trust to this one cask instead of the whole tap.Casks/autopip.rb2.1.0-beta19; thelivecheckblock iteratesitemsand picks the newest one with no<sparkle:channel>, which resolves to2.0.0.auto_updates true, sobrew upgradeleaves Sparkle in charge.depends_on macos: :ventura; the app requires 13.5, but Homebrew can only express major releases.preflightblock clearscom.apple.quarantineon the staged copy before it's moved into/Applications; clearing it inpostflightinstead would need App Management (TCC) permission that the calling terminal usually doesn't have. Apostflightblock then double-checks the installed bundle and raises with recovery instructions if it's still quarantined, rather than silently handing over an app that won't open.zapremoves the sandbox containers forcom.vd.AutoPiPandcom.vd.AutoPiP.Extension.caveatsexplains that quarantine is cleared automatically and macOS hasn't vetted the build, plus the one remaining manual step: enabling the extension in Safari..github/workflows/homebrew-cask.ymlRuns on macOS whenever anything under
Casks/changes: turns the checkout into a real tap, thenbrew style,brew audit --cask --online --strict,brew livecheck,brew install --cask, an assertion that the installed app and its extension are not quarantined, andbrew uninstall --cask --zap..github/workflows/homebrew-cask-bump.ymlDaily job that reads the newest stable item from
appcast.xml, downloads the DMG, and rewritesversion+sha256if they've drifted. It bails out if the appcast URL stops matching the cask's.../releases/download/v#{version}/AutoPiP.dmgpattern, so a mismatch fails loudly instead of shipping a broken cask.It's on a schedule rather than
release: publishedbecause the release workflow cuts releases with a workflow token, and events raised by a workflow token don't start further workflow runs. Happy to fold the bump intobuild-release.ymlinstead, or drop it and update the cask by hand; the cask itself doesn't depend on it.Verification
The cask workflow was run on a fork against
macos-15and passed end to end:brew style,brew audit --cask --online --strict,brew livecheck,brew install --cask(app lands in/Applicationswith the extension.appexinside it, neither quarantined), andbrew uninstall --cask --zap. The bump workflow was run against the currentappcast.xml: it resolved2.0.0, matched the cask, and correctly made no commit.Closes #42
Summary by Sourcery
Add a self-contained Homebrew tap and cask for AutoPiP and wire it into documentation and CI.
New Features:
CI:
Summary by CodeRabbit
New Features
Bug Fixes
Chores