GitLab Synchronization: add gitlabUrl to ExpressLocals; use settings.gitlabSync instead of env vars

This commit is contained in:
yu-i-i
2026-09-28 00:34:31 +02:00
parent d458e51918
commit 3bfeb32bef
3 changed files with 20 additions and 15 deletions
+13 -9
View File
@@ -7,9 +7,20 @@ if (process.env.GITLAB_SYNC_ENABLED?.toLowerCase() === 'true') {
logger.debug({}, 'Enabling GitLab Sync module')
// The GITLAB_URL variable has to be set for this module to work, otherwise the module will not be enabled
if (process.env.GITLAB_SYNC_URL === undefined || process.env.GITLAB_SYNC_URL === '') {
logger.warn({}, 'GitLab Sync module is enabled but GITLAB_SYNC_URL is not set, stopping module initialization')
if (!process.env.GITLAB_SYNC_URL || !process.env.GITLAB_SYNC_CLIENT_ID || !process.env.GITLAB_SYNC_CLIENT_SECRET) {
logger.warn({}, 'GitLab Sync module is enabled but not all mandatory envirionment variables are set, stopping module initialization')
} else {
const siteUrl = Settings.siteUrl.replace(/\/+$/, '') || 'http://localhost'
Settings.gitlabSync = {
url: process.env.GITLAB_SYNC_URL.replace(/\/+$/, ''),
clientID: process.env.GITLAB_SYNC_CLIENT_ID,
clientSecret: process.env.GITLAB_SYNC_CLIENT_SECRET,
callbackURL: `${siteUrl}/user/gitlab-sync/oauth2/callback`,
defaultBranch: process.env.GITLAB_DEFAULT_BRANCH || 'main',
mergeRequestPollInterval: process.env.GITLAB_MERGE_REQUEST_POLL_INTERVAL_MS || 1000,
mergeRequestTimeout: process.env.GITLAB_MERGE_REQUEST_TIMEOUT_MS || 60_000,
}
const [{ default: GitLabSyncRouter },
{ default: SyncStateManager },
{ default: TokenManager }
@@ -20,13 +31,6 @@ if (process.env.GITLAB_SYNC_ENABLED?.toLowerCase() === 'true') {
import('./app/src/TokenManager.mjs'),
])
const siteUrl = Settings.siteUrl.replace(/\/+$/, '') || 'http://localhost'
Settings.gitlabSync = {
clientID: process.env.GITLAB_SYNC_CLIENT_ID,
clientSecret: process.env.GITLAB_SYNC_CLIENT_SECRET,
callbackURL: `${siteUrl}/user/gitlab-sync/oauth2/callback`,
},
// Delete project sync state from mongo (hook 'projectExpired')
Modules.hooks.attach('projectExpired', async projectId => {
try {