From dae2343f97ffb47cba161b662dde6eb5c40c8682 Mon Sep 17 00:00:00 2001 From: Junji Takakura Date: Thu, 7 Apr 2022 11:24:23 +0900 Subject: [PATCH] BLG_INTG-454 Investigate the reason of stop importing the issue which has over 100 changelogs from Jira and fix it --- .../scala/com/nulabinc/jira/client/apis/IssueAPI.scala | 10 +++++++--- .../j2b/exporter/service/JiraClientIssueService.scala | 2 +- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/jira-client/src/main/scala/com/nulabinc/jira/client/apis/IssueAPI.scala b/jira-client/src/main/scala/com/nulabinc/jira/client/apis/IssueAPI.scala index 2e333ce..34edf53 100644 --- a/jira-client/src/main/scala/com/nulabinc/jira/client/apis/IssueAPI.scala +++ b/jira-client/src/main/scala/com/nulabinc/jira/client/apis/IssueAPI.scala @@ -34,14 +34,18 @@ class IssueRestClientImpl(httpClient: HttpClient) extends Pageable { } def changeLogs( - issueIdOrKey: String - ): Either[JiraRestClientError, ChangeLogResult] = - httpClient.get(s"/issue/$issueIdOrKey/changelog") match { + issueIdOrKey: String, + startAt: Long, + maxResults: Long + ): Either[JiraRestClientError, ChangeLogResult] = { + val uri = s"/issue/$issueIdOrKey/changelog" ? paginateUri(startAt, maxResults) + httpClient.get(uri.toString) match { case Right(json) => Right(JsonParser(json).convertTo[ChangeLogResult]) case Left(_: ApiNotFoundError) => Right(ChangeLogResult(0, true, Seq.empty[ChangeLog])) case Left(error) => Left(HttpError(error)) } + } private[this] def fetchIssue(issueIdOrKey: String) = httpClient.get(s"/issue/$issueIdOrKey") match { diff --git a/src/main/scala/com/nulabinc/backlog/j2b/exporter/service/JiraClientIssueService.scala b/src/main/scala/com/nulabinc/backlog/j2b/exporter/service/JiraClientIssueService.scala index 23fe19a..7b8bae1 100644 --- a/src/main/scala/com/nulabinc/backlog/j2b/exporter/service/JiraClientIssueService.scala +++ b/src/main/scala/com/nulabinc/backlog/j2b/exporter/service/JiraClientIssueService.scala @@ -44,7 +44,7 @@ class JiraClientIssueService @Inject() ( maxResults: Long, changeLogs: Seq[ChangeLog] ): Seq[ChangeLog] = - jira.issueAPI.changeLogs(issue.id.toString) match { + jira.issueAPI.changeLogs(issue.id.toString, startAt, maxResults) match { case Right(result) => val appendedChangeLogs = changeLogs ++ result.values if (result.hasPage)