* deps: add dshafik/bag
* refactor: create Bag equivalents of Data classes
* zap: nuke the ill-conceived PluginProps/ThemeProps
* deps: remove spatie/laravel-data
* fix: comment out ignoreErrors pattern
* tweak: we don't use a baseline
* fix(test): use pg_trgm if not exists
* test: add test for /core/importers
* test: add test for gp-icon and theme screenshot download
* test: inline most test assertion functions into assertExactJson
* test: add hot tags tests
* test: add plugin updates tests
* test: 100% coverage of download routes
* test: 100% coverage of plugin update controller
* test: 100% coverage of all api controllers
* fix: make PassThroughController drop unexpected requests
* refactor: rm special case for / in PassThroughController
* test: auto-fake facades
* test: test PassThroughController for 100% coverage on Controllers
* test: drop auto-fakes because facades are made of hate
* zap: rm unused build-container-images action
* test: add test for AssetCacheHit event
* deps: composer upgrade and bump
* zap: drop redundant caching middleware
* fix: make PluginFactory generate proper versions format
* refactor: use $this->get directly instead of makeApiRequest
* ci: pin action versions in dependency-review action (irony)
Admittedly if actions/checkout is ever compromised, it's game over anyway.
* ci: make OSSF scorecard action manual-only
* ci: pin all runners onto ubuntu-24.04
* test: inline the sole use of assertWpPluginAPIStructure
* meta: add github-actions to dependabot
* build: composer upgrade and bump
* fix: switch redis driver to predis because laravel is hopeless
* chore: add spatie/laravel-permission
* build: composer update and bump
* style: death to captain obvious (zap laravel's banner comments)
* feat: initial roles and perms
* chore: assign User role on User created
* refactor: rename 'aspire_press' config key to 'aspirecloud'
* feat: require json content-type on admin api routes
* chore: implement BulkImport endpoint
* chore: give RepoAdmin users BulkImport permissions
* docs: update README
* fix: rm last vestiges of SyncPlugin
* refactor: move Sanctum tests into their own dir
* tests: zap example tests
* test: break helpers out into the tests/Helpers dir
* build: composer bump
* refactor: rm unused TranslationData class
* build: run composer update since bump does not (WTF)
* refactor: move docker app from /var/www/html to /app
this is the de facto standard for docker apps, and it makes config much simpler if we follow it
* build: upgrade dockerfiles to composer 2.8
* build: tweak composer invocation for prod
* tests: rm placeholder that never got filled out
* tests: write tests for sync themes/plugins
* tests: put back dummy unit test because pest freaks out w/ an empty dir
* tests: rm copypasta from SyncThemeTest
* build: bump after update, silly, not before
* feat: add ClosedPlugin model
* fix: don't chop line if it doesn't end with \n
* build: rm unused robmorgan/phinx dependency
* chore: rm all App\Models\Sync classes
* feat: new unified plugin and theme loader
* docs: update README.md
* fix: fix or suppress phpstan warnings
* docs: fix dump commands in readme
* feat: add ac_origin column to all resource tables
* chore: add ac_* columns including ac_raw_metadata
we used to point to the raw metadata in the corresponding SyncPlugin/SyncTheme record, but that's gone. thus, adding it as a column.
* chore: mark eloquent properties as readonly in phpdoc
* fix: drop bogus HasFactory from Author
* wip: Download Assets
- Added migration
- Added enum class to handle AssetTypes
- Added placeholder controllers
* wip: Factory and routes
* wip: DownloadService and Plugin implementation
- Added DownloadService to handle all the downloads types
- Added DownloadPluginController implementation
- Fix Asset model name and location
* wip: DownloadAsset Job and support core versions
- Added DownloadAsset Job
- Show assets and download zip files logic
- Add the downloas endpoints to the excludedRoutes on the cache system
- Add predis to use redis on the Queue system
* wip: Change properties to public to access them on tests
* feat: Download Assets ready for test
* fix: Fixed the issues mentioned in the PR
- Better naming and I would vote for uppercase enums; we can discuss this later.
- Exception comments removed
- $matches[1] named using variables
- Added prefix `/download` to the routes
- Removed the stream logic, and now local and upstream use redirects to the file
- Added `repository` and `timestamp` fields to the `assets` table
- Removed the SerializesModels trait from the Job class
- Tests update
* feat: Changes required on existing files to setup Jetstream
* feat: add the Inertia Home and Dashboard
* feat: Add all required files and migrations to setup Jetstream
* feat: Add the Sanctum middleware to the API endpoints
- Added Sanctum to the API endpoints to requiere an API Key
- Added a setting to control if the app should use authenticated API or not (see .env.example)
- Fix redirection on API routes to the login page when a request was unauthenticated
* feat: Users Management and Authication API Keys
- Refactor existing tests to make authenticated request is enable
- Hide the permissions setting on the UI, for now we only have a read-only API
- Add tests to test authenticated and unauthenticated calls
* chore: rename sync tables to use sync_ prefix
* feat: migration for new plugins table
* chore: create themes table migration
* refactor: move sync models to new names and subdir
* refactor: move Plugin and Theme models to App\Models\WpOrg
* feat: use parallel tasks in php-cs-fixer
* format: keep attributes on their own lines
* fix: use sync_themes for stub search
* fix(build): rm key:generate in check-env target
The docker container is guaranteed to not be running at this point. keygen happens last in the process.
* qa: switch from pint to php-cs-fixer
* ci: use make in run-checks action
* ci: run checks directly on the gh runner instance
* ci: use shivammathur/setup-php@v2
* style: run make fix
* ci: add unit tests to run-checks action
* refactor: wipe out mezzio installation prior to installing Laravel
* refactor: install laravel
* fix: push attic'd composer.json that didn't make it into commit
* Adding several improvements (#23)
* Added improvements around Phinx and migrations
* Created Franken as our main PHP source
* Rewrote the Makefile to use the CLI and work properly
* build: regenerate lockfile
* fix(build): move migrations to require-dev so laravel doesnt choke on it
* feat: add mailhog service
* chore: tweak sample config
* fix: port make targets around db and migrations
* temp: add phinx migrations to attic
* fix: fix make list target formatting
* chore: port initial schema migration
* chore: roll in remaining migrations
* chore: publish cors config
* temp: rm the rest of .ATTIC
* Minor changes to provide correct settings for dev enviornment (#24)
* Removed the .env file from the Docker configuration so its read
locally and changes to it are immediately reflected.
* Updated the DB name in the Docker configuration
* fix: add correct DB environment vars to .env.example
* fix: api.aspirepress.local -> api.aspirecloud.local in docker-compose.yml
* feat: add generate-key target to Makefile
* feat: add stub api routes file
* Adding quality tools and fixing coding style
* Added Pint for CS fixing
* Added Larastan for code quality and set Level 6 with a baseline
* Fixed minor style issues
* Updating running checks to build the CLI container and then the Makefile with Pest
* Fixing a style issue detected
* Generating app key for tests
Note that eventually we'll have to pass a host of config vars to
effectively test the Laravel instance. That's TBD for later.
* Add Catch All handler (#25)
* fix: rm catchall route in api.php
* style: fix style to make pint happy
* Populating the .env file if it doesn't exist
* fix: give phpstan proper args in check target
* fix: phpstan qa issues
---------
Co-authored-by: Chuck Adams <cja987@gmail.com>
Co-authored-by: Matthew Zalewski <matthew@minion.co.nz>
* Making the .env and .env.dist files part of the webapp container
to ensure that they are loaded by default.
* Upgrading Composer dependencies.
* Removing vlucas/dotenv because it's not needed anymore with us
loading env values directly into the container.