- add support for configs to be provided from file and json

- define priority on the config json from YML, followed by file, last with the default value
  - Simplify code by merging configs right away
  - thanks for the suggestion @dtcMLOps
This commit is contained in:
Mike Penz
2023-01-03 15:44:57 +00:00
committed by GitHub
parent 035f356b99
commit 77b2076a3f
9 changed files with 122 additions and 69 deletions
+10 -8
View File
@@ -1,6 +1,6 @@
import * as core from '@actions/core'
import * as github from '@actions/github'
import {parseConfiguration, resolveConfiguration, retrieveRepositoryPath, writeOutput} from './utils'
import {mergeConfiguration, parseConfiguration, resolveConfiguration, retrieveRepositoryPath, writeOutput} from './utils'
import {ReleaseNotesBuilder} from './releaseNotesBuilder'
import {Configuration} from './configuration'
@@ -13,18 +13,20 @@ async function run(): Promise<void> {
const inputPath = core.getInput('path')
const repositoryPath = retrieveRepositoryPath(inputPath)
// read in configuration file if possible
let configuration: Configuration | undefined = undefined
// read in configuration from json if possible
let configJson: Configuration | undefined = undefined
const configurationJson: string = core.getInput('configurationJson', {
trimWhitespace: true
})
if (configurationJson) {
configuration = parseConfiguration(configurationJson)
}
if (!configuration) {
const configurationFile: string = core.getInput('configuration')
configuration = resolveConfiguration(repositoryPath, configurationFile)
configJson = parseConfiguration(configurationJson)
}
// read in the configuration from the file if possible
const configurationFile: string = core.getInput('configuration')
const configFile = resolveConfiguration(repositoryPath, configurationFile)
// merge configs, use default values from DefaultConfig on missing definition
const configuration = mergeConfiguration(configJson, configFile)
// read in repository inputs
const baseUrl = core.getInput('baseUrl')