@polza-ai/yandex-tracker-cli 0.1.3 → 0.2.0
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAcpC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAkI1D"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { createInterface } from 'node:readline/promises';
|
|
2
2
|
import { stdin, stdout } from 'node:process';
|
|
3
3
|
import { saveGlobalConfig, saveProjectConfig, GLOBAL_CONFIG_PATH } from '../config/config.js';
|
|
4
|
+
const OAUTH_URL = 'https://oauth.yandex.ru/authorize?response_type=token&client_id=2e8b250c69cb4dbb8ccf4d9009e7ba9c';
|
|
4
5
|
async function prompt(rl, question, defaultValue) {
|
|
5
6
|
const suffix = defaultValue ? ` [${defaultValue}]` : '';
|
|
6
7
|
const answer = await rl.question(`${question}${suffix}: `);
|
|
@@ -10,25 +11,80 @@ export function registerInitCommand(program) {
|
|
|
10
11
|
program
|
|
11
12
|
.command('init')
|
|
12
13
|
.description('Настроить подключение к Yandex Tracker')
|
|
14
|
+
.option('--iam', 'Использовать IAM-токен вместо OAuth (для сервисных аккаунтов Yandex Cloud)')
|
|
13
15
|
.option('--project', 'Создать также конфиг проекта (.tracker.json)')
|
|
14
16
|
.action(async (opts) => {
|
|
15
17
|
const rl = createInterface({ input: stdin, output: stdout });
|
|
16
18
|
try {
|
|
17
|
-
console.log('
|
|
18
|
-
|
|
19
|
-
|
|
19
|
+
console.log('');
|
|
20
|
+
console.log('🔧 Настройка Yandex Tracker CLI');
|
|
21
|
+
console.log('─'.repeat(40));
|
|
22
|
+
// Step 1: Token
|
|
23
|
+
const tokenType = opts.iam ? 'iam' : 'oauth';
|
|
24
|
+
if (tokenType === 'oauth') {
|
|
25
|
+
console.log('');
|
|
26
|
+
console.log('Шаг 1. OAuth-токен');
|
|
27
|
+
console.log('');
|
|
28
|
+
console.log(' Откройте ссылку в браузере, нажмите «Разрешить»,');
|
|
29
|
+
console.log(' скопируйте токен из адресной строки:');
|
|
30
|
+
console.log('');
|
|
31
|
+
console.log(` 👉 ${OAUTH_URL}`);
|
|
32
|
+
console.log('');
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
console.log('');
|
|
36
|
+
console.log('Шаг 1. IAM-токен');
|
|
37
|
+
console.log('');
|
|
38
|
+
console.log(' Получите IAM-токен для сервисного аккаунта:');
|
|
39
|
+
console.log(' yc iam create-token');
|
|
40
|
+
console.log('');
|
|
41
|
+
}
|
|
42
|
+
const token = await prompt(rl, 'Вставьте токен');
|
|
20
43
|
if (!token) {
|
|
21
|
-
console.error('Токен
|
|
44
|
+
console.error('\n❌ Токен обязателен.\n');
|
|
45
|
+
process.exit(1);
|
|
46
|
+
}
|
|
47
|
+
// Step 2: Organization
|
|
48
|
+
console.log('');
|
|
49
|
+
console.log('Шаг 2. Организация');
|
|
50
|
+
console.log('');
|
|
51
|
+
console.log(' Какой тип организации у вас в Яндексе?');
|
|
52
|
+
console.log('');
|
|
53
|
+
console.log(' 1 — Яндекс 360 (бывш. Яндекс.Коннект) — большинство компаний');
|
|
54
|
+
console.log(' 2 — Yandex Cloud — если трекер подключён через облако');
|
|
55
|
+
console.log('');
|
|
56
|
+
const orgChoice = await prompt(rl, 'Выберите (1 или 2)', '1');
|
|
57
|
+
const isCloud = orgChoice === '2';
|
|
58
|
+
let orgId;
|
|
59
|
+
let cloudOrgId;
|
|
60
|
+
if (isCloud) {
|
|
61
|
+
console.log('');
|
|
62
|
+
console.log(' Узнать Cloud Org ID:');
|
|
63
|
+
console.log(' yc organization-manager organization list');
|
|
64
|
+
console.log('');
|
|
65
|
+
cloudOrgId = await prompt(rl, 'Cloud Organization ID');
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
console.log('');
|
|
69
|
+
console.log(' Узнать ID организации:');
|
|
70
|
+
console.log(' Откройте https://tracker.yandex.ru/admin/orgs');
|
|
71
|
+
console.log(' и скопируйте «Идентификатор организации».');
|
|
72
|
+
console.log('');
|
|
73
|
+
orgId = await prompt(rl, 'ID организации');
|
|
74
|
+
}
|
|
75
|
+
if (!orgId && !cloudOrgId) {
|
|
76
|
+
console.error('\n❌ ID организации обязателен.\n');
|
|
22
77
|
process.exit(1);
|
|
23
78
|
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
const defaultQueue = await prompt(rl, 'Очередь
|
|
79
|
+
// Step 3: Default queue
|
|
80
|
+
console.log('');
|
|
81
|
+
console.log('Шаг 3. Очередь по умолчанию');
|
|
82
|
+
console.log('');
|
|
83
|
+
console.log(' Ключ очереди — это префикс задач (например BACKEND, FRONT, MOBILE).');
|
|
84
|
+
console.log(' Можно пропустить и указать позже.');
|
|
85
|
+
console.log('');
|
|
86
|
+
const defaultQueue = await prompt(rl, 'Очередь', '');
|
|
87
|
+
// Save
|
|
32
88
|
const config = {
|
|
33
89
|
token,
|
|
34
90
|
tokenType,
|
|
@@ -38,10 +94,15 @@ export function registerInitCommand(program) {
|
|
|
38
94
|
apiBaseUrl: 'https://api.tracker.yandex.net/v2',
|
|
39
95
|
};
|
|
40
96
|
await saveGlobalConfig(config);
|
|
41
|
-
console.log(
|
|
97
|
+
console.log('');
|
|
98
|
+
console.log(`✅ Конфигурация сохранена в ${GLOBAL_CONFIG_PATH}`);
|
|
99
|
+
// Optional: project config
|
|
42
100
|
if (opts.project) {
|
|
101
|
+
console.log('');
|
|
102
|
+
console.log('Настройка проекта (.tracker.json)');
|
|
103
|
+
console.log('─'.repeat(40));
|
|
43
104
|
const queue = await prompt(rl, 'Очередь проекта', defaultQueue);
|
|
44
|
-
const boardIdStr = await prompt(rl, 'ID доски
|
|
105
|
+
const boardIdStr = await prompt(rl, 'ID доски для спринтов (Enter — пропустить)', '');
|
|
45
106
|
const boardId = boardIdStr ? parseInt(boardIdStr, 10) : undefined;
|
|
46
107
|
await saveProjectConfig({
|
|
47
108
|
...(queue && { queue }),
|
|
@@ -49,7 +110,13 @@ export function registerInitCommand(program) {
|
|
|
49
110
|
});
|
|
50
111
|
console.log('✅ Конфиг проекта сохранён в .tracker.json');
|
|
51
112
|
}
|
|
52
|
-
console.log('
|
|
113
|
+
console.log('');
|
|
114
|
+
console.log('🎉 Готово! Попробуйте:');
|
|
115
|
+
console.log('');
|
|
116
|
+
console.log(' tracker tasks — список задач');
|
|
117
|
+
console.log(' tracker tasks --assignee me — мои задачи');
|
|
118
|
+
console.log(' tracker task КЛЮЧ — детали задачи');
|
|
119
|
+
console.log('');
|
|
53
120
|
}
|
|
54
121
|
finally {
|
|
55
122
|
rl.close();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/commands/init.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAG9F,KAAK,UAAU,MAAM,CAAC,EAAsC,EAAE,QAAgB,EAAE,YAAqB;IACnG,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,KAAK,YAAY,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACxD,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,GAAG,QAAQ,GAAG,MAAM,IAAI,CAAC,CAAC;IAC3D,OAAO,MAAM,CAAC,IAAI,EAAE,IAAI,YAAY,IAAI,EAAE,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,OAAgB;IAClD,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,wCAAwC,CAAC;SACrD,MAAM,CAAC,WAAW,EAAE,8CAA8C,CAAC;SACnE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAE7D,IAAI,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/commands/init.ts"],"names":[],"mappings":"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"}
|