{"id":401122,"date":"2026-11-12T15:19:51","date_gmt":"2026-11-12T15:19:51","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/shift8-woodpecker-ci\/"},"modified":"2026-11-12T15:19:17","modified_gmt":"2026-11-12T15:19:17","slug":"shift8-deployment-manager-for-woodpecker-ci","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/shift8-deployment-manager-for-woodpecker-ci\/","author":15006456,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.0","stable_tag":"1.1.0","tested":"7.1.4","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Shift8 Deployment Manager for Woodpecker CI","header_author":"Shift8 Web","header_description":"Start, schedule and log Woodpecker CI deployments from the WordPress admin. Independent integration, not affiliated with the Woodpecker CI project.","last_updated":"2026-11-12 15:19:17","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/www.shift8web.ca","header_plugin_uri":"https:\/\/github.com\/stardothosting\/shift8-woodpecker","header_author_uri":"https:\/\/www.shift8web.ca","rating":0,"author_block_rating":0,"active_installs":0,"downloads":83,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.1.0":{"tag":"1.1.0","author":"shift8","date":"2026-11-12 15:19:17","revision":3798644}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3798644,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3798644,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1554x500.png":{"filename":"banner-1554x500.png","revision":3798644,"resolution":"1554x500","location":"assets","locale":"","width":1555,"height":501},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3798644,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.1.0"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[35682,16271,7290,191342,172534],"plugin_category":[],"plugin_contributors":[93487],"plugin_business_model":[],"class_list":["post-401122","plugin","type-plugin","status-publish","hentry","plugin_tags-ci","plugin_tags-deployment","plugin_tags-push","plugin_tags-shift8","plugin_tags-woodpecker","plugin_contributors-shift8","plugin_committers-shift8"],"banners":{"banner":"https:\/\/ps.w.org\/shift8-deployment-manager-for-woodpecker-ci\/assets\/banner-772x250.png?rev=3798644","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/shift8-deployment-manager-for-woodpecker-ci\/assets\/icon-128x128.png?rev=3798644","icon_2x":"https:\/\/ps.w.org\/shift8-deployment-manager-for-woodpecker-ci\/assets\/icon-256x256.png?rev=3798644","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Shift8 Deployment Manager for Woodpecker CI lets an administrator push a staging site to production by starting a manual Woodpecker pipeline from Shift8 \u2192 Woodpecker, either immediately or at a scheduled date and time. An activity log records the WordPress user, the date\/time, and how each deployment ended.<\/p>\n\n<p>\"Woodpecker CI\" is the name of a third-party open source project. This plugin is an independent integration made by Shift8 and is not affiliated with, endorsed by or sponsored by the Woodpecker CI project.<\/p>\n\n<p>The plugin only triggers and observes the pipeline; the deployment itself is performed by your Woodpecker workflow. The API token stays on the server, is never stored in the database and is never sent to the browser. End users cannot cancel a running deployment.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to one external service: the Woodpecker CI server whose address you enter in the settings (or define in <code>wp-config.php<\/code>). Woodpecker is open source and normally self-hosted, so the server is your own or one your organisation operates. Nothing is sent anywhere else, and the plugin does not contact Shift8 or any third party.<\/p>\n\n<p>When it is used:<\/p>\n\n<ul>\n<li>When an administrator clicks \"Test Woodpecker Connection\", the plugin requests <code>\/api\/user<\/code>, <code>\/api\/repos\/{id}<\/code> and the repository's workflow list.<\/li>\n<li>When a deployment is started (immediately or by a schedule), the plugin sends a request to <code>\/api\/repos\/{id}\/pipelines<\/code> containing the configured branch, the optional workflow name, an empty variables object and a short message (by default \"WordPress production deployment by {display name of the WordPress user}\").<\/li>\n<li>While a deployment is running, the plugin requests <code>\/api\/repos\/{id}\/pipelines\/{number}<\/code> to read its status.<\/li>\n<\/ul>\n\n<p>Every request carries your Woodpecker API token as a bearer token in the Authorization header. The token is read only from <code>wp-config.php<\/code> and is never shown in the browser or stored in the database.<\/p>\n\n<p>Woodpecker is a project of the Woodpecker CI community: https:\/\/woodpecker-ci.org. This plugin is an independent integration and is not affiliated with or endorsed by that project. Terms and privacy for your server are those of whoever hosts it.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin to <code>\/wp-content\/plugins\/shift8-deployment-manager-for-woodpecker-ci<\/code> and activate it (on the staging site).<\/li>\n<li><p>Define the API token in <code>wp-config.php<\/code>. It is required and is the only way to set it:<\/p>\n\n<p>define( 'SHIFT8_WOODPECKER_TOKEN', '...' );<\/p><\/li>\n<li><p>Open Shift8 \u2192 Woodpecker \u2192 Settings and enter the Woodpecker URL, repository ID, branch and (optionally) workflow. These can also be defined in <code>wp-config.php<\/code> as <code>SHIFT8_WOODPECKER_URL<\/code>, <code>SHIFT8_WOODPECKER_REPO_ID<\/code>, <code>SHIFT8_WOODPECKER_BRANCH<\/code> and <code>SHIFT8_WOODPECKER_WORKFLOW<\/code>, which override the saved values.<\/p><\/li>\n<li>On the Deployment tab click \"Test Woodpecker Connection\".<\/li>\n<li>Make sure the Woodpecker workflow accepts the <code>manual<\/code> event.<\/li>\n<li>For scheduled deployments use a system cron to run <code>wp-cron.php<\/code> every minute and add <code>define( 'DISABLE_WP_CRON', true );<\/code>.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20the%20plugin%20deploy%20anything%20itself%3F\"><h3>Does the plugin deploy anything itself?<\/h3><\/dt>\n<dd><p>No. It asks Woodpecker to start a pipeline. Everything else is up to your pipeline.<\/p><\/dd>\n<dt id=\"how%20does%20scheduling%20work%3F\"><h3>How does scheduling work?<\/h3><\/dt>\n<dd><p>Woodpecker cannot delay a pipeline, so the schedule is kept in WordPress (WP-Cron) and the pipeline is started when the time arrives, in the site timezone. One schedule can be pending at a time; a schedule that is more than 30 minutes late is skipped and logged instead of running.<\/p><\/dd>\n<dt id=\"who%20can%20deploy%3F\"><h3>Who can deploy?<\/h3><\/dt>\n<dd><p>Users with the <code>manage_options<\/code> capability by default, filterable with <code>shift8_woodpecker_deploy_capability<\/code>. Settings always require <code>manage_options<\/code>.<\/p><\/dd>\n<dt id=\"where%20do%20i%20see%20the%20result%20of%20a%20deployment%3F\"><h3>Where do I see the result of a deployment?<\/h3><\/dt>\n<dd><p>In the activity log on the Deployment tab: a \"Started deployment\" line and, when the pipeline stops, a \"Deployment finished\" line with the final status. It is recorded when the page next checks the pipeline, so it may appear at your next visit if nobody was watching.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20need%20a%20system%20cron%3F\"><h3>Does the plugin need a system cron?<\/h3><\/dt>\n<dd><p>Only for scheduled deployments, which rely on WP-Cron. A system cron running <code>wp-cron.php<\/code> every minute with <code>DISABLE_WP_CRON<\/code> set makes schedules reliable.<\/p><\/dd>\n<dt id=\"does%20it%20work%20on%20the%20production%20site%20too%3F\"><h3>Does it work on the production site too?<\/h3><\/dt>\n<dd><p>Install it on staging only. A staging-to-production database copy carries the plugin's saved settings, schedule and log with it.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Renamed to \"Shift8 Deployment Manager for Woodpecker CI\" after WordPress.org review, with a not-affiliated notice<\/li>\n<li>Single Shift8 \u2192 Woodpecker page with Deployment and Settings tabs<\/li>\n<li>Schedule a deployment for a later date\/time (site timezone, up to 30 days ahead)<\/li>\n<li>Activity log of which user started or scheduled a deployment, when, and the final status<\/li>\n<li>End users cannot cancel a running deployment; removed the link to the Woodpecker UI<\/li>\n<li>The API token can only be set in wp-config.php<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<\/ul>","raw_excerpt":"Start or schedule a Woodpecker CI deployment from the WordPress admin, with a log of who did it and when. An independent Shift8 integration, not affil \u2026","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/401122","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=401122"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/shift8"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=401122"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=401122"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=401122"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=401122"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=401122"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=401122"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}