@faros-fde-sandbox/cli 2.0.0 → 2.0.2
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/README.md
CHANGED
|
@@ -56,10 +56,8 @@ faros sync ci-cd deploy \
|
|
|
56
56
|
--commit "GitHub://myorg/myrepo/abc123" \
|
|
57
57
|
--deploy "Kubernetes://myapp/Prod/deploy-789"
|
|
58
58
|
|
|
59
|
-
# Sync Linear data
|
|
60
|
-
faros sync linear
|
|
61
|
-
--linear-api-key lin_api_xxx \
|
|
62
|
-
--cutoff-days 30
|
|
59
|
+
# Sync Linear data (after setting LINEAR_API_KEY env var)
|
|
60
|
+
faros sync linear --cutoff-days 30
|
|
63
61
|
```
|
|
64
62
|
|
|
65
63
|
## Commands
|
|
@@ -133,15 +131,18 @@ Sync Linear issues, projects, teams, and users to Faros.
|
|
|
133
131
|
|
|
134
132
|
**Usage:**
|
|
135
133
|
```bash
|
|
136
|
-
faros sync linear
|
|
134
|
+
faros sync linear [options]
|
|
137
135
|
```
|
|
138
136
|
|
|
139
137
|
**Options:**
|
|
140
|
-
- `--
|
|
141
|
-
- `--cutoff-days <days>` - Fetch issues updated in the last N days (default: 90, or from config)
|
|
138
|
+
- `--cutoff-days <days>` - Fetch issues updated in the last N days (default: 90)
|
|
142
139
|
- `--page-size <size>` - Number of records per API call, 1-250 (default: 50)
|
|
143
140
|
- `--preview` - Show sync configuration without executing
|
|
144
141
|
|
|
142
|
+
**Required Environment Variables:**
|
|
143
|
+
- `LINEAR_API_KEY` - Linear API key (get from https://linear.app/settings/api)
|
|
144
|
+
- `FAROS_API_KEY` - Faros API key
|
|
145
|
+
|
|
145
146
|
**Configuration Priority:**
|
|
146
147
|
1. CLI options (`--linear-api-key`, `--cutoff-days`)
|
|
147
148
|
2. Environment variables (`LINEAR_API_KEY`, `FAROS_API_KEY`, `FAROS_GRAPH`)
|
|
@@ -150,25 +151,20 @@ faros sync linear --linear-api-key <key> [options]
|
|
|
150
151
|
|
|
151
152
|
**Examples:**
|
|
152
153
|
|
|
153
|
-
|
|
154
|
+
Set environment variables:
|
|
154
155
|
```bash
|
|
155
156
|
export LINEAR_API_KEY=lin_api_xxx
|
|
156
157
|
export FAROS_API_KEY=your_faros_key
|
|
157
158
|
export FAROS_GRAPH=default
|
|
158
|
-
|
|
159
|
-
faros sync linear
|
|
160
159
|
```
|
|
161
160
|
|
|
162
|
-
|
|
161
|
+
Then run:
|
|
163
162
|
```bash
|
|
164
|
-
faros sync linear
|
|
165
|
-
--linear-api-key lin_api_xxx \
|
|
166
|
-
--graph default
|
|
163
|
+
faros sync linear
|
|
167
164
|
```
|
|
168
165
|
|
|
169
|
-
Using config file (`faros.config.yaml`):
|
|
166
|
+
Using config file (`faros.config.yaml`) for defaults:
|
|
170
167
|
```yaml
|
|
171
|
-
# Never put API keys here - use environment variables!
|
|
172
168
|
url: https://prod.api.faros.ai
|
|
173
169
|
graph: default
|
|
174
170
|
origin: my-company-ci
|
|
@@ -179,11 +175,7 @@ sources:
|
|
|
179
175
|
pageSize: 100 # Larger page size
|
|
180
176
|
```
|
|
181
177
|
|
|
182
|
-
|
|
183
|
-
```bash
|
|
184
|
-
export LINEAR_API_KEY=lin_api_xxx
|
|
185
|
-
faros sync linear
|
|
186
|
-
```
|
|
178
|
+
**Note:** Never put API keys in config files! Always use environment variables.
|
|
187
179
|
|
|
188
180
|
Sync only recent issues (override config):
|
|
189
181
|
```bash
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"linear.d.ts","sourceRoot":"","sources":["../../../src/commands/sync/linear.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"linear.d.ts","sourceRoot":"","sources":["../../../src/commands/sync/linear.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AA4M5C,wBAAgB,iBAAiB,IAAI,OAAO,CA4D3C"}
|
|
@@ -74,14 +74,10 @@ function createTempConfig(options, config) {
|
|
|
74
74
|
}
|
|
75
75
|
async function runAirbyteSync(configPath) {
|
|
76
76
|
return new Promise((resolve, reject) => {
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
return;
|
|
82
|
-
}
|
|
83
|
-
const args = ['--config', configPath];
|
|
84
|
-
const child = (0, child_process_1.spawn)(airbyteLocalPath, args, {
|
|
77
|
+
// Find the installed airbyte-local-cli package entry point
|
|
78
|
+
const airbyteLocalPath = require.resolve('@faros-fde-sandbox/airbyte-local-cli');
|
|
79
|
+
const args = [airbyteLocalPath, '--config', configPath];
|
|
80
|
+
const child = (0, child_process_1.spawn)(process.execPath, args, {
|
|
85
81
|
stdio: ['inherit', 'pipe', 'pipe'],
|
|
86
82
|
});
|
|
87
83
|
let stdout = '';
|
|
@@ -89,7 +85,6 @@ async function runAirbyteSync(configPath) {
|
|
|
89
85
|
child.stdout?.on('data', (data) => {
|
|
90
86
|
const text = data.toString();
|
|
91
87
|
stdout += text;
|
|
92
|
-
// Forward output to user
|
|
93
88
|
process.stdout.write(text);
|
|
94
89
|
});
|
|
95
90
|
child.stderr?.on('data', (data) => {
|
|
@@ -98,14 +93,14 @@ async function runAirbyteSync(configPath) {
|
|
|
98
93
|
process.stderr.write(text);
|
|
99
94
|
});
|
|
100
95
|
child.on('error', (error) => {
|
|
101
|
-
reject(new Error(`Failed to run airbyte-local: ${error.message}`));
|
|
96
|
+
reject(new Error(`Failed to run airbyte-local-cli: ${error.message}`));
|
|
102
97
|
});
|
|
103
98
|
child.on('close', (code) => {
|
|
104
99
|
if (code === 0) {
|
|
105
100
|
resolve();
|
|
106
101
|
}
|
|
107
102
|
else {
|
|
108
|
-
reject(new Error(`
|
|
103
|
+
reject(new Error(`Airbyte sync failed with exit code ${code}`));
|
|
109
104
|
}
|
|
110
105
|
});
|
|
111
106
|
});
|
|
@@ -135,11 +130,11 @@ async function syncLinearData(options) {
|
|
|
135
130
|
console.log();
|
|
136
131
|
console.log(chalk_1.default.blue('Source:'));
|
|
137
132
|
console.log(` Image: farossam/airbyte-linear-source:latest`);
|
|
138
|
-
console.log(` API Key: ${linearApiKey.substring(0, 10)}...`);
|
|
139
133
|
console.log(` Cutoff Days: ${cutoffDays}`);
|
|
140
134
|
console.log(` Page Size: ${pageSize}`);
|
|
141
135
|
console.log();
|
|
142
136
|
console.log(chalk_1.default.blue('Destination:'));
|
|
137
|
+
console.log(` Image: farosai/airbyte-faros-destination:latest`);
|
|
143
138
|
console.log(` Graph: ${config.graph}`);
|
|
144
139
|
console.log(` URL: ${config.url}`);
|
|
145
140
|
console.log(` Origin: ${config.origin}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"linear.js","sourceRoot":"","sources":["../../../src/commands/sync/linear.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"linear.js","sourceRoot":"","sources":["../../../src/commands/sync/linear.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@faros-fde-sandbox/cli",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.2",
|
|
4
4
|
"description": "CLI for Faros AI - sync test results and CI/CD events",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"faros",
|
|
@@ -49,6 +49,7 @@
|
|
|
49
49
|
"test:ui": "vitest --ui"
|
|
50
50
|
},
|
|
51
51
|
"dependencies": {
|
|
52
|
+
"@faros-fde-sandbox/airbyte-local-cli": "^0.1.1",
|
|
52
53
|
"axios": "^1.8.2",
|
|
53
54
|
"axios-retry": "^4.5.0",
|
|
54
55
|
"boxen": "^8.0.1",
|