如何通过 RefService 获取仓库标签

How to get repository tags via RefService

我根本不是 Java 开发人员。但我预计它不应该那么难。我正在尝试为 Bitbucket Server 安装特定插件,它将触发 postReceive 并检查特定标签,然后执行基本操作(通过 REST 发布已提交文件的内容)。下面的简化代码示例不起作用。

public class ReleaseNotesHook implements AsyncPostReceiveRepositoryHook, RepositorySettingsValidator
{
private static final PageRequestImpl PAGE_REQUEST = new PageRequestImpl(0, 100);
private RefService refService;

public ReleaseNotesHook(RefService refService){
    this.refService = refService;
}

public void postReceive(RepositoryHookContext context, Collection<RefChange> refChanges)
{
    String url = context.getSettings().getString("url");



    for (RefChange refCh : refChanges) {
        boolean isAdd = (refCh.getType() == RefChangeType.ADD);
        boolean isTag = (refCh.getRef().getId().contains("tags"));
        if (isAdd && isTag) {
            Repository repo = context.getRepository();
            RepositoryTagsRequest tagRequest = new RepositoryTagsRequest.Builder(repo).build();
            Page<Tag> tags = refService.getTags(tagRequest, PAGE_REQUEST);
            performSomething(tags);
        }
    }
}

} //class

当我启动 atlas-debug 时,它可以很好地构建项目并启动 Bitbucket Server,但无法插入挂钩并出现错误:

[INFO] [talledLocalContainer] org.springframework.beans.factory.UnsatisfiedDependencyException:创建名称为 'com.atlassian.bitbucket.plugin.releasenotes.hook.ReleaseNotesHook' 的 bean 时出错:通过具有类型 [com.atlassian.bitbucket.repository.RefService] 的索引 0 的构造函数参数表示的不满足依赖关系::无限定为依赖项找到 [com.atlassian.bitbucket.repository.RefService] 类型的 bean:预计至少有 1 个 bean 有资格作为此依赖项的自动装配候选者。依赖注解:{};嵌套异常是 org.springframework.beans.factory.NoSuchBeanDefinitionException:没有找到类型为 [com.atlassian.bitbucket.repository.RefService] 的符合条件的 bean 用于依赖项:预计至少有 1 个 bean 有资格作为此依赖项的自动装配候选者。依赖注解:{}

我的这个插件的主要资源是:

有 XML 个文件需要编辑。它包含所有依赖项注释。我无法再访问源代码,所以我不记得文件名了,但我记得编辑它对我有帮助并允许使用我需要的所有 *Service 处理程序。