I know there have been several requests over time for the ability to modify the checkout step. It was previously thought to be not possible by users due to the $CHECKOUT_KEY env only existing in the checkout step.
However, if you don’t mind setting your private key as an environmental variable, you can manually recreate the checkout step yourself.
As a personal side project, that’s what I did, and I’m sharing it here: https://gist.github.com/drazisil/e97dc21454120251472154de1c1b1c7b
You would call it like so:
- run: name: Attempt manual checkout command: | bash <(curl -s https://gist.githubusercontent.com/drazisil/e97dc21454120251472154de1c1b1c7b/raw/d1a29f06d503eee4b40625298a828b363f16e5bc/checkout.sh)
Thanks to it being a gist, it is secured by it’s SHA, so if I make any changes the SHA will change and you would know. I set the base64 of the private key as an env on CircleCI called
$MANUAL_CHECKOUT_KEY. The `config.yml calls the raw URL of the gist.
There is a public POC on CircleCI at https://circleci.com/gh/drazisil/mco-server/389
This idea is 100% not supported by anyone, including myself or CircleCI. If it helps you with a project, great. If it doesn’t work for you, well, that’s what open code and creative developers are for. Enjoy!