如何使用javaapi获取竹子中的当前分支名称

如何使用javaapi获取竹子中的当前分支名称,java,api,bamboo,Java,Api,Bamboo,我使用以下方法创建了项目: atlas-create-bamboo-plugin 我需要使用JavaAPI获取当前的分支名称。 我需要像这样的东西: @Override public TaskResult execute(final TaskContext taskContext) throws TaskException { final BuildLogger buildLogger = taskContext.getBuildLogger(); bu

我使用以下方法创建了项目:

atlas-create-bamboo-plugin
我需要使用JavaAPI获取当前的分支名称。 我需要像这样的东西:

@Override
    public TaskResult execute(final TaskContext taskContext) throws TaskException {
        final BuildLogger buildLogger = taskContext.getBuildLogger();
        buildLogger.addBuildLogEntry("BranchName: " + /*Some magic*/);

        return TaskResultBuilder.newBuilder(taskContext).success().build();
    }

您可以将变量上下文注入到任务中,并获得对必须构建和部署变量的访问权。如果您熟悉Spring,它的工作原理类似于Spring bean injection

@Scanned
public class YourTask implements CommonTaskType {

    private final CustomVariableContext customVariableContext;

    public YourTask(@ComponentImport CustomVariableContext customVariableContext) {
        this.customVariableContext = customVariableContext;
    }

    @Override
    public TaskResult execute(@NotNull CommonTaskContext taskContext) throws TaskException {
        final TaskResultBuilder taskResultBuilder = TaskResultBuilder.newBuilder(taskContext);
        final BuildLogger buildLogger = taskContext.getBuildLogger();

        Map<String, String> buildVariables = customVariableContext.getVariables(taskContext.getCommonContext());

        // get branch name from build variables
        String branchName = buildVariables.get("planRepository.branchName");

        // log all build variables to console
        buildVariables.forEach((key, value) -> buildLogger.addBuildLogEntry(key + ": " + value));

        return taskResultBuilder.success().build();
    }
}
@已扫描
公共类YourTask实现CommonTaskType{
私有最终CustomVariableContext CustomVariableContext;
公共任务(@ComponentImport CustomVariableContext CustomVariableContext){
this.customVariableContext=customVariableContext;
}
@凌驾
public TaskResult execute(@NotNull CommonTaskContext taskContext)引发TaskException{
最终TaskResultBuilder TaskResultBuilder=TaskResultBuilder.newBuilder(taskContext);
final BuildLogger BuildLogger=taskContext.getBuildLogger();
Map buildVariables=customVariableContext.getVariables(taskContext.getCommonContext());
//从生成变量获取分支名称
String branchName=buildVariables.get(“planRepository.branchName”);
//将所有生成变量记录到控制台
forEach((键,值)->buildLogger.addBuildLogEntry(键+”:“+value));
返回taskResultBuilder.success().build();
}
}

只需在谷歌上搜索“Bambol java api”即可获得官方文档……它工作得非常完美!还有一个问题:需要注入哪个类来获取当前分支中的提交信息?或者,您甚至可以为可以注入的类提供文档链接吗?我不确定您仅仅通过注入管理器就可以获得提交信息,但可以在部署中生成这些信息。我还没有找到可注入管理器的完整列表,但是可以在这里找到一些信息:除了我之前评论中的链接中提到的那些,我知道可以注入的bean:-I18nBeanFactory//语言管理,可以用于处理语言特定的文本-ProcessService ProcessService//流程管理,handlings Bambole进程-ArtifactManager ArtifactManager//工件管理,可以创建工件-CredentialsManager CredentialsManager//凭证管理,可用于检索Bambole共享凭证