Travis CI: Deploy PuppetForge releases using v3 API


Switching to releasing Forge modules via the /v3 API is good for lots of reasons, but will take some work:

  • The Puppet Forge web scraper in was too fragile to rely on, and we should really use the PuppetForge v3 API if possible (

  • This means that deployments must use the PuppetForge /v3 API

  • The Travis CI "puppetforge" provider uses dpl under the hood.

  • Examining Travis CI's dpl gem uses Blacksmith 4.1.2 (at present, the latest release)

  • Blackmith 4.1.2 only supports the PuppetForge /v2 API

  • PuppetForge /v2 requires auth via username/password, which is not ideal security and requires fragile webscraping logic to test the auth without deploying.

  • PuppetForge /v3 API is a lot better and supports API tokens

  • From the /v3 docs at, we should be able to deploy releases more simply and securely using curl

  • Using curl will require the deploy stage to run arbitrary shell commands instead of relying on the "puppetforge" deployer.

    • In Travis CI terms, this probably means using the "script" deployer

    • The "script" deployer can only execute a single command or script

Acceptance Criteria


Epic Link

Story Points