Update checkPackageVersions.yml

This commit is contained in:
ManiMatter
2024-04-16 18:47:50 +02:00
committed by GitHub
parent 96751a275f
commit e01dd39e2b

View File

@@ -1,83 +1,28 @@
/* eslint-disable @typescript-eslint/no-unused-vars */ name: Check Package Versions
import {from, Observable, merge, throwError, of} from 'rxjs'
import {catchError, map} from 'rxjs/operators'
import {Octokit} from '@octokit/rest'
import {RestEndpointMethodTypes} from '@octokit/plugin-rest-endpoint-methods/dist-types/generated/parameters-and-response-types'
export interface RestVersionInfo { on:
id: number workflow_dispatch:
version: string
created_at: string
tagged: boolean
}
export interface RestQueryInfo { jobs:
versions: RestVersionInfo[] execute-script:
page: number runs-on: ubuntu-latest
paginate: boolean
totalCount: number
}
type PackageType = steps:
RestEndpointMethodTypes['packages']['getAllPackageVersionsForPackageOwnedByUser']['parameters']['package_type'] - name: Checkout code
type GetVersionsResponse = uses: actions/checkout@v2
RestEndpointMethodTypes['packages']['getAllPackageVersionsForPackageOwnedByUser']['response']['data']
export function getOldestVersions( - name: Setup Node.js
owner: string, uses: actions/setup-node@v2
packageName: string, with:
packageType: string, node-version: '14'
numVersions: number,
page: number,
token: string
): Observable<RestQueryInfo> {
const octokit = new Octokit({
auth: token,
baseUrl: process.env.GITHUB_API_URL || 'https://api.github.com'
})
const package_type: PackageType = packageType as PackageType
return from( - name: Install dependencies
octokit.rest.packages.getAllPackageVersionsForPackageOwnedByUser({ run: npm install @octokit/rest rxjs @octokit/plugin-rest-endpoint-methods typescript
package_type,
package_name: packageName,
username: owner,
per_page: numVersions,
page
})
).pipe(
catchError(err => {
const msg = 'get versions API failed.'
return throwError(
err.errors && err.errors.length > 0
? `${msg} ${err.errors[0].message}`
: `${msg} ${err.message}`
)
}),
map(response => {
const resp = {
versions: response.data.map((version: GetVersionsResponse[0]) => {
let tagged = false
if (
package_type === 'container' &&
version.metadata &&
version.metadata.container
) {
tagged = version.metadata.container.tags.length > 0
}
return { - name: Compile TypeScript
id: version.id, run: npx tsc .github/workflows/get-versions.ts
version: version.name,
created_at: version.created_at, - name: Run script
tagged run: node .github/workflows/get-versions.js ${{ secrets.GITHUB_TOKEN }} ${{ github.event.inputs.package-name }} ${{ github.event.inputs.package-type }}
} env:
}), GITHUB_API_URL: 'https://api.github.com'
page,
paginate: response.data.length === numVersions,
totalCount: response.data.length
}
return resp
})
)
}