This repository was archived by the owner on Oct 28, 2026. It is now read-only.
Repository navigation
Auto-install composer and npm dependencies on checkout - #26
Merged
Merged
Conversation
git-checkout, git-pull and repo-register now run composer install / npm install in the checkout whenever it has a composer.json / package.json, since vendor/ and node_modules/ are gitignored and a bare checkout isn't loadable without them. rsync-local and rsync-remote do the same in whichever path(s) they synced (or the destination root for a full-tree sync), so a deploy doesn't rely solely on those directories having been carried over by the transfer. Updates the ops docs and CI workflow for the new composer/nodejs/npm dependency on staging and appservers.
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (5)
📝 WalkthroughWalkthroughChangesDependency installation
Estimated code review effort: 3 (Moderate) | ~20 minutes Suggested reviewers: Sequence Diagram(s)sequenceDiagram
participant DeploymentOperation
participant DependencyInstaller
participant ComposerNpm
participant CheckoutOrDestination
DeploymentOperation->>CheckoutOrDestination: update or synchronize files
DeploymentOperation->>DependencyInstaller: inspect manifests
DependencyInstaller->>ComposerNpm: install declared dependencies
ComposerNpm-->>DependencyInstaller: command results
DependencyInstaller-->>DeploymentOperation: installation details
✨ Finishing Touches📝 Generate docstrings
🧪 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 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Add automatic dependency installation to deployment operations. When
git-checkout,git-pull,repo-register,rsync-local, orrsync-remotecomplete, the shim now runscomposer installandnpm installifcomposer.jsonorpackage.jsonfiles are present in the affected checkout(s).Key Changes
install_dependencies()to run composer/npm in a single directory, andinstall_dependencies_for_sync()to handle rsync operations that may affect multiple pathsgit-checkoutandgit-pullnow install dependencies after pulling coderepo-registerinstalls dependencies after initial clonersync-localandrsync-remoteinstall dependencies in path-restricted checkouts (or the destination root for full-tree syncs)installedfield in their response payload listing which dependency managers ranImplementation Details
--no-dev --no-interaction --optimize-autoloaderflags to exclude test dependencies and handle non-interactive environments--pathrestriction, only the destination root is checked (not a recursive walk), avoiding unnecessary dependency installs in unrelated subdirectoriesinstalledfield is only added to response payloads when dependencies were actually installedhttps://claude.ai/code/session_01WvaajqC8EkbxnuexsBHSGa
Summary by CodeRabbit
New Features
Documentation
Tests