mirror of
https://git.mirrors.martin98.com/https://github.com/actions/toolkit
synced 2025-11-19 06:01:08 +08:00
35 lines
935 B
TypeScript
35 lines
935 B
TypeScript
import {Timestamp} from '../../generated'
|
|
import * as core from '@actions/core'
|
|
|
|
export function getExpiration(retentionDays?: number): Timestamp | undefined {
|
|
if (!retentionDays) {
|
|
return undefined
|
|
}
|
|
|
|
const maxRetentionDays = getRetentionDays()
|
|
if (maxRetentionDays && maxRetentionDays < retentionDays) {
|
|
core.warning(
|
|
`Retention days cannot be greater than the maximum allowed retention set within the repository. Using ${maxRetentionDays} instead.`
|
|
)
|
|
retentionDays = maxRetentionDays
|
|
}
|
|
|
|
const expirationDate = new Date()
|
|
expirationDate.setDate(expirationDate.getDate() + retentionDays)
|
|
|
|
return Timestamp.fromDate(expirationDate)
|
|
}
|
|
|
|
function getRetentionDays(): number | undefined {
|
|
const retentionDays = process.env['GITHUB_RETENTION_DAYS']
|
|
if (!retentionDays) {
|
|
return undefined
|
|
}
|
|
const days = parseInt(retentionDays)
|
|
if (isNaN(days)) {
|
|
return undefined
|
|
}
|
|
|
|
return days
|
|
}
|