|
1 | | -# debug |
2 | | -APP_DEBUG_ENABLED=false |
| 1 | +# every value may instead be an ssm parameter arn, such as |
| 2 | +# arn:aws:ssm:us-east-1:123456789012:parameter/github-ops-app/slack-token |
3 | 3 |
|
4 | | -# admin token for /server/* and /scheduled/* endpoints (optional) |
5 | | -# when set, requests to these endpoints require "Authorization: Bearer <token>" |
6 | | -# APP_ADMIN_TOKEN=your-secret-admin-token |
| 4 | +# logging: debug, info, warn, or error (default: info) |
| 5 | +# APP_LOG_LEVEL=info |
| 6 | + |
| 7 | +# server (cmd/server only) |
| 8 | +# APP_LISTEN_ADDR=:8080 |
| 9 | +# routes are served under this path, such as an api gateway stage (optional) |
| 10 | +# APP_BASE_PATH=/prod |
| 11 | +# external url of the service, including APP_BASE_PATH; used by the installer |
| 12 | +# APP_PUBLIC_URL=https://github-ops.example.com |
| 13 | + |
| 14 | +# admin token for /server/* and /scheduled/*, at least 16 characters; the |
| 15 | +# admin endpoints are disabled when it is unset |
| 16 | +# APP_ADMIN_TOKEN=change-me-to-a-long-random-string |
7 | 17 |
|
8 | 18 | # github app (required) |
| 19 | +APP_GITHUB_ORG=acme |
9 | 20 | APP_GITHUB_APP_ID=123456 |
10 | | -APP_GITHUB_APP_PRIVATE_KEY_PATH=./.local/private-key.pem |
11 | | -APP_GITHUB_INSTALLATION_ID=987654 |
12 | | -APP_GITHUB_ORG=cruxstack |
13 | | -APP_GITHUB_WEBHOOK_SECRET=your-webhook-secret-here |
| 21 | +APP_GITHUB_APP_PRIVATE_KEY_PATH=./.local/github-private-key.pem |
| 22 | +# or the key itself, with literal newlines or \n escapes |
| 23 | +# APP_GITHUB_APP_PRIVATE_KEY="-----BEGIN RSA PRIVATE KEY-----\n...\n-----END RSA PRIVATE KEY-----" |
| 24 | +APP_GITHUB_WEBHOOK_SECRET=change-me |
| 25 | +# looked up from the organization when unset |
| 26 | +# APP_GITHUB_INSTALLATION_ID=987654 |
| 27 | +# api url for github enterprise server |
| 28 | +# APP_GITHUB_BASE_URL=https://github.example.com/api/v3 |
| 29 | + |
| 30 | +# github app installer (optional): serves /setup to create the app from a |
| 31 | +# manifest and saves its credentials; disable it once the app is created |
| 32 | +# GITHUB_APP_INSTALLER_ENABLED=true |
| 33 | +# STORAGE_MODE=envfile # envfile or aws-ssm |
| 34 | +# STORAGE_DIR=./.env # env file the envfile mode writes |
| 35 | +# AWS_SSM_PARAMETER_PREFIX=/github-ops-app/ |
| 36 | +# AWS_SSM_KMS_KEY_ID=alias/github-ops-app |
14 | 37 |
|
15 | | -# github pr compliance (optional) |
| 38 | +# pr compliance (optional) |
16 | 39 | APP_PR_COMPLIANCE_ENABLED=true |
17 | | -APP_PR_MONITORED_BRANCHES=main,master |
| 40 | +# branch names or glob patterns |
| 41 | +APP_PR_MONITORED_BRANCHES=main,master,release/* |
18 | 42 |
|
19 | | -# okta (optional) |
20 | | -APP_OKTA_DOMAIN=company.okta.com |
| 43 | +# okta group sync (optional; setting any okta value requires all of them) |
| 44 | +APP_OKTA_DOMAIN=acme.okta.com |
21 | 45 | APP_OKTA_CLIENT_ID=0oaxxxxxxxxxxxxxxxxxxxxx |
22 | 46 | APP_OKTA_PRIVATE_KEY_PATH=./.local/okta-private-key.pem |
| 47 | +# APP_OKTA_PRIVATE_KEY_ID=kid-from-okta |
23 | 48 | # APP_OKTA_SCOPES=okta.groups.read,okta.users.read |
24 | | - |
25 | | -# okta sync rules |
26 | 49 | APP_OKTA_GITHUB_USER_FIELD=githubUsername |
27 | | -APP_OKTA_SYNC_RULES=[{"name":"sync-eng","enabled":true,"okta_group_pattern":"^github-eng-.*","github_team_prefix":"eng-","strip_prefix":"github-eng-","sync_members":true,"create_team_if_missing":true}] |
28 | | -# APP_OKTA_SYNC_SAFETY_THRESHOLD=0.5 # Prevent mass removal if more than 50% would be removed (default: 0.5) |
| 50 | +APP_OKTA_SYNC_RULES=[{"name":"sync-eng","okta_group_pattern":"^github-eng-.*","strip_prefix":"github-eng-","github_team_prefix":"eng-","create_team_if_missing":true}] |
| 51 | +# refuse to remove more than this share of a team's members (default: 0.5) |
| 52 | +# APP_OKTA_SYNC_SAFETY_THRESHOLD=0.5 |
| 53 | +# APP_OKTA_ORPHANED_USER_NOTIFICATIONS=true |
29 | 54 |
|
30 | | -# security alerts monitoring (optional) |
| 55 | +# stale security alerts (optional) |
31 | 56 | # APP_SECURITY_ALERTS_ENABLED=true |
32 | | -# APP_SECURITY_ALERTS_MIN_AGE_DAYS=30 # only report alerts older than N days (default: 30) |
33 | | -# APP_SECURITY_ALERTS_MIN_SEVERITY=high # minimum severity: critical, high, medium, low (default: high) |
| 57 | +# APP_SECURITY_ALERTS_MIN_AGE_DAYS=30 |
| 58 | +# APP_SECURITY_ALERTS_MIN_SEVERITY=high |
34 | 59 |
|
35 | | -# slack configuration (optional) |
| 60 | +# slack (optional; the token and channel are required together) |
36 | 61 | APP_SLACK_TOKEN=xoxb-xxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
37 | 62 | APP_SLACK_CHANNEL=C01234ABCDE |
38 | | -# optional: per-notification-type channels (fall back to APP_SLACK_CHANNEL) |
| 63 | +# per notification type; each falls back to APP_SLACK_CHANNEL |
39 | 64 | # APP_SLACK_CHANNEL_PR_BYPASS=C01234ABCDE |
40 | 65 | # APP_SLACK_CHANNEL_OKTA_SYNC=C01234ABCDE |
41 | 66 | # APP_SLACK_CHANNEL_ORPHANED_USERS=C01234ABCDE |
42 | 67 | # APP_SLACK_CHANNEL_SECURITY_ALERTS=C01234ABCDE |
43 | | -# optional: custom footer note for PR bypass notifications (supports Slack mrkdwn) |
| 68 | +# footer for pr bypass notifications, in slack mrkdwn |
44 | 69 | # APP_SLACK_FOOTER_NOTE_PR_BYPASS=_Please review the <https://example.com/policy|security policy>._ |
45 | | - |
46 | | -# api gateway base path (optional, for lambda deployments with stage prefix) |
47 | | -# APP_BASE_PATH=v1 |
48 | | - |
49 | | -# server port (optional, for cmd/server only, default: 8080) |
50 | | -# APP_PORT=8080 |
|
0 commit comments