@localheroai/cli 0.0.22 → 0.0.24
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/api/github.js +9 -0
- package/dist/api/github.js.map +1 -0
- package/dist/commands/ci.js +173 -0
- package/dist/commands/ci.js.map +1 -0
- package/dist/commands/github-action.js +111 -0
- package/dist/commands/github-action.js.map +1 -0
- package/dist/commands/translate.js +1 -1
- package/dist/commands/translate.js.map +1 -1
- package/dist/utils/github.js +55 -7
- package/dist/utils/github.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { apiRequest } from './client.js';
|
|
2
|
+
export async function fetchGitHubInstallationToken(projectId) {
|
|
3
|
+
const response = await apiRequest('/api/v1/github/installation_token', {
|
|
4
|
+
method: 'POST',
|
|
5
|
+
body: { project_id: projectId }
|
|
6
|
+
});
|
|
7
|
+
return response.token;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=github.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"github.js","sourceRoot":"","sources":["../../src/api/github.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,SAAiB;IAEjB,MAAM,QAAQ,GAAG,MAAM,UAAU,CAC/B,mCAAmC,EACnC;QACE,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE;KAChC,CACF,CAAC;IAEF,OAAO,QAAQ,CAAC,KAAK,CAAC;AACxB,CAAC"}
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import { translate } from './translate.js';
|
|
4
|
+
import { configService } from '../utils/config.js';
|
|
5
|
+
import { checkAuth } from '../utils/auth.js';
|
|
6
|
+
import { githubService } from '../utils/github.js';
|
|
7
|
+
import { getSyncTranslations } from '../api/translations.js';
|
|
8
|
+
import { updateTranslationFile } from '../utils/translation-updater/index.js';
|
|
9
|
+
const defaultDeps = {
|
|
10
|
+
console,
|
|
11
|
+
configUtils: configService,
|
|
12
|
+
authUtils: { checkAuth },
|
|
13
|
+
githubUtils: githubService,
|
|
14
|
+
env: process.env,
|
|
15
|
+
translateCommand: translate
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Detects if running in a PR context (feature branch)
|
|
19
|
+
* @param env Environment variables
|
|
20
|
+
* @returns true if in PR context (should use --changed-only), false otherwise
|
|
21
|
+
*/
|
|
22
|
+
function detectPRContext(env) {
|
|
23
|
+
const baseRef = env.GITHUB_BASE_REF;
|
|
24
|
+
if (!baseRef) {
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
if (baseRef === 'main' || baseRef === 'master') {
|
|
28
|
+
return false;
|
|
29
|
+
}
|
|
30
|
+
return true;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Run translation mode with defaults for CI/CD
|
|
34
|
+
*/
|
|
35
|
+
async function runTranslateMode(options, deps) {
|
|
36
|
+
const { verbose } = options;
|
|
37
|
+
const { console, env, translateCommand } = deps;
|
|
38
|
+
const shouldUseChangedOnly = detectPRContext(env);
|
|
39
|
+
if (verbose) {
|
|
40
|
+
const baseRef = env.GITHUB_BASE_REF || 'unknown';
|
|
41
|
+
if (shouldUseChangedOnly) {
|
|
42
|
+
console.log(chalk.blue(`ℹ Auto-detected PR context (base: ${baseRef}) - using --changed-only`));
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
console.log(chalk.blue(`ℹ Auto-detected main branch context (base: ${baseRef}) - using full translation`));
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
const translateOptions = {
|
|
49
|
+
...options,
|
|
50
|
+
changedOnly: shouldUseChangedOnly,
|
|
51
|
+
};
|
|
52
|
+
await translateCommand(translateOptions);
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Run sync mode - fetch translations from Sync API and update files
|
|
56
|
+
*/
|
|
57
|
+
async function runSyncMode(syncId, deps, options) {
|
|
58
|
+
const { console, configUtils, githubUtils } = deps;
|
|
59
|
+
const verbose = options?.verbose || false;
|
|
60
|
+
console.log(chalk.blue('🔄 Syncing translations from LocalHero...\n'));
|
|
61
|
+
// Fetch all pages from Sync API
|
|
62
|
+
const allFiles = [];
|
|
63
|
+
let currentPage = 1;
|
|
64
|
+
let totalPages = 1;
|
|
65
|
+
try {
|
|
66
|
+
while (currentPage <= totalPages) {
|
|
67
|
+
const response = await getSyncTranslations(syncId, { page: currentPage });
|
|
68
|
+
if (!response || !response.sync || !response.pagination) {
|
|
69
|
+
throw new Error(`Invalid response from Sync API for page ${currentPage}`);
|
|
70
|
+
}
|
|
71
|
+
allFiles.push(...response.sync.files);
|
|
72
|
+
totalPages = response.pagination.total_pages;
|
|
73
|
+
currentPage++;
|
|
74
|
+
if (verbose && totalPages > 1) {
|
|
75
|
+
console.log(chalk.gray(` Fetched page ${currentPage - 1}/${totalPages}`));
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
catch (error) {
|
|
80
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
81
|
+
throw new Error(`Failed to fetch translations (page ${currentPage}/${totalPages}): ${errorMessage}`);
|
|
82
|
+
}
|
|
83
|
+
if (verbose) {
|
|
84
|
+
console.log(chalk.gray(` Total files to update: ${allFiles.length}\n`));
|
|
85
|
+
}
|
|
86
|
+
// Get project config for source locale
|
|
87
|
+
const config = await configUtils.getValidProjectConfig();
|
|
88
|
+
// Track stats for commit message
|
|
89
|
+
const stats = {
|
|
90
|
+
filesUpdated: 0,
|
|
91
|
+
translationsUpdated: 0,
|
|
92
|
+
keysVersioned: 0
|
|
93
|
+
};
|
|
94
|
+
// Apply updates to each file
|
|
95
|
+
for (const file of allFiles) {
|
|
96
|
+
// Validate path to prevent path traversal attacks
|
|
97
|
+
const normalizedPath = file.path.replace(/\\/g, '/'); // Normalize Windows paths
|
|
98
|
+
const absolutePath = path.resolve(normalizedPath);
|
|
99
|
+
const projectRoot = process.cwd();
|
|
100
|
+
if (!absolutePath.startsWith(projectRoot)) {
|
|
101
|
+
console.error(chalk.yellow(` ⚠️ Skipping invalid path: ${file.path}`));
|
|
102
|
+
continue;
|
|
103
|
+
}
|
|
104
|
+
if (verbose) {
|
|
105
|
+
console.log(chalk.gray(` Updating ${file.path} (${file.language})...`));
|
|
106
|
+
}
|
|
107
|
+
// Count versioned keys (keys with old_values)
|
|
108
|
+
const versionedCount = file.translations.filter(t => t.old_values && t.old_values.length > 0).length;
|
|
109
|
+
await updateTranslationFile(normalizedPath, file.translations, // Pass array directly - po-handler will handle it
|
|
110
|
+
file.language, undefined, // sourceFilePath - will be auto-detected
|
|
111
|
+
config.sourceLocale, config);
|
|
112
|
+
stats.filesUpdated++;
|
|
113
|
+
stats.translationsUpdated += file.translations.length;
|
|
114
|
+
stats.keysVersioned += versionedCount;
|
|
115
|
+
}
|
|
116
|
+
// Remove sync-trigger-id from config
|
|
117
|
+
await configUtils.removeSyncTriggerId();
|
|
118
|
+
console.log(chalk.green(`\n✓ Synced ${stats.translationsUpdated} translations across ${stats.filesUpdated} files`));
|
|
119
|
+
if (stats.keysVersioned > 0) {
|
|
120
|
+
console.log(chalk.yellow(` ⚠️ ${stats.keysVersioned} keys were versioned (msgid changed)`));
|
|
121
|
+
}
|
|
122
|
+
// If in GitHub Actions, amend commit and push
|
|
123
|
+
if (githubUtils.isGitHubAction()) {
|
|
124
|
+
await githubUtils.autoCommitSyncChanges(syncId, stats);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* CI command - runs translations optimized for CI/CD environments
|
|
129
|
+
* Auto-detects PR vs main branch context and adjusts behavior accordingly
|
|
130
|
+
* Also detects and handles sync mode when sync-trigger-id is present
|
|
131
|
+
*/
|
|
132
|
+
export async function ci(options = {}, deps = defaultDeps) {
|
|
133
|
+
const { console, configUtils, authUtils, githubUtils } = deps;
|
|
134
|
+
if (!githubUtils.isGitHubAction()) {
|
|
135
|
+
console.error(chalk.yellow('\n⚠ Warning: This command is designed to run in CI/CD environments.'));
|
|
136
|
+
console.error(chalk.yellow(' For local development, use `npx @localheroai/cli translate` instead.\n'));
|
|
137
|
+
}
|
|
138
|
+
const isAuthenticated = await authUtils.checkAuth();
|
|
139
|
+
if (!isAuthenticated) {
|
|
140
|
+
console.error(chalk.red('\n✖ Your API key is invalid. Please check LOCALHERO_API_KEY secret.\n'));
|
|
141
|
+
process.exit(1);
|
|
142
|
+
}
|
|
143
|
+
const config = await configUtils.getProjectConfig();
|
|
144
|
+
if (!config) {
|
|
145
|
+
console.error(chalk.red('\n✖ No configuration found. localhero.json is missing.\n'));
|
|
146
|
+
process.exit(1);
|
|
147
|
+
}
|
|
148
|
+
// Detect mode based on sync-trigger-id
|
|
149
|
+
const syncTriggerId = config['sync-trigger-id'];
|
|
150
|
+
if (syncTriggerId && typeof syncTriggerId === 'string') {
|
|
151
|
+
// SYNC MODE
|
|
152
|
+
if (options.verbose) {
|
|
153
|
+
console.log(chalk.blue('📥 Sync mode detected\n'));
|
|
154
|
+
}
|
|
155
|
+
try {
|
|
156
|
+
await runSyncMode(syncTriggerId, deps, { verbose: options.verbose });
|
|
157
|
+
}
|
|
158
|
+
catch (error) {
|
|
159
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
160
|
+
console.error(chalk.red('\n✖ Sync failed:', errorMessage));
|
|
161
|
+
console.log(chalk.yellow('\nSync trigger ID preserved for retry.\n'));
|
|
162
|
+
process.exit(1);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
else {
|
|
166
|
+
// TRANSLATE MODE (existing)
|
|
167
|
+
if (options.verbose) {
|
|
168
|
+
console.log(chalk.blue('🔄 Translate mode detected\n'));
|
|
169
|
+
}
|
|
170
|
+
await runTranslateMode(options, deps);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
//# sourceMappingURL=ci.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ci.js","sourceRoot":"","sources":["../../src/commands/ci.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import { translate } from './translate.js';
|
|
3
|
+
import { configService } from '../utils/config.js';
|
|
4
|
+
import { checkAuth } from '../utils/auth.js';
|
|
5
|
+
import { githubService } from '../utils/github.js';
|
|
6
|
+
const defaultDeps = {
|
|
7
|
+
console,
|
|
8
|
+
configUtils: configService,
|
|
9
|
+
authUtils: { checkAuth },
|
|
10
|
+
githubUtils: githubService,
|
|
11
|
+
env: process.env,
|
|
12
|
+
translateCommand: translate
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Detects if running in a PR context (feature branch)
|
|
16
|
+
* @param env Environment variables
|
|
17
|
+
* @returns true if in PR context (should use --changed-only), false otherwise
|
|
18
|
+
*/
|
|
19
|
+
function detectPRContext(env) {
|
|
20
|
+
const baseRef = env.GITHUB_BASE_REF;
|
|
21
|
+
// If no base ref, assume main context (full translation)
|
|
22
|
+
if (!baseRef) {
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
// If base ref is main or master, do full translation
|
|
26
|
+
if (baseRef === 'main' || baseRef === 'master') {
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
// Otherwise, it's a feature branch PR - use changed-only
|
|
30
|
+
return true;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Run translation mode with smart defaults for GitHub Actions
|
|
34
|
+
*/
|
|
35
|
+
async function runTranslateMode(options, deps) {
|
|
36
|
+
const { verbose, forceChangedOnly, forceFull } = options;
|
|
37
|
+
const { console, env, translateCommand } = deps;
|
|
38
|
+
// Determine if we should use --changed-only
|
|
39
|
+
let shouldUseChangedOnly;
|
|
40
|
+
if (forceFull) {
|
|
41
|
+
// User explicitly requested full translation
|
|
42
|
+
shouldUseChangedOnly = false;
|
|
43
|
+
if (verbose) {
|
|
44
|
+
console.log(chalk.blue('ℹ Using full translation mode (--force-full)'));
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
else if (forceChangedOnly) {
|
|
48
|
+
// User explicitly requested changed-only
|
|
49
|
+
shouldUseChangedOnly = true;
|
|
50
|
+
if (verbose) {
|
|
51
|
+
console.log(chalk.blue('ℹ Using changed-only mode (--force-changed-only)'));
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
// Auto-detect based on context
|
|
56
|
+
shouldUseChangedOnly = detectPRContext(env);
|
|
57
|
+
if (verbose) {
|
|
58
|
+
const baseRef = env.GITHUB_BASE_REF || 'unknown';
|
|
59
|
+
if (shouldUseChangedOnly) {
|
|
60
|
+
console.log(chalk.blue(`ℹ Auto-detected PR context (base: ${baseRef}) - using --changed-only`));
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
console.log(chalk.blue(`ℹ Auto-detected main branch context (base: ${baseRef}) - using full translation`));
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
// Run translate with computed options
|
|
68
|
+
const translateOptions = {
|
|
69
|
+
...options,
|
|
70
|
+
changedOnly: shouldUseChangedOnly,
|
|
71
|
+
// translate command already handles auto-commit in GitHub Actions
|
|
72
|
+
};
|
|
73
|
+
await translateCommand(translateOptions);
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* GitHub Actions command - runs translations optimized for CI/CD
|
|
77
|
+
* Auto-detects PR vs main branch context and adjusts behavior accordingly
|
|
78
|
+
*
|
|
79
|
+
* In Phase 5, this will also support sync mode by checking for sync-trigger-id in config
|
|
80
|
+
*/
|
|
81
|
+
export async function githubAction(options = {}, deps = defaultDeps) {
|
|
82
|
+
const { console, configUtils, authUtils, githubUtils } = deps;
|
|
83
|
+
// Verify we're running in GitHub Actions
|
|
84
|
+
if (!githubUtils.isGitHubAction()) {
|
|
85
|
+
console.error(chalk.yellow('\n⚠ Warning: This command is designed to run in GitHub Actions.'));
|
|
86
|
+
console.error(chalk.yellow(' For local development, use `npx @localheroai/cli translate` instead.\n'));
|
|
87
|
+
// Continue anyway - useful for testing
|
|
88
|
+
}
|
|
89
|
+
// Check authentication
|
|
90
|
+
const isAuthenticated = await authUtils.checkAuth();
|
|
91
|
+
if (!isAuthenticated) {
|
|
92
|
+
console.error(chalk.red('\n✖ Your API key is invalid. Please check LOCALHERO_API_KEY secret.\n'));
|
|
93
|
+
process.exit(1);
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
// Load configuration
|
|
97
|
+
const config = await configUtils.getProjectConfig();
|
|
98
|
+
if (!config) {
|
|
99
|
+
console.error(chalk.red('\n✖ No configuration found. localhero.json is missing.\n'));
|
|
100
|
+
process.exit(1);
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
// Phase 5 addition point: Check for sync-trigger-id here
|
|
104
|
+
// Example for future implementation:
|
|
105
|
+
// if (config['sync-trigger-id']) {
|
|
106
|
+
// return runSyncMode(config['sync-trigger-id'], options, deps);
|
|
107
|
+
// }
|
|
108
|
+
// Phase 1: Run translate mode with smart defaults
|
|
109
|
+
await runTranslateMode(options, deps);
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=github-action.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"github-action.js","sourceRoot":"","sources":["../../src/commands/github-action.ts"],"names":[],"mappings":"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"}
|
|
@@ -170,7 +170,7 @@ export async function translate(options = {}, deps = defaultDeps) {
|
|
|
170
170
|
}
|
|
171
171
|
}
|
|
172
172
|
try {
|
|
173
|
-
gitUtils.autoCommitChanges(config.translationFiles.paths.join(' '), {
|
|
173
|
+
await gitUtils.autoCommitChanges(config.translationFiles.paths.join(' '), {
|
|
174
174
|
keysTranslated: translationResult.uniqueKeysTranslated.size,
|
|
175
175
|
languages: translationResult.languages,
|
|
176
176
|
viewUrl: translationResult.jobGroupShortUrl || translationResult.resultsBaseUrl || undefined
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"translate.js","sourceRoot":"","sources":["../../src/commands/translate.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"translate.js","sourceRoot":"","sources":["../../src/commands/translate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,aAAa,EAAsB,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAC9E,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EACpB,+BAA+B,EAGhC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAW9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAuErD,MAAM,WAAW,GAA4B;IAC3C,OAAO;IACP,WAAW,EAAE,aAAa;IAC1B,SAAS,EAAE,EAAE,SAAS,EAAE;IACxB,SAAS,EAAE,EAAE,oBAAoB,EAAE;IACnC,gBAAgB,EAAE;QAChB,oBAAoB;QACpB,cAAc;QACd,qBAAqB;QACrB,uBAAuB;QACvB,oBAAoB;QACpB,+BAA+B;KAChC;IACD,QAAQ,EAAE,EAAE,iBAAiB,EAAE;IAC/B,SAAS,EAAE,EAAE,QAAQ,EAAE;CACxB,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,UAA8B,EAAE,EAAE,OAAgC,WAAW;IAC3G,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;IACnG,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAE5B,MAAM,eAAe,GAAG,MAAM,SAAS,CAAC,SAAS,EAAE,CAAC;IACpD,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,yFAAyF,CAAC,CAAC,CAAC;QACpH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChB,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,gBAAgB,EAAE,CAAC;IACpD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,6EAA6E,CAAC,CAAC,CAAC;QACxG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChB,OAAO;IACT,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,KAAK,EAAE,CAAC;QACpC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,mIAAmI,CAAC,CAAC,CAAC;QAC9J,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChB,OAAO;IACT,CAAC;IAED,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAoB,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;QACnE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,qBAAqB,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAChF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,wBAAwB,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9F,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,oBAAoB,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC;IACjG,MAAM,EAAE,WAAW,EAAE,mBAAmB,EAAE,QAAQ,EAAE,GAAG,MAAgC,CAAC;IAExF,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC,CAAC;QACrF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChB,OAAO;IACT,CAAC;IAED,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,QAAQ,CAAC,MAAM,oBAAoB,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,wCAAwC,MAAM,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC;QAC1F,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,mDAAmD,CAAC,CAAC,CAAC;QACjF,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,qDAAqD,MAAM,CAAC,YAAY,iCAAiC,CAAC,CAAC,CAAC;QACvI,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,iFAAiF,CAAC,CAAC,CAAC;QAC/G,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,+FAA+F,CAAC,CAAC,CAAC;QAC7H,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,sEAAsE,CAAC,CAAC,CAAC;QACpG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChB,OAAO;IACT,CAAC;IAED,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,WAAW,CAAC,MAAM,4BAA4B,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;IAC1G,CAAC;IAED,IAAI,OAAO,CAAC,WAAW,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;QAC7C,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,yEAAyE,CAAC,CAAC,CAAC;QACpG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,8CAA8C,CAAC,CAAC,CAAC;QAC5E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChB,OAAO;IACT,CAAC;IAED,IAAI,eAAe,GAAG,gBAAgB,CAAC,+BAA+B,CACpE,WAAW,EACX,mBAAmB,EACnB,MAAM,EACN,CAAC,CAAC,OAAO,EACT,OAAO,CACR,CAAC;IAEF,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACxB,MAAM,QAAQ,GAAG,kBAAkB,CACjC,WAAW,EACX,eAAe,EACf,MAAM,EACN,CAAC,CAAC,OAAO,CACV,CAAC;QAEF,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACtB,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC,CAAC;gBACtE,OAAO;YACT,CAAC;YACD,eAAe,GAAG,QAAQ,CAAC;QAC7B,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,uEAAuE,CAAC,CAAC,CAAC;YAClG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,wCAAwC,CAAC,CAAC,CAAC;YACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAChB,OAAO;QACT,CAAC;IACH,CAAC;IAOD,MAAM,qBAAqB,GAAkC,EAAE,CAAC;IAChE,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC,IAAwB,EAAE,EAAE;QAClE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC;QACtC,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE,CAAC;YACnC,qBAAqB,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;QAChE,CAAC;QACD,qBAAqB,CAAC,MAAM,CAAC,CAAC,QAAQ,IAAI,QAAQ,CAAC;QACnD,qBAAqB,CAAC,MAAM,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAC1D,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC,CAAC;QAC9D,OAAO;IACT,CAAC;IAED,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,CAAC;QACrD,KAAK,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE,CAAC;YACnE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,MAAM,KAAK,IAAI,CAAC,QAAQ,YAAY,IAAI,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC;QAC3F,CAAC;IACH,CAAC;IAED,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,gBAAgB,CAAC,oBAAoB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;IAEhG,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC,CAAC;QAClF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChB,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC;QAC5B,MAAM,iBAAiB,GAAsB,MAAM,yBAAyB,CAC1E,OAAO,EACP,eAAsB,EACtB,MAAM,EACN,CAAC,CAAC,OAAO,EACT,EAAE,OAAO,EAAE,gBAAgB,EAAE,EAC7B,UAAU,CACX,CAAC;QAEF,MAAM,WAAW,CAAC,kBAAkB,EAAE,CAAC;QAEvC,IAAI,iBAAiB,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC,CAAC;YAC1D,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,iBAAiB,CAAC,eAAe,CAAC,MAAM,wBAAwB,iBAAiB,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YAC9I,IAAI,iBAAiB,CAAC,oBAAoB,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBACpD,OAAO,CAAC,GAAG,CAAC,0BAA0B,iBAAiB,CAAC,oBAAoB,CAAC,IAAI,YAAY,iBAAiB,CAAC,cAAc,YAAY,CAAC,CAAC;YAC7I,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAC;YACrD,IAAI,iBAAiB,CAAC,oBAAoB,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBACpD,OAAO,CAAC,GAAG,CAAC,aAAa,iBAAiB,CAAC,oBAAoB,CAAC,IAAI,YAAY,iBAAiB,CAAC,cAAc,YAAY,CAAC,CAAC;YAChI,CAAC;QACH,CAAC;QAGD,IAAI,iBAAiB,CAAC,oBAAoB,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YACpD,IAAI,iBAAiB,CAAC,gBAAgB,EAAE,CAAC;gBACvC,OAAO,CAAC,GAAG,CAAC,sBAAsB,iBAAiB,CAAC,gBAAgB,EAAE,CAAC,CAAC;YAC1E,CAAC;iBAAM,IAAI,iBAAiB,CAAC,cAAc,IAAI,iBAAiB,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtF,MAAM,WAAW,GAAG,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC1D,OAAO,CAAC,GAAG,CAAC,sBAAsB,iBAAiB,CAAC,cAAc,YAAY,WAAW,EAAE,CAAC,CAAC;YAC/F,CAAC;YAED,IAAI,MAAM,CAAC,oBAAoB,EAAE,CAAC;gBAChC,IAAI,CAAC;oBACH,IAAI,OAAO,EAAE,CAAC;wBACZ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,uCAAuC,MAAM,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC;oBAChG,CAAC;oBACD,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,oBAAoB,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;oBACzF,IAAI,OAAO,EAAE,CAAC;wBACZ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC,CAAC;oBAC5E,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,GAAG,GAAG,KAAc,CAAC;oBAC3B,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,oCAAoC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;gBAChF,CAAC;YACH,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,QAAQ,CAAC,iBAAiB,CAAC,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;oBACxE,cAAc,EAAE,iBAAiB,CAAC,oBAAoB,CAAC,IAAI;oBAC3D,SAAS,EAAE,iBAAiB,CAAC,SAAS;oBACtC,OAAO,EAAE,iBAAiB,CAAC,gBAAgB,IAAI,iBAAiB,CAAC,cAAc,IAAI,SAAS;iBAC7F,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,GAAG,GAAG,KAAc,CAAC;gBAC3B,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,sCAAsC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAClF,CAAC;QACH,CAAC;QAED,IAAI,iBAAiB,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,IAAI,iBAAiB,CAAC,oBAAoB,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YACtG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAChB,OAAO;QACT,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,gBAAgB,EAAE,CAAC;YACtC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,8CAA8C,KAAK,CAAC,eAAe,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YACjH,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;gBAClB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,GAAG,KAAc,CAAC;YAE3B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,0CAA0C,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAElF,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;gBACd,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChB,OAAO;IACT,CAAC;AACH,CAAC"}
|
package/dist/utils/github.js
CHANGED
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
import { execSync } from 'child_process';
|
|
2
2
|
import { promises as fs, existsSync } from 'fs';
|
|
3
3
|
import path from 'path';
|
|
4
|
+
import { fetchGitHubInstallationToken } from '../api/github.js';
|
|
5
|
+
import { configService } from './config.js';
|
|
4
6
|
const defaultDependencies = {
|
|
5
7
|
exec: (cmd, options) => execSync(cmd, options),
|
|
6
8
|
fs: { ...fs, existsSync },
|
|
7
9
|
path,
|
|
8
|
-
env: process.env
|
|
10
|
+
env: process.env,
|
|
11
|
+
fetchGitHubInstallationToken,
|
|
12
|
+
configService
|
|
9
13
|
};
|
|
10
14
|
const workflowFileName = 'localhero-translate.yml';
|
|
11
15
|
export const githubService = {
|
|
@@ -115,12 +119,23 @@ jobs:
|
|
|
115
119
|
await fs.writeFile(workflowFile, actionContent);
|
|
116
120
|
return workflowFile;
|
|
117
121
|
},
|
|
122
|
+
async fetchActionToken() {
|
|
123
|
+
try {
|
|
124
|
+
const config = await this.deps.configService.getProjectConfig();
|
|
125
|
+
const token = await this.deps.fetchGitHubInstallationToken(config.projectId);
|
|
126
|
+
return { token };
|
|
127
|
+
}
|
|
128
|
+
catch (error) {
|
|
129
|
+
const err = error;
|
|
130
|
+
return { token: null, errorCode: err.code };
|
|
131
|
+
}
|
|
132
|
+
},
|
|
118
133
|
/**
|
|
119
134
|
* Automatically commit and push changes when running in GitHub Actions
|
|
120
135
|
* @param filesPath Path pattern for files to commit
|
|
121
136
|
* @param translationSummary Optional summary of translation results
|
|
122
137
|
*/
|
|
123
|
-
autoCommitChanges(filesPath, translationSummary) {
|
|
138
|
+
async autoCommitChanges(filesPath, translationSummary) {
|
|
124
139
|
const { exec, env } = this.deps;
|
|
125
140
|
if (!this.isGitHubAction())
|
|
126
141
|
return;
|
|
@@ -153,21 +168,47 @@ jobs:
|
|
|
153
168
|
}
|
|
154
169
|
}
|
|
155
170
|
exec(`git commit -m "${commitMessage}"`, { stdio: 'inherit' });
|
|
156
|
-
const token =
|
|
157
|
-
|
|
171
|
+
const { token: appToken, errorCode } = await this.fetchActionToken();
|
|
172
|
+
const finalToken = appToken || env.GITHUB_TOKEN;
|
|
173
|
+
if (!finalToken) {
|
|
158
174
|
throw new Error('GITHUB_TOKEN is not set');
|
|
159
175
|
}
|
|
176
|
+
if (appToken) {
|
|
177
|
+
console.log('✓ Using GitHub App token');
|
|
178
|
+
}
|
|
179
|
+
else {
|
|
180
|
+
if (errorCode === 'invalid_api_key') {
|
|
181
|
+
console.warn('⚠️ Warning: API authentication failed. Using GITHUB_TOKEN instead (workflows will not trigger).');
|
|
182
|
+
}
|
|
183
|
+
else if (errorCode !== 'github_app_not_installed') {
|
|
184
|
+
console.warn('⚠️ Warning: Failed to fetch GitHub App token. Using GITHUB_TOKEN instead (workflows will not trigger).');
|
|
185
|
+
}
|
|
186
|
+
}
|
|
160
187
|
const repository = env.GITHUB_REPOSITORY;
|
|
161
188
|
if (!repository) {
|
|
162
189
|
throw new Error('GITHUB_REPOSITORY is not set');
|
|
163
190
|
}
|
|
164
|
-
const remoteUrl = `https://x-access-token:${
|
|
165
|
-
|
|
191
|
+
const remoteUrl = `https://x-access-token:${finalToken}@github.com/${repository}.git`;
|
|
192
|
+
try {
|
|
193
|
+
const result = exec(`git remote set-url origin ${remoteUrl}`, { stdio: 'pipe' });
|
|
194
|
+
if (result) {
|
|
195
|
+
const maskedOutput = result.toString().replace(finalToken, '***TOKEN***');
|
|
196
|
+
if (maskedOutput.trim()) {
|
|
197
|
+
console.log(maskedOutput);
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
catch (error) {
|
|
202
|
+
const err = error;
|
|
203
|
+
const maskedMessage = err.message.replace(finalToken, '***TOKEN***');
|
|
204
|
+
throw new Error(maskedMessage);
|
|
205
|
+
}
|
|
166
206
|
exec(`git push origin HEAD:${branchName}`, { stdio: 'inherit' });
|
|
167
207
|
console.log('Changes committed and pushed successfully.');
|
|
168
208
|
}
|
|
169
209
|
catch (error) {
|
|
170
|
-
|
|
210
|
+
const err = error;
|
|
211
|
+
console.error('Auto-commit failed:', err.message);
|
|
171
212
|
throw error;
|
|
172
213
|
}
|
|
173
214
|
}
|
|
@@ -187,6 +228,13 @@ export function createGitHubActionFile(basePath, translationPaths) {
|
|
|
187
228
|
export function workflowExists(basePath) {
|
|
188
229
|
return githubService.workflowExists(basePath);
|
|
189
230
|
}
|
|
231
|
+
/**
|
|
232
|
+
* Fetch GitHub App installation token from backend
|
|
233
|
+
* @returns Object with token (string or null) and optional errorCode
|
|
234
|
+
*/
|
|
235
|
+
export function fetchActionToken() {
|
|
236
|
+
return githubService.fetchActionToken();
|
|
237
|
+
}
|
|
190
238
|
/**
|
|
191
239
|
* Automatically commit and push changes when running in GitHub Actions
|
|
192
240
|
* @param filesPath Path pattern for files to commit
|
package/dist/utils/github.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github.js","sourceRoot":"","sources":["../../src/utils/github.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAmB,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChD,OAAO,IAAI,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"github.js","sourceRoot":"","sources":["../../src/utils/github.ts"],"names":[],"mappings":"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"}
|