Find a file
Chuck Adams f9b671a879
new script-based update strategy (#44)
* feat: dead simple and dead slow svn checkout scripts for plugins/themes

* feat: add scripts to check for updated plugins/themes

* tweak: split slugs on commas or whitespace instead of just commas

* tweak: replace --plugins and --themes options with --slugs and --slugs-from

* tweak: add logging config to Caddyfile

* feat: push-sync and update-sync commands

* build: bump composer versions
2025-01-28 08:27:53 -07:00
.github/workflows use php-cs-fixer for style linting (#37) 2024-12-01 09:41:52 -07:00
bin new script-based update strategy (#44) 2025-01-28 08:27:53 -07:00
config use php-cs-fixer for style linting (#37) 2024-12-01 09:41:52 -07:00
docker/webapp new script-based update strategy (#44) 2025-01-28 08:27:53 -07:00
meta new script-based update strategy (#44) 2025-01-28 08:27:53 -07:00
migrations new timestamp filtering options for sync:meta:fetch (#43) 2025-01-25 14:29:03 -07:00
public use php-cs-fixer for style linting (#37) 2024-12-01 09:41:52 -07:00
src new script-based update strategy (#44) 2025-01-28 08:27:53 -07:00
svn new script-based update strategy (#44) 2025-01-28 08:27:53 -07:00
tests new timestamp filtering options for sync:meta:fetch (#43) 2025-01-25 14:29:03 -07:00
.dockerignore new script-based update strategy (#44) 2025-01-28 08:27:53 -07:00
.env CLI command to upload plugins/themes to AspireCloud (#42) 2024-12-28 11:34:27 -07:00
.env.test convert to full Symfony framework (#35) 2024-12-01 08:04:14 -07:00
.gitignore use php-cs-fixer for style linting (#37) 2024-12-01 09:41:52 -07:00
.gitmodules Adding migrations submodule, configuration 2024-10-07 14:22:02 -04:00
.php-cs-fixer.dist.php use php-cs-fixer for style linting (#37) 2024-12-01 09:41:52 -07:00
CHANGELOG.md de-dockerization, take two (#28) 2024-11-10 14:22:21 -07:00
composer.json new script-based update strategy (#44) 2025-01-28 08:27:53 -07:00
composer.lock new script-based update strategy (#44) 2025-01-28 08:27:53 -07:00
docker-compose.yml CLI command to upload plugins/themes to AspireCloud (#42) 2024-12-28 11:34:27 -07:00
LICENSE Initial commit 2024-09-29 17:42:00 -04:00
Makefile de-dockerization, take two (#28) 2024-11-10 14:22:21 -07:00
phpstan.dist.neon use \Safe versions of builtin functions (#36) 2024-12-01 09:04:35 -07:00
phpunit.xml.dist use php-cs-fixer for style linting (#37) 2024-12-01 09:41:52 -07:00
README.md CLI command to upload plugins/themes to AspireCloud (#42) 2024-12-28 11:34:27 -07:00
symfony.lock use php-cs-fixer for style linting (#37) 2024-12-01 09:41:52 -07:00

AspireSync

AspireSync is designed to enumerate and download the plugins and themes stored in the WordPress SVN repository and Content Delivery Network.

Features

  • Download themes and plugins from the WordPress .org repository to the local filesystem or S3 storage.
  • Stores metadata and other information about every version of every plugin in sqlite.
  • Can export metadata as newline-delimited json for consumption by AspireCloud.
  • Can download all versions of plugins and themes, or just the latest version.
  • Handles closed and not found plugins/themes, preventing further download attempts for them.
  • Incremental updates, syncing only those items that have updated in subversion since the last sync.
  • Runs downloads in parallel tasks (20 max) to allow for speedy download of assets.

Quick Start

make
bin/console list sync

Configuration

AspireSync places download files in a location of your choosing, either in S3(-compatible) storage or local storage somewhere on disk.

You can configure the following environment variables to determine where uploads are placed.

Env Variable Description
DOWNLOADS_FILESYSTEM One of local (default) or s3.
DOWNLOADS_DIR The destination for downloaded files if using upload_local_filesystem
Relative paths are from the data/ directory
S3_BUCKET The S3 bucket to upload to
S3_REGION AWS region to use (default us-east-2)
S3_ENDPOINT The S3 API endpoint, only required if using S3 storage from a provider other than AWS
S3_KEY The AWS access_key_id for S3. Optional if host/container roles are in effect.
S3_SECRET The companion secret to the S3_KEY; Optional if host/container roles are in effect.

AspireCloud Integration

To upload metadata to AspireCloud, use the meta/bin/push-to-aspirecloud script, which requires two environment variables: * *NOTE: ** these variables must be set in your actual environment: putting them only in a .env file will not work!

Env Variable Description
ASPIRECLOUD_ADMIN_API_URL Base URL of AC admin API, e.g. http://aspiredev.org/admin/api/v1. Do not include a trailing slash.
ASPIRECLOUD_ADMIN_API_KEY API key generated in the AC instance. Must belong to a user with RepoAdmin or SuperAdmin permissions.