2013-06-21 24 views
1

我需要有關如何成功創建RepositoryMergeRequestCheckAtlassian的藏匿倉庫實施策略合併請求覈查插件

由於我們的合併工作流程的一部分幫助下,我們需要確保對一些文件的一些策略。政策包括其中包括:

  • 單個文件的文件命名約定
  • 文件命名(,相關命名的文件爲例)
  • 檢查文件的強制或禁止陳述或功能的使用多個文件之間的約定

我希望能夠檢查上的存儲庫合併請求檢查這個政策,我建立一個插件Astlassian藏匿

我曾嘗試以下方法:

  • 使用的RepositoryMergeRequestCheck.check()RepositoryMergeRequestCheckContext參數由於該方法的簽名是:

    @Override public void check(RepositoryMergeRequestCheckContext context)

我嘗試使用的第一件事就是上下文參數。我可以這樣說context.getMergeRequest().getPullRequest().getFromRef().getRepository() 現在我得到一個Repository實例,我不知道如何從中提取提交信息。

  • 直接調用的Git:由於這張支票最初是作爲一個git的鉤子腳本,調用從SDK是有道理的git我。這使我這個情況:

    String result = gitScm.getCommandBuilderFactory().builder().lsTree().build(…).call();

凡gitScm獲得依賴注入在插件的構造。 注意構建參數?它預計在這種情況下T是一個CommandOutputHandler<T>字符串,但這是一個接口,我不知道如何獲得實現該接口或如何創建一個實例。

  • REST API REST API看起來最簡單的人,但它仍然無法與檢查文件的源代碼的第三個要求幫助,也從合併請求檢查本身就是一個來自Web請求產卵Web請求藏起來似乎並不是性能方面的一個好主意。

我應該遵循什麼樣的路徑?我該怎麼做?

回答