antelope-cli 1.2.3 → 1.2.4

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.
Files changed (37) hide show
  1. package/ansible/onboarding-ca/README.md +105 -105
  2. package/ansible/onboarding-ca/onboard-ca.yml +43 -51
  3. package/ansible/onboarding-ca/requirements.yml +8 -8
  4. package/ansible/onboarding-ca/roles/onboard_ca/defaults/main.yml +77 -49
  5. package/ansible/onboarding-ca/roles/onboard_ca/meta/main.yml +10 -10
  6. package/ansible/onboarding-ca/roles/onboard_ca/tasks/main.yml +311 -193
  7. package/ansible/onboarding-ca/roles/onboard_ca/tasks/per_branch.yml +114 -107
  8. package/ansible/onboarding-ca/roles/onboard_ca/vars/main.yml +9 -9
  9. package/ansible/onboarding-crm/README.md +107 -0
  10. package/ansible/onboarding-crm/onboard-crm.yml +60 -0
  11. package/ansible/onboarding-crm/requirements.yml +8 -0
  12. package/ansible/onboarding-crm/roles/onboard_crm/defaults/main.yml +99 -0
  13. package/ansible/onboarding-crm/roles/onboard_crm/meta/main.yml +10 -0
  14. package/ansible/onboarding-crm/roles/onboard_crm/tasks/main.yml +324 -0
  15. package/ansible/onboarding-crm/roles/onboard_crm/tasks/per_branch.yml +121 -0
  16. package/ansible/onboarding-crm/roles/onboard_crm/vars/main.yml +9 -0
  17. package/index.js +12 -12
  18. package/onboarding/brand.js +21 -21
  19. package/onboarding/createConfig.js +71 -71
  20. package/onboarding/favicon.js +24 -24
  21. package/onboarding/index.js +62 -62
  22. package/onboarding/logo.js +16 -16
  23. package/onboarding/themes.js +92 -92
  24. package/onboarding/translations.js +41 -41
  25. package/onboarding/variablesColors.js +58 -58
  26. package/onboarding-ca/brand.js +13 -13
  27. package/onboarding-ca/index.js +94 -94
  28. package/onboarding-ca/riskDisclaimer.js +27 -27
  29. package/onboarding-ca/scss.js +24 -24
  30. package/onboarding-ca/templates/risk-disclaimer.html +12 -12
  31. package/onboarding-crm/brand.js +22 -22
  32. package/onboarding-crm/brandLogos.js +31 -0
  33. package/onboarding-crm/createConfig.js +40 -40
  34. package/onboarding-crm/index.js +175 -171
  35. package/onboarding-crm/themes.js +92 -92
  36. package/onboarding-crm/variablesColors.js +53 -53
  37. package/package.json +30 -30
