Repeat HN: Updatecli – What if Dependabot and Ansible had a bit of 1?


What if Dependabot and Ansible had a bit of 1?
Effectively for me that might perchance well well be Updatecli.

Updatecli is a carrying out that I began to encourage personal the infrastructure of the Jenkins carrying out. I important one thing versatile sufficient to interchange YAML with whatever records important. On account of let’s direct it, everyone loves YAML. YAML is in each build.

Bound it from in each build…

Updatecli is a say-line gadget written in Golang and obtainable for Dwelling windows, Linux, MacOSx, amd64, arm64, thank you Goreleaser
All of that to express that it runs from wherever CI or pc we need.

As of at this time time, Updatecli opened over 3000 Pull requests on Github, and it evolved to interchange robotically Dockerfile, Markdown, Helm Chart, and naturally a form of YAML for tools fancy Puppet, Kubernetes, or Jenkins.

How does it work?

Updatecli hundreds pipeline configurations from YAML(s) or Golang templates then put into effect the exclaim outlined by the pipeline configuration.
A pipeline jog as followed:

1. Clone in a temporary dwelling any git repositories ancient by the pipeline.

2. Rep records for each and every *sourceoutlined, after which inject them as entry parameters into situation(s) and goal(s).

3. Take a look at that every one *conditionsoutlined be triumphant otherwise abort the pipeline.

4. Put in drive the exclaim for each and every *goaloutlined. A exclaim means assorted issues reckoning on the handy resource type, extra on this later.

5. Commit and beginning pull requests when important.

6. Apply subsequent pipeline

A Updatecli pipeline relies on sources aka “extension” aka “plugins” to adapt pipeline behavior. By combining them, we are able to with out problems automate conditions with out cost up workflow, GitOps, dependency administration, documentation replace, and heaps others.

A easy scenario might perchance well well be:
Retrieve the most up-to-date Golang model
Take a look at that a docker image with the most up-to-date Golang model exist on Dockerhub
If it exists, then bump the model in a YAML file and beginning a pull put a question to on GitHub with the alternate

As of at this time time, there are 9 extensions for “sources”, 8 for “conditions”, 6 for “targets”, 2 for git repositories, and 1 for pull requests.

A in fact easy pipeline is obtainable on

For extra advanced pipelines, you might perchance well well also deem directories named “updatecli/updatecli.d” at the root of repositories on or the Jenkins infrastructure repository a lot like…

I personal a documentation online page material to report the loads of configuration.
It’s no longer perfect but it’s obtainable on

What’s subsequent?

Effectively, it relies on many issues. Updatecli is since the origin, a enjoyable side carrying out, I wanted to inform Golang programming while automating slack routine tasks. I built it in a technique that I’ll perchance well well reuse it correct thru the loads of initiatives which I personal. It’s reasonably easy so as to add unique sources so I’ll have together with them in accordance with my wants, I welcome any contributions that might perchance well well income the neighborhood.

More records on

Charlie Layers

Charlie Layers

Fill your life with experiences so you always have a great story to tell