API архивации проектов

На этой странице представлен обзор использования 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