royvoetman/flysystem-gitlab-storage
Flysystem adapter for GitLab storage using GitLab’s Repository Files API v4. Store and retrieve files from a GitLab project/branch via a simple client + adapter setup. Supports optional path prefixes and integrates with Laravel via a companion package.
+ in GitLab API URLs), which could previously cause 400 Bad Request errors when uploading files with spaces in paths (e.g., my folder/file.txt).urlencode() was deprecated in favor of rawurlencode() for URL paths. This ensures compliance with GitLab’s updated API standards.filesystems.php, Storage facade). The fix is under the hood, requiring no manual intervention.| Risk Area | Severity | Mitigation Strategy | Update for v3.1.1 |
|---|---|---|---|
| GitLab API Rate Limits | High | Exponential backoff; cache tokens. | No change |
| Token Leakage | Medium | Use Laravel’s env() + .env. |
No change |
| Conflict Resolution | Medium | Branch config; avoid merge conflicts. | No change |
| Large File Handling | Medium | GitLab LFS for >10MB files. | No change |
| Path Encoding Issues | Low → Resolved | Fixed in v3.1.1: rawurlencode() replaces urlencode(). |
Critical for paths with spaces/special chars |
| Performance | Low | Batch operations if needed. | No change |
| Dependency Bloat | Low | Minimal package size. | No change |
my folder/file.txt, file%20with%20spaces.txt) in our CI/CD pipelines or production workflows?Storage facade or config usage.local/s3 for static assets.tests/output/my folder/results.txt) to ensure they no longer fail silently.spatie/laravel-medialibrary.400 Bad Request; now resolved.rawurlencode() is now used internally (e.g., my folder → my%20folder in API URLs)..env.filesystems.php as before.Storage::disk('local') with Storage::disk('gitlab').// Example: Previously could fail; now works
Storage::disk('gitlab')->put('my folder/file.txt', 'content');
schedule.composer.json to avoid regressions:
"royvoetman/flysystem-gitlab-storage": "^3.1.1"
400 Bad Request in GitLab API logs).#, ?, &) that might still require encoding.| Mode | Likelihood | Mitigation | Update for v3.1.1 |
|---|---|---|---|
| Path Encoding Errors | High → Low | Use rawurlencode() (fixed). |
Resolved |
| Rate Limiting | Medium | Exponential backoff. | No change |
| Token Expiry | Medium | Automate rotation. | No change |
| Large File Rejection | Low | Use GitLab LFS. | No change |
| Concurrent Writes | Low | Branch isolation. | No change |
my folder/file.txt).file#1.txt, file?query.txt).How can I help you explore Laravel packages today?