На этой странице представлен обзор использования API для архивирования ваших проектов в JIRA. Архивирование проектов доступно в Центре данных JIRA 7.10 или позже.
Что такое архивирование?
Вы можете архивировать любой проект в JIRA, если вы больше не работаете над ним. Это поможет вам очистить экземпляр от неиспользуемых проектов, а также повысить производительность. После того, как вы заархивируете проект, он будет удален из списка проектов, сборщиков проектов и результатов поиска. И вы, и ваши пользователи не смогут получить доступ к самому проекту, но вы сможете просмотреть все задачи из архивного проекта, если они упомянуты или связаны в других проектах. Эти задачи будут доступны только для чтения.
Все данные, связанные с архивированным проектом, останутся в базе данных, и вы сможете восстановить проект, когда захотите.
Архивирование с помощью REST API
Вот несколько примеров того, как архивировать и восстанавливать ваши проекты с помощью REST API. Дополнительные сведения об этих вызовах API см. в разделе Архивация проекта и Восстановление проекта в документах API JIRA REST.
Архивирование проекта:
curl -X PUT https://jira-instance1.net/rest/api/2/project/PROJ-1/archive
Восстановление проекта:
После восстановления проекта вам необходимо повторно проиндексировать его, чтобы он снова отображался в результатах поиска. Вы можете сделать это в JIRA, перейдя в Настройки проекта> Re-index (Project settings > Re-index.).
curl -X PUT https://jira-instance1.net/rest/api/2/project/PROJ-1/restore
Архивирование с помощью JAVA API
Ниже приведены примеры как архивировать и восстановливать ваши проекты с помощью JAVA API. Дополнительные сведения об этих вызовах API см. в документации JIRA JAVA API.
Получение списка архивных проектов:
ComponentAccessor.getProjectManager () getArchivedProjects ().
Проверка архивирования проекта:
curl -X PUT https://jira-instance1.net/rest/api/2/project/PROJ-1/restore
Архивирование проекта:
ValidationResult validationResult =
archivedProjectService.validateArchiveProject (authContext.getLoggedInUser (), project.getKey ());
if (validationResult.isValid ()) {
archivedProjectService.archiveProject (ValidationResult);
}
Восстановление проекта:
После восстановления проекта вам необходимо повторно проиндексировать его, чтобы он снова отображался в результатах поиска. Вы можете сделать это в JIRA, перейдя в Настройки проекта> Реиндексация (Project settings > Re-index).
ValidationResult validationResult =
archivedProjectService.validateRestoreProject(authContext.getLoggedInUser(), project.getKey());
if (validationResult.isValid()) {
archivedProjectService.restoreProject(validationResult);
}
Уведомление плагинов о архивных проектах:
Вы можете использовать прослушиватели событий ProjectArchivedEvent и ProjectRestoredEvent для уведомления ваших плагинов всякий раз, когда проект архивируется или восстанавливается. Вот пример реализации:
public class ArchivedProjectEventListener {
private static final Logger log = LoggerFactory.getLogger(ArchivedProjectEventListener.class);
@EventListener
public void onProjectArchived(ProjectArchivedEvent event) {
// Removing the data related to event.getProjectId()
// e.g. cache, or plugin data.
log.info("A project has been archived.");
}
}
Мы рекомендуем, чтобы ваши плагины удаляли любые некритические данные, связанные с архивированными проектами. Примером этого является удаление данных из индекса, который JIRA делает автоматически при архивировании проекта. Эти данные сохраняются в базе данных и могут быть легко восстановлены позже, и нет необходимости хранить их.
По материалам Atlassian JIRA Server Developer Project archiving API