diff --git a/CHANGELOG.adoc b/CHANGELOG.adoc index 788d079067e995297ce8c6f2440663715ebe3256..4b27ab53c7de179ba8a4a55e5de4df63929012a5 100644 --- a/CHANGELOG.adoc +++ b/CHANGELOG.adoc @@ -6,6 +6,10 @@ For a detailed view of what's changed, refer to the {url-repo}/commits[commit hi == Unreleased +=== Changed + +* exclude `env` property when exporting playbook to json or yaml (#32) + === Fixed * account for null value on env key or env entry diff --git a/packages/collector-extension/lib/index.js b/packages/collector-extension/lib/index.js index 22fad0d39ecfecd5c2330a1c14db6d772cc68d90..ecaef8a6c6a32d34a33d6d0611ea8c1287a82ab9 100644 --- a/packages/collector-extension/lib/index.js +++ b/packages/collector-extension/lib/index.js @@ -73,6 +73,8 @@ module.exports.register = function ({ config: { createWorktrees = 'auto', keepWo let envModified = !('NODE' in playbookEnv) let env = envModified ? Object.assign({ NODE: process.execPath }, playbookEnv) : playbookEnv let envConfig = run.env + Object.isFrozen(playbook) && + Object.defineProperty((playbook = Object.assign({}, playbook)), 'env', { enumerable: false }) const contextVars = { origin, playbook, env } if (envConfig && typeof envConfig === 'object') { if (!Array.isArray(envConfig)) { diff --git a/packages/collector-extension/test/collector-extension-test.js b/packages/collector-extension/test/collector-extension-test.js index aa8a5012190117287900d1ace8443ee5c6b614b2..9b4c48a51eb42c325de3a9f790502cbfeac648ce 100644 --- a/packages/collector-extension/test/collector-extension-test.js +++ b/packages/collector-extension/test/collector-extension-test.js @@ -1196,6 +1196,10 @@ describe('collector extension', () => { { command: '$NODE .gen-using-env.js', env: [ + { + name: 'ANTORA_PLAYBOOK', + value: '$' + '{{ playbook as json }}', + }, { name: 'ANTORA_COLLECTOR_ORIGIN', value: '$' + '{{ origin as json }}', @@ -1217,7 +1221,8 @@ describe('collector extension', () => { repoName: 'test-at-root', collectorConfig, before: (contentAggregate, playbook) => { - playbook.site = { title: 'My Site' } + playbook.site = { title: 'My Site', url: 'https://docs.example.org' } + Object.freeze(playbook) expect(contentAggregate).to.have.lengthOf(1) }, after: (contentAggregate) => { @@ -1229,6 +1234,8 @@ describe('collector extension', () => { refname:: main worktree:: ${expectedWorktree} site title:: My Site (test) + site url:: https://docs.example.org + env in playbook:: false ` expect(bucket.files).to.have.lengthOf(1) expect(bucket.files[0].path).to.equal('modules/ROOT/pages/index.adoc') diff --git a/packages/collector-extension/test/fixtures/test-at-root/.gen-using-env.js b/packages/collector-extension/test/fixtures/test-at-root/.gen-using-env.js index 999bc27d19a456ae5902ea6c9c1c7ad1735c55b7..b9a25392409e95bd155fbcc16ee595ff60ca111d 100644 --- a/packages/collector-extension/test/fixtures/test-at-root/.gen-using-env.js +++ b/packages/collector-extension/test/fixtures/test-at-root/.gen-using-env.js @@ -12,6 +12,7 @@ const fsp = require('node:fs/promises') contents = `= Refname\n\n${process.env.refname}` } else { const origin = JSON.parse(process.env.ANTORA_COLLECTOR_ORIGIN || '{}') + const playbook = JSON.parse(process.env.ANTORA_PLAYBOOK || '{}') contents = [ '= Origin Info', '', @@ -19,6 +20,8 @@ const fsp = require('node:fs/promises') 'refname:: ' + origin.refname, 'worktree:: ' + process.env.ANTORA_COLLECTOR_WORKTREE, 'site title:: ' + process.env.ANTORA_COLLECTOR_SITE_TITLE, + 'site url:: ' + playbook.site.url, + 'env in playbook:: ' + ('env' in playbook), ].join('\n') } await fsp.writeFile('build/modules/ROOT/pages/index.adoc', contents, 'utf8')