@@ -8,22 +8,54 @@ export const checkForUpdate = async () => {
88 if ( isDev ) return
99
1010 try {
11- const res = await axios . get ( `${ repository } /releases/latest` )
12-
13- if ( res ) {
14- const latest = res . request . socket . _httpMessage . path
15- . split ( '/' )
16- . pop ( )
17- . substring ( 1 )
18- if ( latest !== version ) {
19- BrowserWindow . getFocusedWindow ( ) ?. webContents . send (
20- 'main:update-available'
11+ const res = await axios . get (
12+ `${ repository . replace ( 'github.com' , 'api.github.com/repos' ) } /releases`
13+ )
14+
15+ if ( res && res . data ) {
16+ // Проверяем оставшиеся запросы в лимите
17+ const rateLimitRemaining = res . headers [ 'x-ratelimit-remaining' ]
18+ if ( rateLimitRemaining && parseInt ( rateLimitRemaining ) < 5 ) {
19+ console . warn (
20+ 'GitHub API rate limit близок к исчерпанию:' ,
21+ rateLimitRemaining
2122 )
22- return latest
23+ }
24+
25+ const v3Releases = res . data . filter ( ( release : any ) => {
26+ const tagName = release . tag_name . replace ( 'v' , '' )
27+ return tagName . startsWith ( '3.' )
28+ } )
29+
30+ if ( v3Releases . length > 0 ) {
31+ const latestV3Release = v3Releases [ 0 ]
32+ const latestVersion = latestV3Release . tag_name . replace ( 'v' , '' )
33+
34+ if ( latestVersion !== version ) {
35+ BrowserWindow . getFocusedWindow ( ) ?. webContents . send (
36+ 'main:update-available'
37+ )
38+ return latestVersion
39+ }
2340 }
2441 }
25- } catch ( err ) {
26- console . error ( err )
42+ } catch ( err : any ) {
43+ // Обработка лимита GitHub API
44+ if ( err . response ?. status === 403 || err . response ?. status === 429 ) {
45+ const resetTime = err . response . headers [ 'x-ratelimit-reset' ]
46+ if ( resetTime ) {
47+ const resetDate = new Date ( parseInt ( resetTime ) * 1000 )
48+ console . warn (
49+ 'GitHub API rate limit exceeded. Reset at:' ,
50+ resetDate . toISOString ( )
51+ )
52+ } else {
53+ console . warn ( 'GitHub API rate limit exceeded' )
54+ }
55+ return
56+ }
57+
58+ console . error ( 'Error checking for updates:' , err . message || err )
2759 }
2860}
2961
0 commit comments