Migrating Rally Data to Jira Cloud

Greetings Dev Community,

I am trying to gain clarity on tip and tricks for migrating issues from Rally to Jira Cloud. Although there is a lot of detail to our specific situation I will do my best to be as concise as possible in explaining our hurdles.

  1. When leveraging the JIRA Cloud API to push issues into Jira we understand that individual API connections are rate limited to 500 items every 5 minutes. We are able to stay within these boundaries, but then seem to be limited to a single stream of data getting pushed into at one time. Is there a way that we can initiate multiple API calls simultaneously to push data or must we wait for each call to complete before initiating subsequent calls?
  2. As a best practice how are others setting the epic link connecting parent/child issues when migrating data into Jira Cloud? We understand that both the parent and child issue must be created in Jira prior to configuring this link, but has anyone found an efficient way to do this perhaps by making separate calls or something that doesn’t involve creating the necessary parent/child issue at the same time we go to set their connecting epic link?

Please let me know if you have any questions.

Best regards,
Tyler

Hi @TylerMitchell,

Thanks for your questions.

I can help answer the first question. For rate limiting, please rely on HTTP 429 responses because there’s no magic number for requests per minute as these are all different for each API, product, etc. If you get a HTTP 429 then re-queue the request with random–ish exponential fall back. Most good libraries will have this.

Regards,
James.

James,

Thank you kindly for taking the time to respond to this inquiry. How can we go after the rate limit related HTTP headers so that we can better fine tune our API calls within the boundaries of Atlassian’s rate limit. For example how should we be querying the HTTP headers for X-ratelimit-reset, Retry-after, X-ratelimit-NearLimit, etc.

Best regards,
-Tyler

Hi @TylerMitchell,

Just make sure you watch for the headers and follow their requirements. If you get a Retyr-After: nnn header, then add this number in seconds to your fall back amount, so you make a request at least after nnn seconds.

I suggest reviewing the documentation in

Which details each header and how they should be used.

Regards,
James.