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
The Jetty server implementation uses YAML-based configuration to dynamically configure providers, filters, and server settings. This is separate from the Spring Boot configuration (`application.yml`).
4
+
5
+
## Configuration Files
6
+
7
+
| File | Purpose |
8
+
|------|---------|
9
+
|`git-proxy.yml`| Base configuration shipped with the jar |
10
+
|`git-proxy-local.yml`| Local overrides for development (optional) |
11
+
12
+
Files are loaded from the classpath in order, with `git-proxy-local.yml` values taking priority.
13
+
14
+
## Environment Variable Overrides
15
+
16
+
Configuration values can be overridden using environment variables with the `GITPROXY_` prefix:
17
+
18
+
| Environment Variable | Configuration Key | Example |
> **Note:** Whitelist filter configuration is not supported via environment variables due to its complex nested structure. Use YAML files instead.
25
+
26
+
## Server Settings
27
+
28
+
```yaml
29
+
server:
30
+
port: 8080
31
+
```
32
+
33
+
## Provider Configuration
34
+
35
+
Providers define the upstream Git hosting services to proxy. Built-in providers (github, gitlab, bitbucket) use well-known URIs. Custom providers require an explicit URI.
36
+
37
+
```yaml
38
+
git-proxy:
39
+
providers:
40
+
# Built-in providers (use well-known URIs)
41
+
github:
42
+
enabled: true
43
+
gitlab:
44
+
enabled: true
45
+
bitbucket:
46
+
enabled: true
47
+
48
+
# Custom provider with explicit URI
49
+
internal-gitlab:
50
+
enabled: true
51
+
servlet-path: /enterprise
52
+
uri: https://gitlab.internal.example.com
53
+
54
+
# Another custom provider
55
+
debian-gitlab:
56
+
enabled: true
57
+
servlet-path: /debian
58
+
uri: https://salsa.debian.org/
59
+
```
60
+
61
+
### Provider Properties
62
+
63
+
| Property | Type | Default | Description |
64
+
|----------|------|---------|-------------|
65
+
| `enabled` | boolean | `true` | Whether the provider is active |
66
+
| `servlet-path` | string | `""` | Additional path prefix for the provider |
67
+
| `uri` | string | _(built-in default)_ | Base URI for the upstream Git server |
68
+
69
+
## Filter Configuration
70
+
71
+
### Whitelist Filters
72
+
73
+
Whitelist filters control which repositories are allowed to be accessed through the proxy. Multiple whitelists can be defined, each scoped to specific providers and operations.
74
+
75
+
```yaml
76
+
git-proxy:
77
+
filters:
78
+
whitelists:
79
+
# Allow specific repos by slug (owner/name)
80
+
- enabled: true
81
+
order: 1100
82
+
operations:
83
+
- FETCH
84
+
- PUSH
85
+
providers:
86
+
- github
87
+
slugs:
88
+
- finos/git-proxy
89
+
- coopernetes/test-repo
90
+
91
+
# Allow all repos from an owner
92
+
- enabled: true
93
+
order: 1200
94
+
operations:
95
+
- FETCH
96
+
providers:
97
+
- github
98
+
owners:
99
+
- finos
100
+
101
+
# Allow repos by name across all providers
102
+
- enabled: true
103
+
order: 1300
104
+
operations:
105
+
- FETCH
106
+
names:
107
+
- hello-world
108
+
```
109
+
110
+
### Whitelist Properties
111
+
112
+
| Property | Type | Default | Description |
113
+
|----------|------|---------|-------------|
114
+
| `enabled` | boolean | `true` | Whether this whitelist is active |
115
+
| `order` | int | `1100` | Filter execution order (1000-1999 range) |
116
+
| `operations` | list | _none_ | Git operations to match: `FETCH`, `PUSH` |
117
+
| `providers` | list | _all_ | Provider names this whitelist applies to |
0 commit comments