fix(releases): проверять манифест и достоверность сведений о сборке
This commit is contained in:
1 parent
d5edfe5ef6
commit
1d27127b52
10 files changed
+135
-64
No files matched your search
+6
-35
@@ -1,36 +1,7 @@
|
||||
import { readFileSync } from "node:fs"
|
||||
import { join } from "node:path"
|
||||
|
||||
export interface ReleaseCommit {
|
||||
sha: string
|
||||
shortSha: string
|
||||
subject: string
|
||||
author: string
|
||||
type: string
|
||||
}
|
||||
|
||||
export interface ReleaseManifest {
|
||||
version: string
|
||||
tag: string
|
||||
publishedAt: string | null
|
||||
releaseUrl: string
|
||||
commits: ReleaseCommit[]
|
||||
}
|
||||
|
||||
const fallbackManifest: ReleaseManifest = {
|
||||
version: "1.0.0",
|
||||
tag: "v1.0.0",
|
||||
publishedAt: null,
|
||||
releaseUrl: "",
|
||||
commits: [],
|
||||
}
|
||||
|
||||
export function readReleaseManifest(): ReleaseManifest {
|
||||
try {
|
||||
const filePath = join(process.cwd(), "public", "release-manifest.json")
|
||||
const raw = readFileSync(filePath, "utf8")
|
||||
return JSON.parse(raw) as ReleaseManifest
|
||||
} catch {
|
||||
return fallbackManifest
|
||||
}
|
||||
import {readFileSync} from "node:fs"
|
||||
import {join} from "node:path"
|
||||
import {parseReleaseManifest,type ReleaseManifest} from "./release-metadata"
|
||||
export type {ReleaseManifest,ReleaseCommit} from "./release-metadata"
|
||||
export function readReleaseManifest():ReleaseManifest|null {
|
||||
try{return parseReleaseManifest(JSON.parse(readFileSync(join(process.cwd(),"public","release-manifest.json"),"utf8")))}catch{return null}
|
||||
}
|
||||
Reference in new issue
Block a user