28 lines · 917 B · TypeScript
RawDownload
export type ArtifactEnv = Record<string, string | undefined>; export interface ReleaseArtifactRef {	ref: string;	name: string;} export function releaseArtifactNamespace(env: ArtifactEnv = process.env): string {	const namespace = env.RELEASE_ARTIFACT_NAMESPACE?.trim() || "agent-os";	if (!/^[a-z0-9][a-z0-9-]*$/.test(namespace)) {		throw new Error(`invalid RELEASE_ARTIFACT_NAMESPACE: ${namespace}`);	}	return namespace;} export function releaseArtifactPrefix(	artifact: ReleaseArtifactRef,	env: ArtifactEnv = process.env,): string {	return `${releaseArtifactNamespace(env)}/${artifact.ref}/${artifact.name}/`;} export function releaseUserAgent(env: ArtifactEnv = process.env): string {	const namespace = releaseArtifactNamespace(env);	const repositoryUrl =		env.RELEASE_REPOSITORY_URL ?? `https://github.com/rivet-dev/${namespace}`;	return `${namespace}-release-publisher (${repositoryUrl})`;}