{"id":22854647,"url":"https://github.com/kanopi/cms-updates-orb","last_synced_at":"2026-02-23T08:34:04.347Z","repository":{"id":221547280,"uuid":"409310612","full_name":"kanopi/cms-updates-orb","owner":"kanopi","description":"CircleCI tool to automated CMS Updates for Drupal/WordPress","archived":false,"fork":false,"pushed_at":"2025-02-13T15:27:56.000Z","size":69,"stargazers_count":0,"open_issues_count":11,"forks_count":0,"subscribers_count":8,"default_branch":"1.x","last_synced_at":"2025-07-28T14:47:42.388Z","etag":null,"topics":["do-not-archive","orb"],"latest_commit_sha":null,"homepage":"https://circleci.com/developer/orbs/orb/kanopi/cms-updates","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kanopi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-09-22T18:16:22.000Z","updated_at":"2025-02-13T15:27:12.000Z","dependencies_parsed_at":"2024-05-06T16:13:17.774Z","dependency_job_id":"61b2387f-8a8c-4ae0-8bab-49a279b47e83","html_url":"https://github.com/kanopi/cms-updates-orb","commit_stats":null,"previous_names":["kanopi/cms-updates-orb"],"tags_count":16,"template":false,"template_full_name":null,"purl":"pkg:github/kanopi/cms-updates-orb","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kanopi%2Fcms-updates-orb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kanopi%2Fcms-updates-orb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kanopi%2Fcms-updates-orb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kanopi%2Fcms-updates-orb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kanopi","download_url":"https://codeload.github.com/kanopi/cms-updates-orb/tar.gz/refs/heads/1.x","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kanopi%2Fcms-updates-orb/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29740021,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-23T07:44:07.782Z","status":"ssl_error","status_checked_at":"2026-02-23T07:44:07.432Z","response_time":90,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["do-not-archive","orb"],"created_at":"2024-12-13T07:07:52.449Z","updated_at":"2026-02-23T08:34:04.322Z","avatar_url":"https://github.com/kanopi.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Kanopi CMS Site Updater\n\nThe following orb was created as a way to do automated updated.\n\nIt will work with the following Content Management Systems (CMS).\n\n- Drupal 7+\n- WordPress\n\nIt will allow for updates using a composer method or using the respected\nCMS's tool (Drush/WPCLI).\n\nThis uses CircleCI's scheduled triggers flows.  Please look at this [video on how to setup triggers](https://www.loom.com/share/9e82734ee48d47809927102f40a0c4ae) in the CircleCI UI. \n\nFor more information please reach out to one of the following people either in slack or email:\n\n* Sean Dietrich \u003csean@kanopi.com\u003e\n* Paul Sheldrake \u003cpaul@kanopi.com\u003e\n* Jim Birch \u003cjim@kanopi.com\u003e\n\nAdditionally, there is the [#Orbs Channel](https://kanopi.slack.com/archives/CUBC4Q1B4) in the Kanopi\nslack to reach out to.\n\n## Usage\n\n```yaml\nversion: 2.1\norbs:\n  cms-updates: kanopi/cms-updates@x.y.z\nworkflows:\n  updates:\n    jobs:\n      - cms-updates/run-update:\n          cms: 'drupal'\n          site-hosting: 'pantheon'\n          site-id: 'abz123'\n          site-env: 'live'\n          update-method: 'composer'\n```\n\nThe following parameters are also available for use within the workflow job.\n\n\u003c!-- Parameter Table Start --\u003e\n\nParameter | Type  | Required | Default | Options | Description\n----------|-------|---|---------|---------|-------------\ncms | enum  | X |  | drupal, drupal7, wordpress | Type of CMS to run updates on.\ncms-updates-config-repo | string |   | git@github.com:kanopi/cms-updates | drupal, drupal7, wordpress | The repo to pull down from the configuration.\ncms-updates-version | string |   | main | drupal, drupal7, wordpress | Version of CMS Update Script to download.\ncomposer-version | enum  |   | 2 | 1, 2 | Version of composer to use. Default 2.x\ndb-type | enum  |   | custom | custom, drush, wpcli | What is the method for pulling the database.\ndocroot | string |   | . | custom, drush, wpcli | Where is the DOCROOT of the project?\nexclude-pr | boolean |   | false | custom, drush, wpcli | Exclude PR from the Process\ngit-email | string |   | ${GIT_EMAIL} | custom, drush, wpcli | The email to use for commits\ngit-name | string |   | ${GIT_NAME} | custom, drush, wpcli | The name to use for commits\nis-multisite | boolean |   | false | custom, drush, wpcli | Is this site a multi-site.\nmultisite-subdomains | boolean |   | false | custom, drush, wpcli | Is the WordPress multisite a subdomains multisite?\nphp-version | enum  |   | 7.4 | 7.4, 8.0, 8.1, 8.2, 8.3 | Tag used for PHP version. Image: cimg/php\npr-branch | string |   | ${CIRCLE_BRANCH} | 7.4, 8.0, 8.1, 8.2, 8.3 | What is the main branch of the project that should be used.\nrepo | string |   | ${CIRCLE_REPOSITORY_URL} | 7.4, 8.0, 8.1, 8.2, 8.3 | The url to use for cloning the repo\nrun-local | boolean |   | false | 7.4, 8.0, 8.1, 8.2, 8.3 |\nsite-env | string |   |  | 7.4, 8.0, 8.1, 8.2, 8.3 | The environment on the remote host to pull information from.\nsite-hosting | enum  |   | general | general, pantheon, wpengine, kinsta | What hosting is the site using?\nsite-id | string |   |  | general, pantheon, wpengine, kinsta | The site name on the remote host to pull information from\nskip-pr-if-opened | boolean |   | false | general, pantheon, wpengine, kinsta | Cancel the step if there is a PR already opened\ntable-prefix | string |   | wp_ | general, pantheon, wpengine, kinsta | The table prefix to use. Primarily used for WordPress configuration.\nupdate-branch | string |   | automated/cms-updates | general, pantheon, wpengine, kinsta | The name of the branch to run updates with.\nupdate-message | string |   | Automated Updated | general, pantheon, wpengine, kinsta | Commit message used for changed items.\nupdate-method | enum  | X |  | composer, drush, wpcli | The update-method used for running updates.\nresource-class | enum  |   |  | small, medium, medium+, large, xlarge, 2xlarge, 2xlarge+ | The size of the circleci container to run.\n\n\u003c!-- Parameter Table End --\u003e\n\n### Hooks\n\nWhile we try to account for most scenarios and have tried to make the following process as flexible as possible it won't\nalways be 100%. For that we have built a hook system that allows the update process to be easily morphed to work with\nany project's needs.\n\nBuilt into this update process is a set of hooks that can be executed. Before or after a particular step.\n\nNoted below are the different events and what the Pre Hook and Post Hook files names are.\n\nThese files can be stored in the main repo of the project being updated within the `.updates` directory.\n\nEvent | Pre Hook File | Post Hook File\n------|---------------|---------------\nCheckout |  | post-checkout\nStart | pre-start | post-start\nDatabase Sync | pre-pull-db | post-pull-db\nUpdate | pre-update | post-update\nCommit | pre-commit | post-commit\nCreate Pull Request | pre-create-pr | post-create-pr\n\nThese files should be executable. The easiest way is to run `chmod +x [filename]`.\n\n**NOTE:** These files can be written in any language.\n\nStart each file with the variation of the following.\n\n```shell\n#!/usr/bin/env bash\n```\n\n### Extras\n\nIt's entirely possible to have other things run after the update was successful. Examples are, having a slack message\nsent after the update happened. Please use the `post-steps` parameter on the job. This will help ensure any action\nhappens after the update process.\n\n## Examples\n\n- Drupal 7\n  - [Update with Drush on Pantheon](src/examples/run-update-pantheon-drupal7-drush.yml)\n- Drupal 9+\n  - [Update with Composer on Pantheon](src/examples/run-update-pantheon-drupal-composer.yml)\n- WordPress\n  - [Update with WPCLI on Pantheon](src/examples/run-update-pantheon-wordpress-wpcli.yml)\n  - [Update with WPCLI on WPEngine](src/examples/run-update-wpengine-wordpress-wpcli.yml)\n  - [Update with WPCLI on WPEngine (MultiSite)](src/examples/run-update-wpengine-wordpress-wpcli-multisite.yml)\n  - [Update with WPCLI on Kinsta](src/examples/run-update-kinsta-wordpress-wpcli.yml)\n\n## Testing\n\n_TBD_\n\n### Linting\n\nThe project uses a set of linting standards primarily for the YAML files. The configuration standards are found within\nthe `.yamllint` file in the project root.\n\nTo run the standards from the project directory run the `./bin/lint` command. This will output any possible issues.\n\nExample\n\n```shell\n$ ./bin/lint\n/project/src/commands/run-update.yml\n  132:23    error    no new line character at the end of file  (new-line-at-end-of-file)\n\n```\n\n### Validating\n\nOne additional process that should be done when testing is confirming that the Orb will validate. This means checking\nto see if we are using the proper parameters or the proper placeholders. We are including every required parameter\nwhen it is needed.\n\nTo run the validation from the project directory run the `.bin/validate` command. This will output any possible issues.\n\nExample\n\n```shell\n$ ./bin/validate\nOrb at `/project/validate.yml` is valid.\n```\n\n### Running Build Test\n\n_TBD_\n\n## Contributing\n\n_TBD_\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkanopi%2Fcms-updates-orb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkanopi%2Fcms-updates-orb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkanopi%2Fcms-updates-orb/lists"}