@@ -5,6 +5,7 @@ import { Endpoint, nullSchema } from '@/api-helpers/global';
55const dockerRepoName = 'middlewareeng/middleware' ;
66const githubOrgName = 'middlewarehq' ;
77const githubRepoName = 'middleware' ;
8+ const latestTagName = 'latest' ;
89
910const endpoint = new Endpoint ( nullSchema ) ;
1011
@@ -26,13 +27,6 @@ type CheckNewVersionResponse = {
2627 current_docker_image_build_date : Date ;
2728} ;
2829
29- type DockerHubAPIResponse = {
30- count : number ;
31- next : string | null ;
32- previous : string | null ;
33- results : TagResult [ ] ;
34- } ;
35-
3630type TagResult = {
3731 creator : number ;
3832 id : number ;
@@ -69,7 +63,7 @@ type DockerImage = {
6963type TagCompressed = {
7064 name : string ;
7165 last_updated : string ;
72- digest : string ;
66+ digest ? : string ;
7367} ;
7468
7569function getProjectVersionInfo ( ) : ProjectVersionInfo {
@@ -83,19 +77,14 @@ function getProjectVersionInfo(): ProjectVersionInfo {
8377}
8478
8579async function fetchDockerHubLatestTag ( ) : Promise < TagCompressed > {
86- const dockerHubUrl = `https://hub.docker.com/v2/repositories/${ dockerRepoName } /tags?ordering=last_updated&page_size=1` ;
87- const response = await axios . get < DockerHubAPIResponse > ( dockerHubUrl ) ;
88-
89- const latestTagName = response . data . results [ 0 ] . name ;
90-
91- const tagUrl = `https://hub.docker.com/v2/repositories/${ dockerRepoName } /tags/${ latestTagName } ` ;
92- const latestTag = ( await axios . get < TagResult > ( tagUrl ) ) . data ;
80+ const latestTagUrl = `https://hub.docker.com/v2/repositories/${ dockerRepoName } /tags/${ latestTagName } ` ;
81+ const latestTag = ( await axios . get < TagResult > ( latestTagUrl ) ) . data ;
9382
9483 const amdArchImage = latestTag . images . find ( ( i ) => i . architecture === 'amd64' ) ;
9584
9685 return {
9786 name : latestTag . name ,
98- digest : amdArchImage . digest ,
87+ digest : amdArchImage ? .digest ,
9988 last_updated : latestTag . last_updated
10089 } ;
10190}
@@ -133,7 +122,10 @@ async function checkNewImageRelease(): Promise<CheckNewVersionResponse> {
133122
134123 const latestRemoteDate = new Date ( latestTag . last_updated ) ;
135124
136- const latestDockerImageLink = `https://hub.docker.com/layers/${ dockerRepoName } /${ latestTag . name } /images/${ latestTag . digest } ` ;
125+ let latestDockerImageLink = `https://hub.docker.com/r/layers/${ dockerRepoName } /tags` ;
126+ if ( latestTag . digest ) {
127+ latestDockerImageLink = `https://hub.docker.com/layers/${ dockerRepoName } /${ latestTag . name } /images/${ latestTag . digest } ` ;
128+ }
137129
138130 const githubRepLink = `https://github.com/${ githubOrgName } /${ githubRepoName } ` ;
139131
0 commit comments