You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+49-2Lines changed: 49 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -40,7 +40,7 @@
40
40
41
41
## What is GitProxy
42
42
43
-
GitProxy is an application that stands between developers and a Git remote endpoint (e.g., `github.com`). It applies rules and workflows (configurable as `plugins`) to all outgoing `git push` operations to ensure they are compliant.
43
+
GitProxy is an application that stands between developers and a Git remote endpoint (e.g., `github.com`). It applies rules and workflows (configurable as `plugins`) to all outgoing `git push` operations to ensure they are compliant. GitProxy supports both **HTTP/HTTPS** and **SSH** protocols with identical security scanning and validation.
44
44
45
45
The main goal of GitProxy is to marry the defacto standard Open Source developer experience (git-based workflow of branching out, submitting changes and merging back) with security and legal requirements that firms have to comply with, when operating in highly regulated industries like financial services.
46
46
@@ -68,8 +68,9 @@ $ npx -- @finos/git-proxy
68
68
69
69
Clone a repository, set the remote to the GitProxy URL and push your changes:
70
70
71
+
### Using HTTPS
72
+
71
73
```bash
72
-
# Only HTTPS cloning is supported at the moment, see https://github.com/finos/git-proxy/issues/27.
Using the default configuration, GitProxy intercepts the push and _blocks_ it. To enable code pushing to your fork via GitProxy, add your repository URL into the GitProxy config file (`proxy.config.json`). For more information, refer to [our documentation](https://git-proxy.finos.org).
85
105
106
+
## Protocol Support
107
+
108
+
GitProxy supports both **HTTP/HTTPS** and **SSH** protocols with identical security features:
Copy file name to clipboardExpand all lines: config.schema.json
+63-3Lines changed: 63 additions & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -7,7 +7,7 @@
7
7
"properties": {
8
8
"proxyUrl": {
9
9
"type": "string",
10
-
"description": "Deprecated: Used in early versions of git proxy to configure the remote host that traffic is proxied to. In later versions, the repository URL is used to determine the domain proxied, allowing multiple hosts to be proxied by one instance.",
10
+
"description": "Deprecated: Used in early versions of GitProxy to configure the remote host that traffic is proxied to. In later versions, the repository URL is used to determine the domain proxied, allowing multiple hosts to be proxied by one instance.",
11
11
"deprecated": true
12
12
},
13
13
"cookieSecret": { "type": "string" },
@@ -240,7 +240,7 @@
240
240
"required": []
241
241
},
242
242
"domains": {
243
-
"description": "Provide custom URLs for the git proxy interfaces in case it cannot determine its own URL",
243
+
"description": "Provide custom URLs for the GitProxy interfaces in case it cannot determine its own URL",
244
244
"type": "object",
245
245
"properties": {
246
246
"proxy": {
@@ -311,6 +311,17 @@
311
311
"$ref": "#/definitions/authorisedRepo"
312
312
}
313
313
},
314
+
"limits": {
315
+
"description": "Configuration for various limits",
316
+
"type": "object",
317
+
"properties": {
318
+
"maxPackSizeBytes": {
319
+
"type": "number",
320
+
"description": "Maximum size of a pack file in bytes (default 1GB)"
321
+
}
322
+
},
323
+
"additionalProperties": false
324
+
},
314
325
"sink": {
315
326
"description": "List of database sources. The first source in the configuration with enabled=true will be used.",
316
327
"type": "array",
@@ -388,6 +399,55 @@
388
399
}
389
400
}
390
401
},
402
+
"ssh": {
403
+
"description": "SSH proxy server configuration. The proxy uses SSH agent forwarding to authenticate with remote Git servers (GitHub, GitLab, etc.) using the client's SSH keys. The proxy's own host key is auto-generated and only used to identify the proxy to connecting clients.",
404
+
"type": "object",
405
+
"properties": {
406
+
"enabled": {
407
+
"type": "boolean",
408
+
"description": "Enable SSH proxy server. When enabled, clients can connect via SSH and the proxy will forward their SSH agent to authenticate with remote Git servers."
409
+
},
410
+
"port": {
411
+
"type": "number",
412
+
"description": "Port for SSH proxy server to listen on. Clients connect to this port instead of directly to GitHub/GitLab.",
413
+
"default": 2222
414
+
},
415
+
"agentForwardingErrorMessage": {
416
+
"type": "string",
417
+
"description": "Custom error message shown when SSH agent forwarding is not enabled or no keys are loaded in the client's SSH agent. If not specified, a default message with git config commands will be shown. This allows organizations to customize instructions based on their security policies."
418
+
},
419
+
"debug": {
420
+
"type": "boolean",
421
+
"description": "Enable verbose SSH protocol debug logging (both for the local SSH server and for outbound connections to remote Git servers). Emits one log line per SSH packet, so leave disabled in production.",
422
+
"default": false
423
+
},
424
+
"hostKey": {
425
+
"type": "object",
426
+
"description": "Custom SSH host key paths. If not specified, a host key is auto-generated at .ssh/proxy_host_key.",
427
+
"properties": {
428
+
"privateKeyPath": {
429
+
"type": "string",
430
+
"description": "Path to the private key file (e.g. /etc/git-proxy/host_key)"
431
+
},
432
+
"publicKeyPath": {
433
+
"type": "string",
434
+
"description": "Path to the public key file (e.g. /etc/git-proxy/host_key.pub)"
435
+
}
436
+
},
437
+
"required": ["privateKeyPath", "publicKeyPath"],
438
+
"additionalProperties": false
439
+
},
440
+
"knownHosts": {
441
+
"type": "object",
442
+
"description": "SSH host key fingerprints for verifying remote Git servers, merged with built-in defaults for github.com and gitlab.com.",
443
+
"additionalProperties": {
444
+
"type": "string"
445
+
}
446
+
}
447
+
},
448
+
"required": ["enabled"],
449
+
"additionalProperties": false
450
+
},
391
451
"upstreamProxy": {
392
452
"description": "Configuration for routing outbound requests to upstream Git hosts via an HTTP(S) proxy.",
393
453
"type": "object",
@@ -494,7 +554,7 @@
494
554
},
495
555
"userGroup": {
496
556
"type": "string",
497
-
"description": "Group that indicates that a user should be able to login to the Git Proxy UI and can work as a reviewer"
557
+
"description": "Group that indicates that a user should be able to login to the GitProxy UI and can work as a reviewer"
0 commit comments