[DEVOPS-1126] throttle github status calls to remain under api ratelimits
[?]
Nov 9, 2018, 4:06 PM
YH2ITHUECMN35OXXCDIDT4QQBP5PPMOCRRCNVQHVXYVKMYOFNNLQCDependencies
- [2]
NSRWW6LCAdd a plugin to interact with the github status API.
Change contents
- edit in src/lib/Hydra/Plugin/GithubStatus.pm at line 9
use List::Util qw(max); - edit in src/lib/Hydra/Plugin/GithubStatus.pm at line 69
my $limit = $res->header("X-RateLimit-Limit");my $limitRemaining = $res->header("X-RateLimit-Remaining");my $limitReset = $res->header("X-RateLimit-Reset");my $now = time();my $diff = $limitReset - $now;my $delay = (($limit - $limitRemaining) / $diff) * 5;if ($limitRemaining < 1000) {$delay = max(1, $delay);}if ($limitRemaining < 2000) {print STDERR "GithubStatus ratelimit $limitRemaining/$limit, resets in $diff, sleeping $delay\n";sleep $delay;} else {print STDERR "GithubStatus ratelimit $limitRemaining/$limit, resets in $diff\n";}