@codyswann/lisa 2.176.11 → 2.176.12
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/dist/codex/scripts/setup-jira-cli.sh +34 -0
- package/dist/opencode/plugin-templates/lisa-session-bootstrap.ts +34 -4
- package/package.json +1 -1
- package/plugins/lisa/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa/hooks/setup-jira-cli.sh +36 -2
- package/plugins/lisa-agy/plugin.json +1 -1
- package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk-agy/plugin.json +1 -1
- package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-copilot/hooks/setup-jira-cli.sh +36 -2
- package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cursor/hooks/setup-jira-cli.sh +36 -2
- package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-agy/plugin.json +1 -1
- package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs-agy/plugin.json +1 -1
- package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-agy/plugin.json +1 -1
- package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser-agy/plugin.json +1 -1
- package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-rails-agy/plugin.json +1 -1
- package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript-agy/plugin.json +1 -1
- package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-agy/plugin.json +1 -1
- package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/src/base/hooks/setup-jira-cli.sh +36 -2
|
@@ -3,6 +3,40 @@
|
|
|
3
3
|
# Writes jira-cli configuration from environment variables when available.
|
|
4
4
|
set -euo pipefail
|
|
5
5
|
|
|
6
|
+
read_lisa_config() {
|
|
7
|
+
local query="$1"
|
|
8
|
+
local value=""
|
|
9
|
+
|
|
10
|
+
if ! command -v jq &>/dev/null; then
|
|
11
|
+
return 0
|
|
12
|
+
fi
|
|
13
|
+
|
|
14
|
+
if [[ -f ".lisa.config.local.json" ]]; then
|
|
15
|
+
value=$(jq -r "${query} // empty" .lisa.config.local.json 2>/dev/null || true)
|
|
16
|
+
fi
|
|
17
|
+
|
|
18
|
+
if [[ -z "${value}" && -f ".lisa.config.json" ]]; then
|
|
19
|
+
value=$(jq -r "${query} // empty" .lisa.config.json 2>/dev/null || true)
|
|
20
|
+
fi
|
|
21
|
+
|
|
22
|
+
printf '%s' "${value}"
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
if [[ -z "${JIRA_SERVER:-}" ]]; then
|
|
26
|
+
ATLASSIAN_SITE="$(read_lisa_config '.atlassian.site')"
|
|
27
|
+
if [[ -n "${ATLASSIAN_SITE}" ]]; then
|
|
28
|
+
if [[ "${ATLASSIAN_SITE}" == http://* || "${ATLASSIAN_SITE}" == https://* ]]; then
|
|
29
|
+
JIRA_SERVER="${ATLASSIAN_SITE}"
|
|
30
|
+
else
|
|
31
|
+
JIRA_SERVER="https://${ATLASSIAN_SITE}"
|
|
32
|
+
fi
|
|
33
|
+
fi
|
|
34
|
+
fi
|
|
35
|
+
|
|
36
|
+
if [[ -z "${JIRA_PROJECT:-}" ]]; then
|
|
37
|
+
JIRA_PROJECT="$(read_lisa_config '.jira.project')"
|
|
38
|
+
fi
|
|
39
|
+
|
|
6
40
|
if [[ -z "${JIRA_SERVER:-}" || -z "${JIRA_LOGIN:-}" ]]; then
|
|
7
41
|
exit 0
|
|
8
42
|
fi
|
|
@@ -23,7 +23,8 @@ export const LisaSessionBootstrap = async ({
|
|
|
23
23
|
worktree: string;
|
|
24
24
|
}) => {
|
|
25
25
|
const root = worktree;
|
|
26
|
-
const { existsSync, mkdirSync, writeFileSync } =
|
|
26
|
+
const { existsSync, mkdirSync, readFileSync, writeFileSync } =
|
|
27
|
+
await import("node:fs");
|
|
27
28
|
|
|
28
29
|
// install-pkgs: bootstrap dependencies when they're missing.
|
|
29
30
|
try {
|
|
@@ -46,9 +47,38 @@ export const LisaSessionBootstrap = async ({
|
|
|
46
47
|
// fail open — never block startup on a dependency-install error
|
|
47
48
|
}
|
|
48
49
|
|
|
49
|
-
// setup-jira-cli: write jira-cli config from environment variables.
|
|
50
|
+
// setup-jira-cli: write jira-cli config from environment variables and non-secret Lisa config.
|
|
50
51
|
try {
|
|
51
|
-
const
|
|
52
|
+
const readLisaConfig = (path: string[]) => {
|
|
53
|
+
for (const file of [".lisa.config.local.json", ".lisa.config.json"]) {
|
|
54
|
+
const configPath = `${root}/${file}`;
|
|
55
|
+
if (!existsSync(configPath)) continue;
|
|
56
|
+
try {
|
|
57
|
+
let value: unknown = JSON.parse(readFileSync(configPath, "utf8"));
|
|
58
|
+
for (const key of path) {
|
|
59
|
+
if (!value || typeof value !== "object" || !(key in value)) {
|
|
60
|
+
value = undefined;
|
|
61
|
+
break;
|
|
62
|
+
}
|
|
63
|
+
value = (value as Record<string, unknown>)[key];
|
|
64
|
+
}
|
|
65
|
+
if (typeof value === "string" && value) return value;
|
|
66
|
+
} catch {
|
|
67
|
+
// ignore malformed local config and keep fail-open behavior
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
return undefined;
|
|
71
|
+
};
|
|
72
|
+
const atlassianSite = readLisaConfig(["atlassian", "site"]);
|
|
73
|
+
const server =
|
|
74
|
+
process.env.JIRA_SERVER ??
|
|
75
|
+
(/^https?:\/\//.test(atlassianSite ?? "")
|
|
76
|
+
? atlassianSite
|
|
77
|
+
: atlassianSite
|
|
78
|
+
? `https://${atlassianSite}`
|
|
79
|
+
: undefined);
|
|
80
|
+
const project =
|
|
81
|
+
process.env.JIRA_PROJECT ?? readLisaConfig(["jira", "project"]) ?? "";
|
|
52
82
|
const login = process.env.JIRA_LOGIN;
|
|
53
83
|
const home = process.env.HOME;
|
|
54
84
|
if (server && login && home) {
|
|
@@ -58,7 +88,7 @@ export const LisaSessionBootstrap = async ({
|
|
|
58
88
|
`installation: ${process.env.JIRA_INSTALLATION ?? "cloud"}`,
|
|
59
89
|
`server: ${server}`,
|
|
60
90
|
`login: ${login}`,
|
|
61
|
-
`project: ${
|
|
91
|
+
`project: ${project}`,
|
|
62
92
|
`board: "${process.env.JIRA_BOARD ?? ""}"`,
|
|
63
93
|
"auth_type: basic",
|
|
64
94
|
"epic:",
|
package/package.json
CHANGED
|
@@ -91,7 +91,7 @@
|
|
|
91
91
|
"ws": ">=8.20.1"
|
|
92
92
|
},
|
|
93
93
|
"name": "@codyswann/lisa",
|
|
94
|
-
"version": "2.176.
|
|
94
|
+
"version": "2.176.12",
|
|
95
95
|
"description": "Claude Code governance framework that applies guardrails, guidance, and automated enforcement to projects",
|
|
96
96
|
"main": "dist/index.js",
|
|
97
97
|
"exports": {
|
|
@@ -5,9 +5,9 @@
|
|
|
5
5
|
#
|
|
6
6
|
# Required env vars (must be created in your Claude Code Web environment):
|
|
7
7
|
# JIRA_INSTALLATION - cloud or local
|
|
8
|
-
# JIRA_SERVER - Atlassian instance URL
|
|
8
|
+
# JIRA_SERVER - Atlassian instance URL (falls back to .lisa.config*.json atlassian.site)
|
|
9
9
|
# JIRA_LOGIN - login email
|
|
10
|
-
# JIRA_PROJECT - default project key
|
|
10
|
+
# JIRA_PROJECT - default project key (falls back to .lisa.config*.json jira.project)
|
|
11
11
|
# JIRA_API_TOKEN - already expected by jira-cli natively
|
|
12
12
|
#
|
|
13
13
|
# Optional env vars:
|
|
@@ -31,6 +31,40 @@ fi
|
|
|
31
31
|
CONFIG_DIR="${HOME}/.config/.jira"
|
|
32
32
|
CONFIG_FILE="${CONFIG_DIR}/.config.yml"
|
|
33
33
|
|
|
34
|
+
read_lisa_config() {
|
|
35
|
+
local query="$1"
|
|
36
|
+
local value=""
|
|
37
|
+
|
|
38
|
+
if ! command -v jq &>/dev/null; then
|
|
39
|
+
return 0
|
|
40
|
+
fi
|
|
41
|
+
|
|
42
|
+
if [[ -f ".lisa.config.local.json" ]]; then
|
|
43
|
+
value=$(jq -r "${query} // empty" .lisa.config.local.json 2>/dev/null || true)
|
|
44
|
+
fi
|
|
45
|
+
|
|
46
|
+
if [[ -z "${value}" && -f ".lisa.config.json" ]]; then
|
|
47
|
+
value=$(jq -r "${query} // empty" .lisa.config.json 2>/dev/null || true)
|
|
48
|
+
fi
|
|
49
|
+
|
|
50
|
+
printf '%s' "${value}"
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
if [[ -z "${JIRA_SERVER:-}" ]]; then
|
|
54
|
+
ATLASSIAN_SITE="$(read_lisa_config '.atlassian.site')"
|
|
55
|
+
if [[ -n "${ATLASSIAN_SITE}" ]]; then
|
|
56
|
+
if [[ "${ATLASSIAN_SITE}" == http://* || "${ATLASSIAN_SITE}" == https://* ]]; then
|
|
57
|
+
JIRA_SERVER="${ATLASSIAN_SITE}"
|
|
58
|
+
else
|
|
59
|
+
JIRA_SERVER="https://${ATLASSIAN_SITE}"
|
|
60
|
+
fi
|
|
61
|
+
fi
|
|
62
|
+
fi
|
|
63
|
+
|
|
64
|
+
if [[ -z "${JIRA_PROJECT:-}" ]]; then
|
|
65
|
+
JIRA_PROJECT="$(read_lisa_config '.jira.project')"
|
|
66
|
+
fi
|
|
67
|
+
|
|
34
68
|
# Skip config write if required vars are missing
|
|
35
69
|
if [[ -z "${JIRA_SERVER:-}" || -z "${JIRA_LOGIN:-}" ]]; then
|
|
36
70
|
exit 0
|
|
@@ -5,9 +5,9 @@
|
|
|
5
5
|
#
|
|
6
6
|
# Required env vars (must be created in your Claude Code Web environment):
|
|
7
7
|
# JIRA_INSTALLATION - cloud or local
|
|
8
|
-
# JIRA_SERVER - Atlassian instance URL
|
|
8
|
+
# JIRA_SERVER - Atlassian instance URL (falls back to .lisa.config*.json atlassian.site)
|
|
9
9
|
# JIRA_LOGIN - login email
|
|
10
|
-
# JIRA_PROJECT - default project key
|
|
10
|
+
# JIRA_PROJECT - default project key (falls back to .lisa.config*.json jira.project)
|
|
11
11
|
# JIRA_API_TOKEN - already expected by jira-cli natively
|
|
12
12
|
#
|
|
13
13
|
# Optional env vars:
|
|
@@ -31,6 +31,40 @@ fi
|
|
|
31
31
|
CONFIG_DIR="${HOME}/.config/.jira"
|
|
32
32
|
CONFIG_FILE="${CONFIG_DIR}/.config.yml"
|
|
33
33
|
|
|
34
|
+
read_lisa_config() {
|
|
35
|
+
local query="$1"
|
|
36
|
+
local value=""
|
|
37
|
+
|
|
38
|
+
if ! command -v jq &>/dev/null; then
|
|
39
|
+
return 0
|
|
40
|
+
fi
|
|
41
|
+
|
|
42
|
+
if [[ -f ".lisa.config.local.json" ]]; then
|
|
43
|
+
value=$(jq -r "${query} // empty" .lisa.config.local.json 2>/dev/null || true)
|
|
44
|
+
fi
|
|
45
|
+
|
|
46
|
+
if [[ -z "${value}" && -f ".lisa.config.json" ]]; then
|
|
47
|
+
value=$(jq -r "${query} // empty" .lisa.config.json 2>/dev/null || true)
|
|
48
|
+
fi
|
|
49
|
+
|
|
50
|
+
printf '%s' "${value}"
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
if [[ -z "${JIRA_SERVER:-}" ]]; then
|
|
54
|
+
ATLASSIAN_SITE="$(read_lisa_config '.atlassian.site')"
|
|
55
|
+
if [[ -n "${ATLASSIAN_SITE}" ]]; then
|
|
56
|
+
if [[ "${ATLASSIAN_SITE}" == http://* || "${ATLASSIAN_SITE}" == https://* ]]; then
|
|
57
|
+
JIRA_SERVER="${ATLASSIAN_SITE}"
|
|
58
|
+
else
|
|
59
|
+
JIRA_SERVER="https://${ATLASSIAN_SITE}"
|
|
60
|
+
fi
|
|
61
|
+
fi
|
|
62
|
+
fi
|
|
63
|
+
|
|
64
|
+
if [[ -z "${JIRA_PROJECT:-}" ]]; then
|
|
65
|
+
JIRA_PROJECT="$(read_lisa_config '.jira.project')"
|
|
66
|
+
fi
|
|
67
|
+
|
|
34
68
|
# Skip config write if required vars are missing
|
|
35
69
|
if [[ -z "${JIRA_SERVER:-}" || -z "${JIRA_LOGIN:-}" ]]; then
|
|
36
70
|
exit 0
|
|
@@ -5,9 +5,9 @@
|
|
|
5
5
|
#
|
|
6
6
|
# Required env vars (must be created in your Claude Code Web environment):
|
|
7
7
|
# JIRA_INSTALLATION - cloud or local
|
|
8
|
-
# JIRA_SERVER - Atlassian instance URL
|
|
8
|
+
# JIRA_SERVER - Atlassian instance URL (falls back to .lisa.config*.json atlassian.site)
|
|
9
9
|
# JIRA_LOGIN - login email
|
|
10
|
-
# JIRA_PROJECT - default project key
|
|
10
|
+
# JIRA_PROJECT - default project key (falls back to .lisa.config*.json jira.project)
|
|
11
11
|
# JIRA_API_TOKEN - already expected by jira-cli natively
|
|
12
12
|
#
|
|
13
13
|
# Optional env vars:
|
|
@@ -31,6 +31,40 @@ fi
|
|
|
31
31
|
CONFIG_DIR="${HOME}/.config/.jira"
|
|
32
32
|
CONFIG_FILE="${CONFIG_DIR}/.config.yml"
|
|
33
33
|
|
|
34
|
+
read_lisa_config() {
|
|
35
|
+
local query="$1"
|
|
36
|
+
local value=""
|
|
37
|
+
|
|
38
|
+
if ! command -v jq &>/dev/null; then
|
|
39
|
+
return 0
|
|
40
|
+
fi
|
|
41
|
+
|
|
42
|
+
if [[ -f ".lisa.config.local.json" ]]; then
|
|
43
|
+
value=$(jq -r "${query} // empty" .lisa.config.local.json 2>/dev/null || true)
|
|
44
|
+
fi
|
|
45
|
+
|
|
46
|
+
if [[ -z "${value}" && -f ".lisa.config.json" ]]; then
|
|
47
|
+
value=$(jq -r "${query} // empty" .lisa.config.json 2>/dev/null || true)
|
|
48
|
+
fi
|
|
49
|
+
|
|
50
|
+
printf '%s' "${value}"
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
if [[ -z "${JIRA_SERVER:-}" ]]; then
|
|
54
|
+
ATLASSIAN_SITE="$(read_lisa_config '.atlassian.site')"
|
|
55
|
+
if [[ -n "${ATLASSIAN_SITE}" ]]; then
|
|
56
|
+
if [[ "${ATLASSIAN_SITE}" == http://* || "${ATLASSIAN_SITE}" == https://* ]]; then
|
|
57
|
+
JIRA_SERVER="${ATLASSIAN_SITE}"
|
|
58
|
+
else
|
|
59
|
+
JIRA_SERVER="https://${ATLASSIAN_SITE}"
|
|
60
|
+
fi
|
|
61
|
+
fi
|
|
62
|
+
fi
|
|
63
|
+
|
|
64
|
+
if [[ -z "${JIRA_PROJECT:-}" ]]; then
|
|
65
|
+
JIRA_PROJECT="$(read_lisa_config '.jira.project')"
|
|
66
|
+
fi
|
|
67
|
+
|
|
34
68
|
# Skip config write if required vars are missing
|
|
35
69
|
if [[ -z "${JIRA_SERVER:-}" || -z "${JIRA_LOGIN:-}" ]]; then
|
|
36
70
|
exit 0
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-openclaw",
|
|
3
|
-
"version": "2.176.
|
|
3
|
+
"version": "2.176.12",
|
|
4
4
|
"description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, for Claude Code and Codex",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cody Swann"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-openclaw",
|
|
3
|
-
"version": "2.176.
|
|
3
|
+
"version": "2.176.12",
|
|
4
4
|
"description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, across Claude and Codex.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cody Swann"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-openclaw",
|
|
3
|
-
"version": "2.176.
|
|
3
|
+
"version": "2.176.12",
|
|
4
4
|
"description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, for Claude Code and Codex",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cody Swann"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-openclaw",
|
|
3
|
-
"version": "2.176.
|
|
3
|
+
"version": "2.176.12",
|
|
4
4
|
"description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, for Claude Code and Codex",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cody Swann"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-openclaw",
|
|
3
|
-
"version": "2.176.
|
|
3
|
+
"version": "2.176.12",
|
|
4
4
|
"description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, for Claude Code and Codex",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cody Swann"
|
|
@@ -5,9 +5,9 @@
|
|
|
5
5
|
#
|
|
6
6
|
# Required env vars (must be created in your Claude Code Web environment):
|
|
7
7
|
# JIRA_INSTALLATION - cloud or local
|
|
8
|
-
# JIRA_SERVER - Atlassian instance URL
|
|
8
|
+
# JIRA_SERVER - Atlassian instance URL (falls back to .lisa.config*.json atlassian.site)
|
|
9
9
|
# JIRA_LOGIN - login email
|
|
10
|
-
# JIRA_PROJECT - default project key
|
|
10
|
+
# JIRA_PROJECT - default project key (falls back to .lisa.config*.json jira.project)
|
|
11
11
|
# JIRA_API_TOKEN - already expected by jira-cli natively
|
|
12
12
|
#
|
|
13
13
|
# Optional env vars:
|
|
@@ -31,6 +31,40 @@ fi
|
|
|
31
31
|
CONFIG_DIR="${HOME}/.config/.jira"
|
|
32
32
|
CONFIG_FILE="${CONFIG_DIR}/.config.yml"
|
|
33
33
|
|
|
34
|
+
read_lisa_config() {
|
|
35
|
+
local query="$1"
|
|
36
|
+
local value=""
|
|
37
|
+
|
|
38
|
+
if ! command -v jq &>/dev/null; then
|
|
39
|
+
return 0
|
|
40
|
+
fi
|
|
41
|
+
|
|
42
|
+
if [[ -f ".lisa.config.local.json" ]]; then
|
|
43
|
+
value=$(jq -r "${query} // empty" .lisa.config.local.json 2>/dev/null || true)
|
|
44
|
+
fi
|
|
45
|
+
|
|
46
|
+
if [[ -z "${value}" && -f ".lisa.config.json" ]]; then
|
|
47
|
+
value=$(jq -r "${query} // empty" .lisa.config.json 2>/dev/null || true)
|
|
48
|
+
fi
|
|
49
|
+
|
|
50
|
+
printf '%s' "${value}"
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
if [[ -z "${JIRA_SERVER:-}" ]]; then
|
|
54
|
+
ATLASSIAN_SITE="$(read_lisa_config '.atlassian.site')"
|
|
55
|
+
if [[ -n "${ATLASSIAN_SITE}" ]]; then
|
|
56
|
+
if [[ "${ATLASSIAN_SITE}" == http://* || "${ATLASSIAN_SITE}" == https://* ]]; then
|
|
57
|
+
JIRA_SERVER="${ATLASSIAN_SITE}"
|
|
58
|
+
else
|
|
59
|
+
JIRA_SERVER="https://${ATLASSIAN_SITE}"
|
|
60
|
+
fi
|
|
61
|
+
fi
|
|
62
|
+
fi
|
|
63
|
+
|
|
64
|
+
if [[ -z "${JIRA_PROJECT:-}" ]]; then
|
|
65
|
+
JIRA_PROJECT="$(read_lisa_config '.jira.project')"
|
|
66
|
+
fi
|
|
67
|
+
|
|
34
68
|
# Skip config write if required vars are missing
|
|
35
69
|
if [[ -z "${JIRA_SERVER:-}" || -z "${JIRA_LOGIN:-}" ]]; then
|
|
36
70
|
exit 0
|