Compare commits

..
4 Commits
8 changed files with 10 additions and 23 deletions
+1 -9
View File
@@ -1,9 +1,5 @@
# Summary
## About
- [Highlights](README.md#highlights)
- [How does it work?](README.md#how-does-it-work)
## Usage
- [Installation](docs/usage/installation.md#installation)
- [CI Configuration](docs/usage/ci-configuration.md#ci-configuration)
@@ -29,12 +25,8 @@
- [Plugin](docs/developer-guide/plugin.md)
- [Shareable configuration](docs/developer-guide/shareable-configuration.md)
## Resources
- [Videos](docs/resources.md#videos)
- [Articles](docs/resources.md#articles)
- [Tutorials](docs/resources.md#tutorials)
## Support
- [Resources](docs/support/resources.md)
- [Frequently Asked Questions](docs/support/FAQ.md)
- [Troubleshooting](docs/support/troubleshooting.md)
- [Node version requirement](docs/support/node-version.md)
-8
View File
@@ -1,8 +0,0 @@
{
"plugins" : ["github", "anchors"],
"pluginsConfig": {
"github": {
"url": "https://github.com/semantic-release/semantic-release"
}
}
}
-1
View File
@@ -4,5 +4,4 @@
- [Extending](extending/README.md)- Extending **semantic-release** with plugins and shareable configurations
- [Recipes](recipes/README.md) - Community written recipes for common **semantic-release** use-cases
- [Developer Guide](developer-guide/README.md) - The essentials of writing a **semantic-release** plugin or shareable configurations
- [Resources](resources.md) - Videos, articles and tutorials
- [Support](support/README.md) - FAQ and troubleshooting
+1
View File
@@ -1,5 +1,6 @@
# Support
- [Resources](resources.md) - Videos, articles and tutorials
- [Frequently Asked Questions](FAQ.md)
- [Troubleshooting](troubleshooting.md)
- [Node version requirement](node-version.md)
+3 -2
View File
@@ -17,9 +17,10 @@ module.exports = (options, pluginsPath, logger) => {
if (isUndefined(options[type])) {
pluginConfs = def;
} else {
const defaultPaths = castArray(def);
// If an object is passed and the path is missing, set the default one for single plugins
if (isPlainObject(options[type]) && !options[type].path && castArray(def).length === 1) {
options[type].path = def;
if (isPlainObject(options[type]) && !options[type].path && defaultPaths.length === 1) {
[options[type].path] = defaultPaths;
}
if (configValidator && !configValidator(options[type])) {
errors.push(getError('EPLUGINCONF', {type, pluginConf: options[type]}));
+2 -2
View File
@@ -33,7 +33,7 @@
"find-versions": "^2.0.0",
"get-stream": "^3.0.0",
"git-log-parser": "^1.2.0",
"git-url-parse": "^9.0.0",
"git-url-parse": "^10.0.1",
"hook-std": "^1.0.1",
"hosted-git-info": "^2.7.1",
"lodash": "^4.17.4",
@@ -48,7 +48,7 @@
},
"devDependencies": {
"ava": "^0.25.0",
"clear-module": "^2.1.0",
"clear-module": "^3.0.0",
"codecov": "^3.0.0",
"commitizen": "^2.9.6",
"cz-conventional-changelog": "^2.0.0",
+3 -1
View File
@@ -117,13 +117,15 @@ test.serial('Export plugins loaded from the dependency of a shareable config fil
test('Use default when only options are passed for a single plugin', t => {
const analyzeCommits = {};
const generateNotes = {};
const success = () => {};
const fail = [() => {}];
const plugins = getPlugins({analyzeCommits, success, fail}, {}, t.context.logger);
const plugins = getPlugins({analyzeCommits, generateNotes, success, fail}, {}, t.context.logger);
// Verify the module returns a function for each plugin
t.is(typeof plugins.analyzeCommits, 'function');
t.is(typeof plugins.generateNotes, 'function');
t.is(typeof plugins.success, 'function');
t.is(typeof plugins.fail, 'function');