Ich bin überhaupt kein Java-Entwickler. Aber ich habe erwartet, dass es nicht so schwer sein sollte. Ich versuche, das spezifische Plugin für Bitbucket Server zu setzen, das postReceive auslösen wird und nach einem bestimmten Tag sucht und dann die grundlegende Handlung durchführt (Inhalt der engagierten Dateien über REST veröffentlichen). Das vereinfachte Codebeispiel unten und es funktioniert nicht.So erhalten Sie Repository-Tags über RefService
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
Wenn ich Atlas-Debug starten baut es Projekt Fein- und startet Bitbucket Server, doch irgendwie Fehler in Haken stopfen:
[INFO] [talledLocalContainer] org.springframework.beans.factory.UnsatisfiedDependencyException : Fehler beim Erstellen einer Bean mit dem Namen 'com.atlassian.bitbucket.plugin.releasenotes.hook.ReleaseNotesHook': Unbefriedigte Abhängigkeit, die durch ein Konstruktorargument mit Index 0 vom Typ [com.atlassian.bitbucket.repository.RefService] ausgedrückt wird:: Keine qualifizierende Bean von type [com.atlassian.bitbucket.repository.RefService] gefunden für Abhängigkeit: erwartet mindestens 1 Bean, die sich als Autowire-Kandidat für diese Abhängigkeit qualifiziert. Abhängigkeitsanmerkungen: {}; verschachtelte Ausnahme ist org.springframework.beans.factory.NoSuchBeanDefinitionException: Kein qualifizierendes Bean vom Typ [com.atlassian.bitbucket.repository.RefService] gefunden für Abhängigkeit: erwartet mindestens 1 Bean, das sich als Autowire-Kandidat für diese Abhängigkeit qualifiziert. Dependency Anmerkungen: {}
Meine wichtigsten Ressourcen für dieses Plugin sind:
- https://developer.atlassian.com/blog/2015/01/beer-o-clock-stash-plugin-tutorial/
- https://developer.atlassian.com/static/javadoc/bitbucket-server/4.6.2/api/reference/com/atlassian/bitbucket/repository
- https://bitbucket.org/atlassian/stash-example-hook-protect-ref/commits/a38e6118b0b1ac1b9b73959e32325271d3d3937a?at=update-example-for-bitbucket-rebrand#chg-src/main/java/com/atlassian/bitbucket/server/repository/hook/ref/RefValidator.java