@ngocsangairvds/vsaf 4.1.10 → 4.1.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ngocsangairvds/vsaf",
3
- "version": "4.1.10",
3
+ "version": "4.1.11",
4
4
  "description": "logging step",
5
5
  "main": "packages/core/dist/index.js",
6
6
  "types": "packages/core/dist/index.d.ts",
@@ -182,11 +182,26 @@ const ENV_TEMPLATE = `# VDS Environment Configuration
182
182
  VDS_USERNAME=
183
183
  VDS_PASSWORD=
184
184
 
185
+ # ── Jira ──
186
+ JIRA_BASE_URL=
187
+ # JIRA_TOKEN=
188
+
189
+ # ── Jira ViettelMoney ──
190
+ JIRA_VIETTELMONEY_BASE_URL=
191
+ # JIRA_VIETTELMONEY_USERNAME=
192
+ # JIRA_VIETTELMONEY_PASSWORD=
193
+ # JIRA_VIETTELMONEY_PROXY=
194
+
185
195
  # ── Bitbucket ──
186
- BITBUCKET_ACCESS_TOKEN=
187
196
  VDS_BITBUCKET_URL=
197
+ BITBUCKET_ACCESS_TOKEN=
198
+ # BITBUCKET_TOKEN=
199
+ # BITBUCKET_MODE=server
200
+ # BITBUCKET_CLOUD_WORKSPACE=
188
201
 
189
202
  # ── Confluence ──
203
+ CONFLUENCE_INTERNAL_URL=
204
+ CONFLUENCE_EXTERNAL_URL=
190
205
  INTERNAL_CONFLUENCE_TOKEN=
191
206
  EXTERNAL_CONFLUENCE_TOKEN=
192
207
 
@@ -202,7 +217,6 @@ VDS_GIT_CONCURRENCY_DEFAULT=8
202
217
  # VDS_GIT_HTTP_LOW_SPEED_LIMIT=1000
203
218
  # VDS_GIT_HTTP_LOW_SPEED_TIME=300
204
219
  # VDS_GIT_AUTO_REGENERATE_MANIFEST=
205
- # BITBUCKET_TOKEN=
206
220
  `;
207
221
 
208
222
  function provisionEnv() {
@@ -43,7 +43,6 @@ class BitbucketSettings(HTTPClientSettings, BaseSettings):
43
43
  # Backward-compatible aliases: BITBUCKET_BASE_URL, VDS_BITBUCKET_HTTP_BASE
44
44
  # Priority: VDS_BITBUCKET_URL > BITBUCKET_BASE_URL > VDS_BITBUCKET_HTTP_BASE
45
45
  base_url: str = Field(
46
- default="http://bitbucket.digital.vn",
47
46
  validation_alias=AliasChoices(
48
47
  "VDS_BITBUCKET_URL", # Primary (highest priority)
49
48
  "BITBUCKET_BASE_URL", # Legacy alias
@@ -52,11 +52,9 @@ class ConfluenceSettings(HTTPClientSettings, BaseSettings):
52
52
 
53
53
  # Canonical URLs
54
54
  internal_url: AnyHttpUrl = Field(
55
- default="http://confluence.digital.vn",
56
55
  alias="CONFLUENCE_INTERNAL_URL",
57
56
  )
58
57
  external_url: AnyHttpUrl = Field(
59
- default="http://10.254.136.35:8090",
60
58
  alias="CONFLUENCE_EXTERNAL_URL",
61
59
  )
62
60
 
@@ -1,5 +1,4 @@
1
1
  bitbucket:
2
- base_url: http://bitbucket.digital.vn
3
2
  project: WHO
4
3
  server: internal
5
4
  pages:
@@ -154,4 +153,4 @@ repos:
154
153
  name: vds-ai-memory
155
154
  slug: vds-ai-memory
156
155
  space_key: TTCN24
157
- confluence_url: http://confluence.digital.vn/display/TTCN24/WHO-Project+Ecosystem+Documentation
156
+ # confluence_url is resolved at runtime from CONFLUENCE_INTERNAL_URL env var
@@ -43,7 +43,7 @@ class JiraSettings(HTTPClientSettings, BaseSettings):
43
43
 
44
44
  # Non-sensitive fields
45
45
  username: str | None = Field(default=None, alias="VDS_USERNAME")
46
- base_url: str = Field(default="http://jira.digital.vn", alias="JIRA_BASE_URL")
46
+ base_url: str = Field(alias="JIRA_BASE_URL")
47
47
 
48
48
  # Sensitive credentials - stored as SecretStr for security
49
49
  password_secret: SecretStr | None = Field(default=None, alias="VDS_PASSWORD")
@@ -34,11 +34,9 @@ class JiraViettelMoneySettings(HTTPClientSettings, BaseSettings):
34
34
  )
35
35
 
36
36
  username: str | None = Field(default=None, alias="JIRA_VIETTELMONEY_USERNAME")
37
- base_url: str = Field(
38
- default="https://jira.viettelmoney.vn", alias="JIRA_VIETTELMONEY_BASE_URL"
39
- )
37
+ base_url: str = Field(alias="JIRA_VIETTELMONEY_BASE_URL")
40
38
  # Proxy is passed per-request via requests.Session — not set system-wide
41
- proxy_url: str | None = Field(default="http://10.254.148.131:8800", alias="JIRA_VIETTELMONEY_PROXY")
39
+ proxy_url: str | None = Field(default=None, alias="JIRA_VIETTELMONEY_PROXY")
42
40
 
43
41
  password_secret: SecretStr | None = Field(default=None, alias="JIRA_VIETTELMONEY_PASSWORD")
44
42
  token_secret: SecretStr | None = Field(default=None, alias="JIRA_VIETTELMONEY_TOKEN")
@@ -3,6 +3,7 @@
3
3
  from __future__ import annotations
4
4
 
5
5
  import logging
6
+ import os
6
7
  import re
7
8
  from dataclasses import dataclass, field
8
9
  from datetime import UTC, datetime
@@ -306,11 +307,19 @@ def load_confluence_config(repo_root: Path) -> ConfluenceHubConfig:
306
307
  )
307
308
  )
308
309
 
310
+ # Resolve bitbucket_base_url from env (VDS_BITBUCKET_URL) with YAML fallback
311
+ bitbucket_base_url = os.environ.get(
312
+ "VDS_BITBUCKET_URL",
313
+ raw.get("bitbucket", {}).get("base_url", ""),
314
+ )
315
+ if not bitbucket_base_url:
316
+ raise ValueError("VDS_BITBUCKET_URL env var is required (or set bitbucket.base_url in .confluence.yaml)")
317
+
309
318
  return ConfluenceHubConfig(
310
319
  parent_page_id=raw["parent_page_id"],
311
320
  space_key=raw["space_key"],
312
321
  bitbucket_project=raw["bitbucket"]["project"],
313
- bitbucket_base_url=raw["bitbucket"]["base_url"],
322
+ bitbucket_base_url=bitbucket_base_url.rstrip("/"),
314
323
  bitbucket_server=raw["bitbucket"].get("server", "internal"),
315
324
  repos=repos,
316
325
  pages=pages,