{"id":51135553,"url":"https://github.com/bmlt-enabled/wordpress-releases-github-action","last_synced_at":"2026-06-25T17:30:53.869Z","repository":{"id":60324937,"uuid":"542361303","full_name":"bmlt-enabled/wordpress-releases-github-action","owner":"bmlt-enabled","description":null,"archived":false,"fork":false,"pushed_at":"2026-01-27T22:42:58.000Z","size":45,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-05-23T15:34:05.516Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bmlt-enabled.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-09-28T01:43:00.000Z","updated_at":"2026-01-27T22:43:03.000Z","dependencies_parsed_at":"2023-01-19T00:15:56.121Z","dependency_job_id":null,"html_url":"https://github.com/bmlt-enabled/wordpress-releases-github-action","commit_stats":{"total_commits":44,"total_committers":2,"mean_commits":22.0,"dds":"0.022727272727272707","last_synced_commit":"641bf598b3fd742e476d71aef2f840b1d1b5ddad"},"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/bmlt-enabled/wordpress-releases-github-action","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bmlt-enabled%2Fwordpress-releases-github-action","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bmlt-enabled%2Fwordpress-releases-github-action/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bmlt-enabled%2Fwordpress-releases-github-action/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bmlt-enabled%2Fwordpress-releases-github-action/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bmlt-enabled","download_url":"https://codeload.github.com/bmlt-enabled/wordpress-releases-github-action/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bmlt-enabled%2Fwordpress-releases-github-action/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34786225,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-25T02:00:05.521Z","response_time":101,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-06-25T17:30:53.758Z","updated_at":"2026-06-25T17:30:53.855Z","avatar_url":"https://github.com/bmlt-enabled.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# wordpress-releases-github-action\n\nThis GitHub Action automatically publishes the latest WordPress plugin builds to the BMLT development WordPress site at [https://wordpress.aws.bmlt.app/](https://wordpress.aws.bmlt.app/).\n\n## What It Does\n\nWhen any BMLT WordPress plugin repository commits code, this action:\n\n1. **Computes SHA256 hash** of the built plugin ZIP file\n2. **Registers the release** with the BMLT Release API using AWS SigV4-authenticated PUT requests\n3. **Triggers automatic deployment** to the test WordPress site\n4. **Enables testing** of the latest development builds in a live WordPress environment\n\nThis allows developers to immediately test their changes on a real WordPress installation without manual deployment.\n\n## How It Works\n\n```mermaid\nsequenceDiagram\n    participant GHA as Plugin CI Workflow\n    participant S3 as S3 Bucket\u003cbr/\u003e(archives.bmlt.app)\n    participant Action as wordpress-releases-github-action\n    participant API as Release API\u003cbr/\u003e(Lambda)\n    participant S3R as Release Metadata\u003cbr/\u003e(S3 Bucket)\n    participant WP as WordPress Site\u003cbr/\u003e(wordpress.aws.bmlt.app)\n\n    GHA-\u003e\u003eGHA: Build plugin ZIP\n    GHA-\u003e\u003eS3: Upload ZIP to S3\n    GHA-\u003e\u003eAction: Trigger action with ZIP path\n    Action-\u003e\u003eAction: Compute SHA256 hash\n    Action-\u003e\u003eAction: Sign request with AWS SigV4\n    Action-\u003e\u003eAPI: PUT /releases/{plugin-name}\u003cbr/\u003e{id, filename, sha256, deploymentType}\n    API-\u003e\u003eS3R: Store release metadata\n    API--\u003e\u003eAction: 204 No Content\n    Note over WP: WordPress cron job polls Release API\n    WP-\u003e\u003eAPI: GET /releases\n    API-\u003e\u003eS3R: Fetch all release metadata\n    API--\u003e\u003eWP: Return release list\n    WP-\u003e\u003eWP: Compare local SHA256 with API SHA256\n    WP-\u003e\u003eS3: Download new plugin ZIP if hash differs\n    WP-\u003e\u003eWP: Auto-update plugin\n    WP-\u003e\u003eWP: Plugin now running latest build\n```\n\n## Usage\n\nIn your plugin's CI workflow, add this step right after uploading artifacts to S3:\n\n```yaml\n      - name: Publish Release to Latest WP\n        id: publish_latest\n        uses: bmlt-enabled/wordpress-releases-github-action@v2\n        with:\n          file: ${{ env.DIST_DIR_S3 }}/${{ env.ZIP_FILENAME }}\n          aws_account_id: ${{ secrets.AWS_ACCOUNT_ID }}\n          s3_key: ${{ env.S3_KEY }}\n```\n\n### Inputs\n\n- **`file`** (required): Path to the plugin ZIP file\n- **`s3_key`** (required): Plugin identifier (e.g., `crouton`, `contacts-bmlt`)\n- **`aws_account_id`** (required): AWS account ID for IAM role assumption\n- **`deployment_type`** (optional): Deployment type, defaults to `wordpress`\n\n### Outputs\n\n- **`status_code`**: HTTP status code from the Release API (204 = success)\n- **`put_data`**: JSON payload that was sent to the API\n\n## Requirements\n\n- Plugin ZIP must be uploaded to S3 before calling this action\n- GitHub workflow must have `id-token: write` permission for OIDC authentication\n- Plugin must be registered in the Release API's allowed plugins list\n\n## Supported Plugins\n\nThe Release API currently supports these plugins:\n- bmlt-tabbed-map\n- bmlt-versions\n- bmlt-wordpress-satellite-plugin\n- bmlt-workflow\n- bread\n- contacts-bmlt\n- crouton\n- fetch-jft\n- fetch-meditation\n- fetch-spad\n- hosted-jft\n- list-locations-bmlt\n- nacc-wordpress-plugin\n- temporary-closures-bmlt\n- upcoming-meetings-bmlt\n- bmlt2calendar\n- mayo-events-manager\n- bmlt-enabled-stats\n\n\u003e **Note**: To add a new plugin, update the `WORDPRESS_PLUGINS` constant in [mvana-account-wide-tf/terraform/lambdas/release_api.py](https://github.com/mvascna/mvana-account-wide-tf/blob/main/terraform/lambdas/release_api.py#L8) and redeploy the Lambda function.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbmlt-enabled%2Fwordpress-releases-github-action","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbmlt-enabled%2Fwordpress-releases-github-action","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbmlt-enabled%2Fwordpress-releases-github-action/lists"}