package cn.reghao.bnt.web.devops.builder.tool.repo;

/**
 * 更新代码
 *
 * @author reghao
 * @date 2019-10-12 22:24:28
 */
public interface CodeUpdater {
    /**
     * 更新代码
     *
     * @param remote 远程代码仓库路径
     * @param branch 分支(仅用于 GIT)
     * @param local 本地代码仓库目录
     * @return 当前代码仓库的版本
     * @date 2019-10-12 下午11:08
     */
    CommitInfo pull(String remote, String branch, String local) throws Exception;

    /**
     * // TODO 拉取指定版本的代码
     *
     * @param commitId 指定的版本
     * @return
     * @date 2020-09-08 下午6:18
     */
    CommitInfo update(String remote, String branch, String local, String commitId) throws Exception;

    /**
     * 本地代码仓库最近一次提交的信息
     * TODO 并不能获取到远程仓库的 URL，需要在调用后手动设置
     *
     * @param local 本地代码仓库路径
     * @date 2019-10-30 下午5:23
     */
    CommitInfo latestCommitInfo(String local, String branch) throws Exception;
}
