Try to avoid hitting secondary rate limit when opening issues

GitHub employs a secondary rate limit for actions that can trigger
notifications, such as opening a new issue. To avoid hitting this
limit, they recommend [1] waiting at least one second between each
request.

This commit attempts to comply with this guidance by adding a
one-second sleep prior to each POST request that opens an issue.

Closes gh-29879

[1] https://docs.github.com/en/rest/guides/best-practices-for-integrators#dealing-with-secondary-rate-limits
pull/29932/head
Andy Wilkinson 3 years ago
parent 21fb273ec3
commit 4cb8ae6c8a

@ -1,5 +1,5 @@
/* /*
* Copyright 2012-2021 the original author or authors. * Copyright 2012-2022 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -50,6 +50,12 @@ final class StandardGitHubRepository implements GitHubRepository {
requestBody.put("labels", labels); requestBody.put("labels", labels);
} }
requestBody.put("body", body); requestBody.put("body", body);
try {
Thread.sleep(1000);
}
catch (InterruptedException ex) {
Thread.currentThread().interrupt();
}
ResponseEntity<Map> response = this.rest.postForEntity("issues", requestBody, Map.class); ResponseEntity<Map> response = this.rest.postForEntity("issues", requestBody, Map.class);
return (Integer) response.getBody().get("number"); return (Integer) response.getBody().get("number");
} }

Loading…
Cancel
Save