@@ -1,105 +1,105 @@
1
- # Client Area brand onboarding (Ansible)
2
-
3
- Automates onboarding a new client brand into
4
- [`web-client-area`](https://bitbucket.org/xsitesinc/web-client-area): it creates the brand
5
- assets and opens the pull request(s), reproducing the manual onboarding PRs
6
- (e.g. [#4266](https://bitbucket.org/xsitesinc/web-client-area/pull-requests/4266)).
7
-
8
- Per brand it creates, under the target repo:
9
-
10
- - `src/assets/other/<folder>/<folder>.scss` — empty stylesheet
11
- - `src/assets/other/<folder>/legal/risk-disclaimer.html` — the standard disclaimer
12
-
13
- The file creation is delegated to the `onboarding-ca` command of the published
14
- [`antelope-cli`](https://www.npmjs.com/package/antelope-cli) (`npx antelope-cli@<version> onboarding-ca`);
15
- this role owns cloning, branching, committing, pushing and PR creation.
16
-
17
- ## Preconditions (control node)
18
-
19
- - `git`, Node.js (engines `^16.20.2`) and `npx` on `PATH`.
20
- - An **SSH key authorized to push** to `xsitesinc/web-client-area` (push is over SSH).
21
- - An **Atlassian API token** (`ATATT…`) for the account in `bitbucket_email`, carrying Bitbucket
22
- scopes `read:user`, `read:repository`, `read:pullrequest`, `write:pullrequest`. Used only for the
23
- REST calls (reviewer lookup + PR creation) via **HTTP Basic auth** (`email:token`) — these tokens
24
- are **not** Bearer tokens. Create at <https://id.atlassian.com/manage-profile/security/api-tokens>.
25
- Provide via `--extra-vars` / Ansible Vault, or leave it blank and let the playbook fetch it from
26
- 1Password (item `jenkins@xsites.co.il`, field `bitbucket_scoped_token`).
27
- - A **Consul token** with `read` scope on `version/*` (v2 cluster) — used to derive the destination
28
- branches from the release train. Provide via `-e consul_token=…`, `$CONSUL_HTTP_TOKEN`, or leave it
29
- blank and let the playbook fetch it from 1Password (item `New_Consul_Token`, field `password`).
30
- Not needed when you pass an explicit `dest_branches` override.
31
- - A **signed-in `op` CLI** (`op signin`, or `OP_SERVICE_ACCOUNT_TOKEN`) if you rely on the 1Password
32
- fallbacks above instead of passing the tokens explicitly.
33
- - The **`community.general`** collection (for the `dict_kv` filter): `ansible-galaxy collection install -r requirements.yml`.
34
-
35
- ## Usage
36
-
37
- Interactive (prompts for the inputs):
38
-
39
- ```bash
40
- ansible-playbook onboard-ca.yml
41
- ```
42
-
43
- Non-interactive (for CI / wrapping playbooks) — extra-vars skip the prompts. Destination
44
- branches are derived from Consul, and both tokens fall back to 1Password, so the minimal run is:
45
-
46
- ```bash
47
- ansible-playbook onboard-ca.yml \
48
- -e brand_name="Zenith Horizon Group" \
49
- -e jira_key_client_branding=ATLP-47067
50
- ```
51
-
52
- Passing the tokens explicitly (skips the 1Password lookups) and pinning the branches:
53
-
54
- ```bash
55
- ansible-playbook onboard-ca.yml \
56
- -e brand_name="Zenith Horizon Group" \
57
- -e jira_key_client_branding=ATLP-47067 \
58
- -e dest_branches=develop,master-26.9 \
59
- -e consul_token="$CONSUL_HTTP_TOKEN" \
60
- -e bitbucket_email=jenkins@xsites.co.il \
61
- -e bitbucket_token="$BITBUCKET_TOKEN"
62
- ```
63
-
64
- Note: pass token values literally (or via a shell variable as above). Do **not** prefix a raw
65
- `ATATT…` token with `$` — the shell would try to expand it as a variable and send an empty token.
66
-
67
- ## Inputs
68
-
69
- | var | required | example | notes |
70
- |-----|----------|---------------------------------------------------|-------|
71
- | `brand_name` | yes | `Zenith Horizon Group` | display name → PR title |
72
- | `jira_key_client_branding` | yes | `ATLP-47067` | PR title prefix + branch name |
73
- | `bitbucket_token` | no* | *(secret)* | Atlassian API token (`ATATT…`) for the REST calls; sent via Basic auth. *Blank ⇒ fetched from 1Password (`jenkins@xsites.co.il` / `bitbucket_scoped_token`)* |
74
- | `bitbucket_email` | yes | `jenkins@xsites.co.il` | account that owns the token (Basic-auth username); defaults to the Jenkins service account |
75
- | `dest_branches` | no | `develop,master-26.9` | comma-separated override; **blank ⇒ derived from Consul** (see below). **One PR per branch** |
76
- | `consul_token` | no* | *(secret)* | read scope on `version/*`. *Blank ⇒ `$CONSUL_HTTP_TOKEN`, else 1Password (`New_Consul_Token` / `password`)*. Unused when `dest_branches` is set |
77
- | `brand_assets_folder` | no | `zenithhorizongroup` | folder name → CLI `--brand_assets_folder`, branch name; prompted separately. Blank ⇒ derived from `brand_name` (lowercased, spaces removed) |
78
- | `reviewers` | no | *(auto)* | default: repo's Bitbucket default-reviewers (author excluded); override with `[{account_id: "..."}]` |
79
- | `consul_url` | no | `https://consul.xsites.xyz` | Consul base URL for the version lookup |
80
- | `onepassword_bitbucket_item` / `_field` | no | `jenkins@xsites.co.il` / `bitbucket_scoped_token` | 1Password source for the Bitbucket token |
81
- | `onepassword_consul_item` / `_field` | no | `New_Consul_Token` / `password` | 1Password source for the Consul token |
82
- | `antelope_cli_version` | no | `1.2.3` | pinned published CLI version |
83
- | `work_dir` | no | `/tmp/onboard-ca/web-client-area` | clone location |
84
- | `git_user_name` / `git_user_email` | no | | commit identity |
85
-
86
- ## Behavior notes
87
-
88
- - **Destination branches are derived from the release train in Consul** (unless `dest_branches`
89
- is passed). `develop` is always onboarded; `master-<version/prod>` tracks the live release; and
90
- while a new release is staged (`version/staging != version/prod`) its `master-<version/staging>`
91
- is onboarded too. Once staging has shipped (`staging == prod`) there is a single master branch.
92
- - **One PR per destination branch.** `develop` → `feature/<jira>-onboarding-<folder>`;
93
- `master-*`/`release-*` → `hotfix/<jira>-onboarding-<folder>`. Each branch is based on its own
94
- destination so diverged histories don't bleed across PRs.
95
- - **Reviewers** are read from the repo's Bitbucket *Default reviewers* config; the authenticating
96
- account is excluded (Bitbucket rejects a PR whose author is a reviewer).
97
- - **Idempotent:** re-running with the same inputs recreates the (identical) files on the existing
98
- source branch, detects no staged changes, skips commit/push, and tolerates the "PR already exists"
99
- response (HTTP 400).
100
- - The playbook prints a summary of created PRs (destination, source branch, status, URL).
101
-
102
- ## Scope
103
-
104
- Client Area only. web-crm onboarding is a separate, independent process (its file edits live in
105
- antelope-cli's existing `onboarding` command) and is not run by this playbook.
1
+ # Client Area brand onboarding (Ansible)
2
+
3
+ Automates onboarding a new client brand into
4
+ [`web-client-area`](https://bitbucket.org/xsitesinc/web-client-area): it creates the brand
5
+ assets and opens the pull request(s), reproducing the manual onboarding PRs
6
+ (e.g. [#4266](https://bitbucket.org/xsitesinc/web-client-area/pull-requests/4266)).
7
+
8
+ Per brand it creates, under the target repo:
9
+
10
+ - `src/assets/other/<folder>/<folder>.scss` — empty stylesheet
11
+ - `src/assets/other/<folder>/legal/risk-disclaimer.html` — the standard disclaimer
12
+
13
+ The file creation is delegated to the `onboarding-ca` command of the published
14
+ [`antelope-cli`](https://www.npmjs.com/package/antelope-cli) (`npx antelope-cli@<version> onboarding-ca`);
15
+ this role owns cloning, branching, committing, pushing and PR creation.
16
+
17
+ ## Preconditions (control node)
18
+
19
+ - `git`, Node.js (engines `^16.20.2`) and `npx` on `PATH`.
20
+ - An **SSH key authorized to push** to `xsitesinc/web-client-area` (push is over SSH).
21
+ - An **Atlassian API token** (`ATATT…`) for the account in `bitbucket_email`, carrying Bitbucket
22
+ scopes `read:user`, `read:repository`, `read:pullrequest`, `write:pullrequest`. Used only for the
23
+ REST calls (reviewer lookup + PR creation) via **HTTP Basic auth** (`email:token`) — these tokens
24
+ are **not** Bearer tokens. Create at <https://id.atlassian.com/manage-profile/security/api-tokens>.
25
+ Provide via `--extra-vars` / Ansible Vault, or leave it blank and let the playbook fetch it from
26
+ 1Password (item `jenkins@xsites.co.il`, field `bitbucket_scoped_token`).
27
+ - A **Consul token** with `read` scope on `version/*` (v2 cluster) — used to derive the destination
28
+ branches from the release train. Provide via `-e consul_token=…`, `$CONSUL_HTTP_TOKEN`, or leave it
29
+ blank and let the playbook fetch it from 1Password (item `New_Consul_Token`, field `password`).
30
+ Not needed when you pass an explicit `dest_branches` override.
31
+ - A **signed-in `op` CLI** (`op signin`, or `OP_SERVICE_ACCOUNT_TOKEN`) if you rely on the 1Password
32
+ fallbacks above instead of passing the tokens explicitly.
33
+ - The **`community.general`** collection (for the `dict_kv` filter): `ansible-galaxy collection install -r requirements.yml`.
34
+
35
+ ## Usage
36
+
37
+ Interactive (prompts for the inputs):
38
+
39
+ ```bash
40
+ ansible-playbook onboard-ca.yml
41
+ ```
42
+
43
+ Non-interactive (for CI / wrapping playbooks) — extra-vars skip the prompts. Destination
44
+ branches are derived from Consul, and both tokens fall back to 1Password, so the minimal run is:
45
+
46
+ ```bash
47
+ ansible-playbook onboard-ca.yml \
48
+ -e brand_name="Zenith Horizon Group" \
49
+ -e jira_key_client_branding=ATLP-47067
50
+ ```
51
+
52
+ Passing the tokens explicitly (skips the 1Password lookups) and pinning the branches:
53
+
54
+ ```bash
55
+ ansible-playbook onboard-ca.yml \
56
+ -e brand_name="Zenith Horizon Group" \
57
+ -e jira_key_client_branding=ATLP-47067 \
58
+ -e dest_branches=develop,master-26.9 \
59
+ -e consul_token="$CONSUL_HTTP_TOKEN" \
60
+ -e bitbucket_email=jenkins@xsites.co.il \
61
+ -e bitbucket_token="$BITBUCKET_TOKEN"
62
+ ```
63
+
64
+ Note: pass token values literally (or via a shell variable as above). Do **not** prefix a raw
65
+ `ATATT…` token with `$` — the shell would try to expand it as a variable and send an empty token.
66
+
67
+ ## Inputs
68
+
69
+ | var | required | example | notes |
70
+ |-----|----------|---------------------------------------------------|-------|
71
+ | `brand_name` | yes | `Zenith Horizon Group` | display name → PR title |
72
+ | `jira_key_client_branding` | yes | `ATLP-47067` | PR title prefix + branch name |
73
+ | `bitbucket_token` | no* | *(secret)* | Atlassian API token (`ATATT…`) for the REST calls; sent via Basic auth. *Blank ⇒ fetched from 1Password (`jenkins@xsites.co.il` / `bitbucket_scoped_token`)* |
74
+ | `bitbucket_email` | yes | `jenkins@xsites.co.il` | account that owns the token (Basic-auth username); defaults to the Jenkins service account |
75
+ | `dest_branches` | no | `develop,master-26.9` | comma-separated override; **blank ⇒ derived from Consul** (see below). **One PR per branch** |
76
+ | `consul_token` | no* | *(secret)* | read scope on `version/*`. *Blank ⇒ `$CONSUL_HTTP_TOKEN`, else 1Password (`New_Consul_Token` / `password`)*. Unused when `dest_branches` is set |
77
+ | `brand_assets_folder` | no | `zenithhorizongroup` | folder name → CLI `--brand_assets_folder`, branch name; prompted separately. Blank ⇒ derived from `brand_name` (lowercased, spaces removed) |
78
+ | `reviewers` | no | *(auto)* | default: repo's Bitbucket default-reviewers (author excluded); override with `[{account_id: "..."}]` |
79
+ | `consul_url` | no | `https://consul.xsites.xyz` | Consul base URL for the version lookup |
80
+ | `onepassword_bitbucket_item` / `_field` | no | `jenkins@xsites.co.il` / `bitbucket_scoped_token` | 1Password source for the Bitbucket token |
81
+ | `onepassword_consul_item` / `_field` | no | `New_Consul_Token` / `password` | 1Password source for the Consul token |
82
+ | `antelope_cli_version` | no | `1.2.3` | pinned published CLI version |
83
+ | `work_dir` | no | `/tmp/onboard-ca/web-client-area` | clone location |
84
+ | `git_user_name` / `git_user_email` | no | | commit identity |
85
+
86
+ ## Behavior notes
87
+
88
+ - **Destination branches are derived from the release train in Consul** (unless `dest_branches`
89
+ is passed). `develop` is always onboarded; `master-<version/prod>` tracks the live release; and
90
+ while a new release is staged (`version/staging != version/prod`) its `master-<version/staging>`
91
+ is onboarded too. Once staging has shipped (`staging == prod`) there is a single master branch.
92
+ - **One PR per destination branch.** `develop` → `feature/<jira>-onboarding-<folder>`;
93
+ `master-*`/`release-*` → `hotfix/<jira>-onboarding-<folder>`. Each branch is based on its own
94
+ destination so diverged histories don't bleed across PRs.
95
+ - **Reviewers** are read from the repo's Bitbucket *Default reviewers* config; the authenticating
96
+ account is excluded (Bitbucket rejects a PR whose author is a reviewer).
97
+ - **Idempotent:** re-running with the same inputs recreates the (identical) files on the existing
98
+ source branch, detects no staged changes, skips commit/push, and tolerates the "PR already exists"
99
+ response (HTTP 400).
100
+ - The playbook prints a summary of created PRs (destination, source branch, status, URL).
101
+
102
+ ## Scope
103
+
104
+ Client Area only. web-crm onboarding is a separate, independent process (its file edits live in
105
+ antelope-cli's existing `onboarding` command) and is not run by this playbook.
@@ -1,51 +1,43 @@
1
- ---
2
- # Onboard a Client Area brand into web-client-area and open the PR(s).
3
- #
4
- # Destination branches are derived from the release train in Consul (no manual input):
5
- # develop is always onboarded; master-<version/prod> tracks the live release; while a
6
- # new release is staged (version/staging != version/prod) its master-<version/staging>
7
- # exists too and is onboarded as well. Pass -e dest_branches=... to override the lookup.
8
- #
9
- # Interactive:
10
- # ansible-playbook onboard-ca.yml
11
- #
12
- # Non-interactive (e.g. from another playbook / CI), pass everything as extra-vars:
13
- # ansible-playbook onboard-ca.yml \
14
- # -e brand_name="Eldadtestbrand" \
15
- # -e brand_assets_folder=eldadtestbrand \
16
- # -e jira_key_client_branding=ATLP-47067 \
17
- # -e consul_token="$CONSUL_HTTP_TOKEN" \ # read scope on version/*; used to derive dest branches
18
- # -e bitbucket_email=jenkins@xsites.co.il \
19
- # -e bitbucket_token=ATATT3x... # Atlassian API token WITHOUT a leading '$' (it is a literal, not a shell var)
20
-
21
- # Preconditions on the control node: git + Node (>=16) + npx, an SSH key authorized to
22
- # push to xsitesinc/web-client-area, and an Atlassian API token (ATATT…) owned by
23
- # bitbucket_email, carrying Bitbucket scopes read:user / read:repository /
24
- # read+write:pullrequest. The token is used via HTTP Basic auth (email:token).
25
- - name: Onboard a Client Area brand (web-client-area)
26
- hosts: localhost
27
- connection: local
28
- gather_facts: false
29
-
30
- vars_prompt:
31
- - name: brand_name
32
- prompt: "Brand display name used in the PR title (e.g. Zenith Horizon Group)"
33
- private: false
34
- - name: brand_assets_folder
35
- prompt: "Brand assets folder name — the src/assets/other/<folder> (e.g. zenithhorizongroup); leave blank to derive from the display name"
36
- default: ""
37
- private: false
38
- - name: jira_key_client_branding
39
- prompt: "Jira key (e.g. ATLP-47067)"
40
- private: false
41
- - name: bitbucket_email
42
- prompt: "Atlassian account email that owns the API token (Basic-auth username)"
43
- default: "jenkins@xsites.co.il"
44
- private: false
45
- - name: bitbucket_token
46
- prompt: "Atlassian API token (ATATT…); leave blank to fetch from 1Password (item jenkins@xsites.co.il)"
47
- default: ""
48
- private: true
49
-
50
- roles:
51
- - onboard_ca
1
+ ---
2
+ # Onboard a Client Area brand into web-client-area and open the PR(s).
3
+ #
4
+ # Destination branches are derived from the release train in Consul (no manual input):
5
+ # develop is always onboarded; master-<version/prod> tracks the live release; while a
6
+ # new release is staged (version/staging != version/prod) its master-<version/staging>
7
+ # exists too and is onboarded as well. Pass -e dest_branches=... to override the lookup.
8
+ #
9
+ # Interactive:
10
+ # ansible-playbook onboard-ca.yml
11
+ #
12
+ # Non-interactive (e.g. from another playbook / CI), pass everything as extra-vars:
13
+ # ansible-playbook onboard-ca.yml \
14
+ # -e brand_name="Eldadtestbrand" \
15
+ # -e brand_assets_folder=eldadtestbrand \
16
+ # -e jira_key_client_branding=ATLP-47067 \
17
+ # -e consul_token="$CONSUL_HTTP_TOKEN" \ # read scope on version/*; used to derive dest branches
18
+ # -e bitbucket_email=jenkins@xsites.co.il \
19
+ # -e bitbucket_token=ATATT3x... # Atlassian API token WITHOUT a leading '$' (it is a literal, not a shell var)
20
+
21
+ # Preconditions on the control node: git + Node (>=16) + npx, an SSH key authorized to
22
+ # push to xsitesinc/web-client-area, and an Atlassian API token (ATATT…) owned by
23
+ # bitbucket_email, carrying Bitbucket scopes read:user / read:repository /
24
+ # read+write:pullrequest. The token is used via HTTP Basic auth (email:token).
25
+ - name: Onboard a Client Area brand (web-client-area)
26
+ hosts: localhost
27
+ connection: local
28
+ gather_facts: false
29
+
30
+ # Only the required, non-defaulted inputs are prompted. Everything else comes from role
31
+ # defaults (brand_assets_folder derived from brand_name; bitbucket_email = jenkins service
32
+ # account; bitbucket_token / consul_token / jira_token from 1Password). Override any of
33
+ # them with -e. Pass -e brand_name=… -e jira_key_client_branding=… for a non-interactive run.
34
+ vars_prompt:
35
+ - name: brand_name
36
+ prompt: "Brand display name — used in the PR title (e.g. Zenith Horizon Group)"
37
+ private: false
38
+ - name: jira_key_client_branding
39
+ prompt: "Jira key (e.g. ATLP-47067)"
40
+ private: false
41
+
42
+ roles:
43
+ - onboard_ca
@@ -1,8 +1,8 @@
1
- ---
2
- # Ansible collection dependencies for the onboarding-ca playbook.
3
- # Install with: ansible-galaxy collection install -r requirements.yml
4
- collections:
5
- # Provides the community.general.dict_kv filter used to build the Bitbucket
6
- # reviewers array (roles/onboard_ca/tasks/main.yml).
7
- - name: community.general
8
- version: ">=8.0.0"
1
+ ---
2
+ # Ansible collection dependencies for the onboarding-ca playbook.
3
+ # Install with: ansible-galaxy collection install -r requirements.yml
4
+ collections:
5
+ # Provides the community.general.dict_kv filter used to build the Bitbucket
6
+ # reviewers array (roles/onboard_ca/tasks/main.yml).
7
+ - name: community.general
8
+ version: ">=8.0.0"
@@ -1,49 +1,77 @@
1
- ---
2
- # Pinned published antelope-cli version that provides the `onboarding-ca` command.
3
- antelope_cli_version: "1.2.3"
4
-
5
- # Where web-client-area is cloned on the control node.
6
- work_dir: "/tmp/onboard-ca/web-client-area"
7
-
8
- # Brand assets folder name (used for ENV_branding.brand_assets_folder and the src/assets/other/<folder>).
9
- # Empty => derived from brand_name (lowercased, spaces removed), matching antelope-cli's
10
- # connectedBrandName so the folder name is identical across repos.
11
- brand_assets_folder: ""
12
-
13
- # Reviewers for the PR. Empty => auto-fetched from the repo's Bitbucket "Default reviewers"
14
- # config (the authenticating account is excluded automatically). Override with an explicit
15
- # list, e.g. [{ account_id: "..." }] or [{ uuid: "{...}" }], to bypass the lookup.
16
- reviewers: []
17
-
18
- # Identity used for the commit (control-node git may have no global config).
19
- git_user_name: "Jenkins"
20
- git_user_email: "jenkins@xsites.co.il"
21
-
22
- # Atlassian API token (ATATT…) for the reviewer lookup + PR creation. Sent via HTTP
23
- # Basic auth together with bitbucket_email — these tokens are NOT Bearer tokens and
24
- # must carry Bitbucket scopes (read:user, read:repository, read/write:pullrequest).
25
- # Empty => fetched from 1Password (see onepassword_bitbucket_* below). Provide via
26
- # --extra-vars or Ansible Vault to skip the lookup; never commit a real value.
27
- bitbucket_token: ""
28
-
29
- # Email of the Atlassian account that owns bitbucket_token (the Basic-auth username).
30
- # Defaults to the Jenkins service account; override via --extra-vars for a different account.
31
- bitbucket_email: "jenkins@xsites.co.il"
32
-
33
- # Consul token with read scope on version/* (v2 cluster). Used to derive the destination
34
- # branches from the release train (version/prod, version/staging). Empty => resolved from
35
- # $CONSUL_HTTP_TOKEN, else from 1Password (see onepassword_consul_* below). Not needed when
36
- # an explicit dest_branches override is passed. Never commit a real value.
37
- consul_token: ""
38
-
39
- # Explicit destination-branch override (comma-separated). Empty => derived from Consul:
40
- # develop + master-<version/prod> [+ master-<version/staging> while a release is staged].
41
- # Set this to bypass the Consul lookup entirely, e.g. dest_branches=develop,master-26.9.
42
- dest_branches: ""
43
-
44
- # 1Password fallbacks — used only when the corresponding token is not otherwise provided.
45
- # Require a signed-in `op` CLI on the control node (op signin, or OP_SERVICE_ACCOUNT_TOKEN).
46
- onepassword_bitbucket_item: "jenkins@xsites.co.il"
47
- onepassword_bitbucket_field: "bitbucket_scoped_token"
48
- onepassword_consul_item: "New_Consul_Token"
49
- onepassword_consul_field: "password"
1
+ ---
2
+ # Pinned published antelope-cli version that provides the `onboarding-ca` command.
3
+ antelope_cli_version: "1.2.3"
4
+
5
+ # Where web-client-area is cloned on the control node.
6
+ work_dir: "/tmp/onboard-ca/web-client-area"
7
+
8
+ # Brand assets folder name (used for ENV_branding.brand_assets_folder and the src/assets/other/<folder>).
9
+ # Empty => derived from brand_name (lowercased, spaces removed), matching antelope-cli's
10
+ # connectedBrandName so the folder name is identical across repos.
11
+ brand_assets_folder: ""
12
+
13
+ # Reviewers for the PR. Empty => auto-fetched from the repo's Bitbucket "Default reviewers"
14
+ # config (the authenticating account is excluded automatically). Override with an explicit
15
+ # list, e.g. [{ account_id: "..." }] or [{ uuid: "{...}" }], to bypass the lookup.
16
+ reviewers: []
17
+
18
+ # Identity used for the commit (control-node git may have no global config).
19
+ git_user_name: "Jenkins"
20
+ git_user_email: "jenkins@xsites.co.il"
21
+
22
+ # Atlassian API token (ATATT…) for the reviewer lookup + PR creation. Sent via HTTP
23
+ # Basic auth together with bitbucket_email — these tokens are NOT Bearer tokens and
24
+ # must carry Bitbucket scopes (read:user, read:repository, read/write:pullrequest).
25
+ # Empty => fetched from 1Password (see onepassword_bitbucket_* below). Provide via
26
+ # --extra-vars or Ansible Vault to skip the lookup; never commit a real value.
27
+ bitbucket_token: ""
28
+
29
+ # Email of the Atlassian account that owns bitbucket_token (the Basic-auth username).
30
+ # Defaults to the Jenkins service account; override via --extra-vars for a different account.
31
+ bitbucket_email: "jenkins@xsites.co.il"
32
+
33
+ # Consul token with read scope on version/* (v2 cluster). Used to derive the destination
34
+ # branches from the release train (version/prod, version/staging). Empty => resolved from
35
+ # $CONSUL_HTTP_TOKEN, else from 1Password (see onepassword_consul_* below). Not needed when
36
+ # an explicit dest_branches override is passed. Never commit a real value.
37
+ consul_token: ""
38
+
39
+ # Explicit destination-branch override (comma-separated). Empty => derived from Consul:
40
+ # develop + master-<version/prod> [+ master-<version/staging> while a release is staged].
41
+ # Set this to bypass the Consul lookup entirely, e.g. dest_branches=develop,master-26.9.
42
+ dest_branches: ""
43
+
44
+ # 1Password fallbacks — used only when the corresponding token is not otherwise provided.
45
+ # Require a signed-in `op` CLI on the control node (op signin, or OP_SERVICE_ACCOUNT_TOKEN).
46
+ # Service-account auth requires an explicit vault for `op item get` by name (op errors
47
+ # with "a vault query must be provided" otherwise) — the items live in the DevOps vault.
48
+ onepassword_vault: "DevOps"
49
+ onepassword_bitbucket_item: "Bitbucket API - jenkins@xsites.co.il"
50
+ onepassword_bitbucket_field: "credential"
51
+ onepassword_consul_item: "New_Consul_Token"
52
+ onepassword_consul_field: "password"
53
+
54
+ # --- Jira automation (DangerJS Fix Version gate) -------------------------------------
55
+ # The web-client-area DangerJS pipeline FAILS any PR whose linked Jira issue has no Fix
56
+ # Version ("ATLP-XXXXX doesn't have a fix version") — develop feature branches included,
57
+ # not only hotfix→master. This step stamps the release Fix Version on
58
+ # jira_key_client_branding BEFORE the branches are pushed (so the pipeline is green on its
59
+ # first run). Non-fatal: a missing jira_token / unmatched version just warns and skips.
60
+ manage_jira_fix_version: true
61
+ jira_base_url: "https://xsites.atlassian.net"
62
+ # Project key — defaults to the prefix of the Jira key (ATLP-47269 -> ATLP).
63
+ jira_project_key: "{{ (jira_key_client_branding | default('')).split('-')[0] }}"
64
+ # Release version name = jira_version_prefix + <version/prod> (e.g. 27.0 -> V27.0).
65
+ jira_version_prefix: "V"
66
+ # Atlassian API token (ATATT) that carries JIRA scopes + the email that owns it (Basic
67
+ # auth). This is SEPARATE from bitbucket_token, which is Bitbucket-scoped only. Empty =>
68
+ # fetched from 1Password (onepassword_jira_* below). Override via --extra-vars in CI.
69
+ jira_token: ""
70
+ # NOTE: jira_email must own jira_token (Atlassian Basic auth = email:token). jenkins@xsites.co.il
71
+ # now has a Jira seat (2026-07-16) with BROWSE_PROJECTS + EDIT_ISSUES on ATLP; its token is a
72
+ # CLASSIC (unscoped) Atlassian API token stored in the DevOps note 'Jira API - jenkins@xsites.co.il'
73
+ # (field credential). Verified /myself 200 + fixVersions add. NB scoped tokens 401 on Jira REST —
74
+ # must be the classic unscoped kind. (eldadp personal my_attlasian_token still works as a fallback.)
75
+ jira_email: "jenkins@xsites.co.il"
76
+ onepassword_jira_item: "Jira API - jenkins@xsites.co.il"
77
+ onepassword_jira_field: "credential"
@@ -1,10 +1,10 @@
1
- ---
2
- galaxy_info:
3
- role_name: onboard_ca
4
- author: Antelope Systems
5
- description: >-
6
- Onboard a Client Area brand: create the brand assets in web-client-area
7
- (via antelope-cli onboarding-ca) and open the pull request(s).
8
- license: ISC
9
- min_ansible_version: "2.12"
10
- dependencies: []
1
+ ---
2
+ galaxy_info:
3
+ role_name: onboard_ca
4
+ author: Antelope Systems
5
+ description: >-
6
+ Onboard a Client Area brand: create the brand assets in web-client-area
7
+ (via antelope-cli onboarding-ca) and open the pull request(s).
8
+ license: ISC
9
+ min_ansible_version: "2.12"
10
+ dependencies: []