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)