2020-09-23 08:58:52 +02:00
|
|
|
import * as core from '@actions/core'
|
|
|
|
import * as inputHelper from './input-helper'
|
|
|
|
import * as dockerhubHelper from './dockerhub-helper'
|
|
|
|
import * as fs from 'fs'
|
|
|
|
import {inspect, TextEncoder} from 'util'
|
|
|
|
|
|
|
|
const MAX_BYTES = 25000
|
|
|
|
|
|
|
|
async function run(): Promise<void> {
|
|
|
|
try {
|
|
|
|
const inputs = inputHelper.getInputs()
|
|
|
|
core.debug(`Inputs: ${inspect(inputs)}`)
|
|
|
|
|
|
|
|
inputHelper.validateInputs(inputs)
|
|
|
|
|
|
|
|
// Fetch the readme content
|
|
|
|
const readmeContent = await fs.promises.readFile(inputs.readmeFilepath, {
|
|
|
|
encoding: 'utf8'
|
|
|
|
})
|
|
|
|
const byteLength = new TextEncoder().encode(readmeContent).length
|
|
|
|
if (byteLength > MAX_BYTES) {
|
|
|
|
throw new Error(
|
|
|
|
`File size exceeds the maximum allowed ${MAX_BYTES} bytes`
|
|
|
|
)
|
|
|
|
}
|
|
|
|
|
|
|
|
// Acquire a token for the Docker Hub API
|
|
|
|
core.info('Acquiring token')
|
|
|
|
const token = await dockerhubHelper.getToken(
|
2020-09-25 04:13:16 +02:00
|
|
|
inputs.username,
|
|
|
|
inputs.password
|
2020-09-23 08:58:52 +02:00
|
|
|
)
|
|
|
|
// Send a PATCH request to update the description of the repository
|
|
|
|
core.info('Sending PATCH request')
|
|
|
|
await dockerhubHelper.updateRepositoryDescription(
|
|
|
|
token,
|
2020-09-25 04:13:16 +02:00
|
|
|
inputs.repository,
|
2020-09-25 08:22:36 +02:00
|
|
|
inputs.shortDescription,
|
2020-09-23 08:58:52 +02:00
|
|
|
readmeContent
|
|
|
|
)
|
|
|
|
core.info('Request successful')
|
|
|
|
} catch (error) {
|
|
|
|
core.debug(inspect(error))
|
|
|
|
core.setFailed(error.message)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
run()
|