beekeeper-util
Version:
CLI utility for managing the beekeeper-service
30 lines (26 loc) • 1.06 kB
JavaScript
const bindAll = require("lodash/fp/bindAll")
const GitRepo = require("../models/git-repo")
const { getTag } = require("../helpers/semver-helper")
class GitService {
constructor({ gitMock, projectRoot, spinner }) {
bindAll(Object.getOwnPropertyNames(GitService.prototype), this)
this.spinner = spinner
this.gitRepo = new GitRepo({ gitMock, projectRoot })
}
async release({ projectVersion, message }) {
const { spinner } = this
if (spinner) spinner.start("Git: Releasing...")
await this.gitRepo.verifyRepo()
await this.gitRepo.verifyTag(projectVersion)
await this.gitRepo.add()
if (spinner) spinner.log("Git: git add .")
await this.gitRepo.commit(message)
if (spinner) spinner.log(`Git: git commit -m "${message}"`)
await this.gitRepo.tag(projectVersion)
if (spinner) spinner.log(`Git: git tag "${getTag(projectVersion)}"`)
await this.gitRepo.push()
if (spinner) spinner.log(`Git: git tag && git push --tags`)
if (spinner) spinner.start("Git: Released!")
}
}
module.exports = GitService