Как программно получить информацию об исходном коде из номера выпуска в Jira Studio? - PullRequest
0 голосов
/ 15 марта 2011

JIRA Studio (область «Проблемы», которая в основном представляет собой часть, которая выглядит просто как «JIRA»), включает вкладку «Источник». Мы связываем это с нашим экземпляром Subversion (путем включения номера проблемы в Сообщение во время регистрации), это отлично подходит для человеческих процессов, но я не могу найти способ в API-интерфейсах JIRA, Subversion или Fisheye, чтобы добиться этого ссылка на сайт.

В идеале, я хотел бы вызвать getIssue для API JIRA и заставить его возвращать идентификаторы ревизий Subversion вместе со всей остальной информацией, которую он возвращает, но я бы также использовал любой способ обхода! Я с удовольствием справлюсь с SOAP, XML-RPC, REST, командной строкой или почтовым голубем.

Вот как это выглядит в пользовательском интерфейсе с данными «Вкладка источника», которые я хочу показать (извините, новый пользователь не может публиковать изображения напрямую): Захват экрана Jira

1 Ответ

0 голосов
/ 15 марта 2011

Я сам не пробовал, но если вы посмотрите на плагин fisheye, может быть очень поучительно, как получить доступ к этой информации с помощью EQL-запроса. http://confluence.atlassian.com/display/FISHEYE/EyeQL+Reference+Guide

Кодовая выдержка из плагина "рыбий глаз": https://studio.plugins.atlassian.com/source/browse/~raw,r=157831/FISH/trunk/src/main/java/com/atlassian/jirafisheyeplugin/ChangeSetManagerImpl.java

` public ChangeSets getChangesetsForIssue (final String issueKey, String projectKey) { SearchConfig searchConfig = new SearchConfig (fisheyeConfig.getMaxIssueChangeSets (), false, false, true, SearchConfig.SEARCHTYPE_CHRONOLOGICAL);

    P4Query query = new P4Query() {
        public Object doQuery(FishEyeRepository rep, boolean searchJobId) throws IOException {
            EyeQLQuery query = new EyeQLQuery();
            query.setDir("/");
            if (searchJobId) {
                query.addWhereClause(WhereClauseFactory.issueKeyOrJobIdMatches(issueKey));
            } else {
                query.addWhereClause(WhereClauseFactory.issueKeyMatches(issueKey));
            }
            query.setOrderByDate(true);
            query.setGroupBy(EyeQLQuery.GROUP_BY_CHANGESET);
            query.addReturnClause("csid");
            return apiManager.callFisheye(rep, RestCommandFactory.query(query), CsIdParser.PARSER);
        }
    };

    ChangeSets changesets = searchForChangeSets(projectKey, query, searchConfig);
    changesets.applyFilter(new IssueKeyInCommentOrJobIdFilter(issueKey));
    return changesets;
}

`

...