Skip to content

Commit 7d312e4

Browse files
committed
Address invalid date objects upon parsing response headers
Ever since GitHub migrated to its calendar versioning scheme, we've been getting periodic errors when attempting to log rate limit info. E.g., https://github.com/stdlib-js/stdlib/actions/runs/3810868110/jobs/6483195715 This seems to be due to missing header info. The workaround in this commit is to default to an hour from now, according to machine local time. For GitHub docs which state that the rate limit headers should be present, see https://docs.github.com/en/rest/overview/resources-in-the-rest-api?apiVersion=2022-11-28#rate-limiting.
1 parent 68e6ef7 commit 7d312e4

File tree

3 files changed

+18
-3
lines changed

3 files changed

+18
-3
lines changed

lib/node_modules/@stdlib/_tools/github/create-repo/lib/data.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ var debug = logger( 'github-create-repo:data' );
3333
/**
3434
* Extracts data to be posted to a remote endpoint.
3535
*
36+
* @private
3637
* @param {string} name - repository name
3738
* @param {Object} opts - function options
3839
* @param {string} opts.desc - repository description

lib/node_modules/@stdlib/_tools/github/create-repo/lib/headers.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ var debug = logger( 'github-create-repo:headers' );
3333
/**
3434
* Returns request headers based on provided options.
3535
*
36+
* @private
3637
* @param {Object} opts - provided options
3738
* @param {string} [opts.token] - GitHub access token
3839
* @param {string} [opts.accept] - media type

lib/node_modules/@stdlib/_tools/github/create-repo/lib/ratelimit.js

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,17 +18,30 @@
1818

1919
'use strict';
2020

21+
// MODULES //
22+
23+
var SEC_IN_HOUR = require( '@stdlib/constants/time/seconds-in-hour' );
24+
var now = require( '@stdlib/time/now' );
25+
26+
27+
// MAIN //
28+
2129
/**
2230
* Extracts rate limit info from relevant HTTP response headers.
2331
*
32+
* @private
2433
* @param {Object} headers - HTTP response headers
2534
* @returns {Object} extracted headers
2635
*/
2736
function info( headers ) {
37+
var remaining = +headers[ 'x-ratelimit-remaining' ];
38+
var limit = +headers[ 'x-ratelimit-limit' ];
39+
var reset = +headers[ 'x-ratelimit-reset' ];
40+
var t = now() + SEC_IN_HOUR;
2841
return {
29-
'limit': +headers[ 'x-ratelimit-limit' ],
30-
'remaining': +headers[ 'x-ratelimit-remaining' ],
31-
'reset': +headers[ 'x-ratelimit-reset' ]
42+
'limit': ( limit === limit ) ? limit : t,
43+
'remaining': ( remaining === remaining ) ? remaining : t,
44+
'reset': ( reset === reset ) ? reset : t
3245
};
3346
}
3447

0 commit comments

Comments
 (0)