-
Notifications
You must be signed in to change notification settings - Fork 121
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: runnable exec + CLI args via yargs + install docs
- add "bin" to package.json to support running git-proxy as an executable. Largely taken from #184 and fixes #183 - added --config and --validate command line flags via yargs. These will allow custom user configurations with a default behaviour of loading from the current working dir and/or default settings. --validate uses JSON Schema to validate the config. - update docs to reflect new CLI args and additional details of running the app via npx - load default settings from a module instead of explicit file path - add test for default & user setting merging - bump @finos/git-proxy to 1.1.0 - Remove old X.509 certificate and private key, which I assume was included previously to run git-proxy with TLS enabled via a demo. Can be re-added as needed but probably shouldn't be included in src (even if its for demo only).
- Loading branch information
1 parent
e5300f3
commit 06b4c1d
Showing
12 changed files
with
326 additions
and
78 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,79 @@ | ||
{ | ||
"$schema": "https://json-schema.org/draft/2020-12/schema", | ||
"$id": "https://git-proxy.finos.org/config.schema.json", | ||
"title": "Git Proxy", | ||
"description": "Configuration file for modifying the behaviour of git-proxy", | ||
"type": "object", | ||
"properties": { | ||
"authorisedList": { | ||
"description": "List of repositories that are authorised to be pushed to through the proxy.", | ||
"type": "array", | ||
"items": { | ||
"$ref": "#/$defs/authorisedRepo" | ||
} | ||
}, | ||
"sink": { | ||
"description": "List of database sources. The first source in the configuration with enabled=true will be used.", | ||
"type": "array", | ||
"items": { | ||
"$ref": "#/$defs/database" | ||
} | ||
}, | ||
"authentication": { | ||
"description": "List of authentication sources. The first source in the configuration with enabled=true will be used.", | ||
"type": "array", | ||
"items": { | ||
"$ref": "#/$defs/authentication" | ||
} | ||
}, | ||
"tempPassword": { | ||
"description": "Toggle the generation of temporary password for git-proxy admin user", | ||
"type": "object", | ||
"properties": { | ||
"sendEmail": { "type": "boolean" }, | ||
"emailConfig": { | ||
"description": "Generic object to configure nodemailer. For full type information, please see https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/nodemailer", | ||
"type": "object" | ||
} | ||
} | ||
} | ||
}, | ||
"additionalProperties": false, | ||
"anyOf": [ | ||
{ "required": "authorisedList" }, | ||
{ "required": "sink" }, | ||
{ "required": "authentication" }, | ||
{ "required": "tempPassword" } | ||
], | ||
"$defs": { | ||
"authorisedRepo": { | ||
"type": "object", | ||
"properties": { | ||
"project": { "type": "string" }, | ||
"name": { "type": "string" }, | ||
"url": { "type": "string" } | ||
}, | ||
"required": [ "project", "name", "url" ] | ||
}, | ||
"database": { | ||
"type": "object", | ||
"properties": { | ||
"type": { "type": "string" }, | ||
"enabled": { "type": "boolean" }, | ||
"connectionString": { "type": "string" }, | ||
"options": { "type": "object" }, | ||
"params": { "type": "object" } | ||
}, | ||
"required": [ "type", "enabled" ] | ||
}, | ||
"authentication": { | ||
"type": "object", | ||
"properties": { | ||
"type": { "type": "string" }, | ||
"enabled": { "type": "boolean" }, | ||
"options": { "type": "object" } | ||
}, | ||
"required": [ "type", "enabled" ] | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
File renamed without changes.
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
const path = require('path'); | ||
// eslint-disable-next-line prefer-const | ||
let configFile = undefined; | ||
|
||
module.exports = { | ||
get configFile() { | ||
return configFile | ||
? configFile | ||
: path.join(process.cwd(), 'proxy.config.json'); | ||
}, | ||
set configFile(file) { | ||
configFile = file; | ||
}, | ||
}; |
Oops, something went wrong.