Implementing a branching and versioning model: should it all be in Gradle?

I assume a lot of people are familiar with It is implemented as a bunch of scripts that must be added the the PATH.

My question: is gradle the right tool for implementing a branching and versioning model? What parts would you leave out to be performed as git extensions or by the CI system (Jenkins or other)?

I am tempted to think that the CI is just a dumb gradle task executor with special permissions to publish releases to official repositories. So there should be no build logic in the CI other than calling gradle.