@localheroai/cli 0.0.45 → 0.0.46-multilang.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.
- package/README.md +4 -0
- package/dist/types/index.js.map +1 -1
- package/dist/utils/github-graphql.js +126 -0
- package/dist/utils/github-graphql.js.map +1 -0
- package/dist/utils/github.js +182 -16
- package/dist/utils/github.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -268,6 +268,10 @@ LocalHero.ai automatically translate your I18n files when you push changes. Duri
|
|
|
268
268
|
|
|
269
269
|
🚧 **Skip translations on a PR**: Add the `skip-translation` label to any PR to skip the translation workflow. Useful when you're still working on copy changes.
|
|
270
270
|
|
|
271
|
+
### Signed commits
|
|
272
|
+
|
|
273
|
+
For repos that require verified signed commits, set `"github": { "signedCommits": true }` in `localhero.json`. The CLI then commits via the GitHub App's GraphQL API, which auto-signs the commit.
|
|
274
|
+
|
|
271
275
|
|
|
272
276
|
## Support
|
|
273
277
|
|
package/dist/types/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAiGA,qBAAqB;AACrB,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IACzC,eAAe,CAAS;IACxB,IAAI,CAAS;IACb,OAAO,CAAa;IACpB,IAAI,CAAM;IAEV,YAAY,OAAe,EAAE,OAK5B;QACC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;QAC/B,IAAI,CAAC,eAAe,GAAG,OAAO,EAAE,eAAe,IAAI,OAAO,CAAC;QAC3D,IAAI,CAAC,IAAI,GAAG,OAAO,EAAE,IAAI,IAAI,WAAW,CAAC;QACzC,IAAI,CAAC,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,IAAI,CAAC;QACxC,IAAI,CAAC,IAAI,GAAG,OAAO,EAAE,IAAI,IAAI,IAAI,CAAC;IACpC,CAAC;CACF"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GitHub GraphQL helpers for creating signed commits.
|
|
3
|
+
*
|
|
4
|
+
* `createCommitOnBranch` is the canonical way to push commits via the GitHub
|
|
5
|
+
* App API and have them automatically signed by GitHub. It accepts a base SHA
|
|
6
|
+
* (`expectedHeadOid`) and atomically rejects the call if the branch has
|
|
7
|
+
* advanced — no orphaned tree/commit objects on retry.
|
|
8
|
+
*
|
|
9
|
+
* Reference: https://docs.github.com/en/graphql/reference/mutations#createcommitonbranch
|
|
10
|
+
*/
|
|
11
|
+
export class GitHubGraphQLError extends Error {
|
|
12
|
+
type;
|
|
13
|
+
errors;
|
|
14
|
+
constructor(message, type, errors) {
|
|
15
|
+
super(message);
|
|
16
|
+
this.type = type;
|
|
17
|
+
this.errors = errors;
|
|
18
|
+
this.name = 'GitHubGraphQLError';
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
export class StaleHeadError extends GitHubGraphQLError {
|
|
22
|
+
constructor(message) {
|
|
23
|
+
super(message, 'STALE_DATA');
|
|
24
|
+
this.name = 'StaleHeadError';
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
const GRAPHQL_ENDPOINT = 'https://api.github.com/graphql';
|
|
28
|
+
const defaultDeps = {
|
|
29
|
+
fetch: globalThis.fetch.bind(globalThis)
|
|
30
|
+
};
|
|
31
|
+
const CREATE_COMMIT_MUTATION = `
|
|
32
|
+
mutation CreateSignedCommit($input: CreateCommitOnBranchInput!) {
|
|
33
|
+
createCommitOnBranch(input: $input) {
|
|
34
|
+
commit {
|
|
35
|
+
oid
|
|
36
|
+
url
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}`;
|
|
40
|
+
export async function createSignedCommit(input, deps = defaultDeps) {
|
|
41
|
+
const variables = {
|
|
42
|
+
input: {
|
|
43
|
+
branch: {
|
|
44
|
+
repositoryNameWithOwner: input.repositoryNameWithOwner,
|
|
45
|
+
branchName: input.branchName
|
|
46
|
+
},
|
|
47
|
+
message: input.message,
|
|
48
|
+
expectedHeadOid: input.expectedHeadOid,
|
|
49
|
+
fileChanges: input.fileChanges
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
const response = await deps.fetch(GRAPHQL_ENDPOINT, {
|
|
53
|
+
method: 'POST',
|
|
54
|
+
headers: {
|
|
55
|
+
Authorization: `Bearer ${input.token}`,
|
|
56
|
+
'Content-Type': 'application/json',
|
|
57
|
+
'User-Agent': 'localhero-cli'
|
|
58
|
+
},
|
|
59
|
+
body: JSON.stringify({ query: CREATE_COMMIT_MUTATION, variables })
|
|
60
|
+
});
|
|
61
|
+
const text = await response.text();
|
|
62
|
+
if (!response.ok) {
|
|
63
|
+
throw new GitHubGraphQLError(`GitHub GraphQL request failed: ${response.status} ${response.statusText} — ${text}`);
|
|
64
|
+
}
|
|
65
|
+
let payload;
|
|
66
|
+
try {
|
|
67
|
+
payload = JSON.parse(text);
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
throw new GitHubGraphQLError(`GitHub GraphQL returned non-JSON response: ${text}`);
|
|
71
|
+
}
|
|
72
|
+
if (payload.errors && payload.errors.length > 0) {
|
|
73
|
+
const stale = payload.errors.find(e => e.type === 'STALE_DATA');
|
|
74
|
+
if (stale) {
|
|
75
|
+
throw new StaleHeadError(stale.message);
|
|
76
|
+
}
|
|
77
|
+
const first = payload.errors[0];
|
|
78
|
+
throw new GitHubGraphQLError(first.message, first.type, payload.errors);
|
|
79
|
+
}
|
|
80
|
+
const commit = payload.data?.createCommitOnBranch?.commit;
|
|
81
|
+
if (!commit) {
|
|
82
|
+
throw new GitHubGraphQLError(`GitHub GraphQL returned no commit data: ${text}`);
|
|
83
|
+
}
|
|
84
|
+
return { commitSha: commit.oid, commitUrl: commit.url };
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Fetch the current HEAD of a branch via the REST API. Returns the SHA, the
|
|
88
|
+
* parent SHA (for amend semantics), and the author email (to detect whether
|
|
89
|
+
* the last commit was made by the LocalHero bot).
|
|
90
|
+
*/
|
|
91
|
+
export async function fetchBranchHead(repositoryNameWithOwner, branchName, token, deps = defaultDeps) {
|
|
92
|
+
const refUrl = `https://api.github.com/repos/${repositoryNameWithOwner}/git/ref/heads/${encodeURIComponent(branchName)}`;
|
|
93
|
+
const refResponse = await deps.fetch(refUrl, {
|
|
94
|
+
headers: {
|
|
95
|
+
Authorization: `Bearer ${token}`,
|
|
96
|
+
Accept: 'application/vnd.github+json',
|
|
97
|
+
'User-Agent': 'localhero-cli'
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
if (!refResponse.ok) {
|
|
101
|
+
throw new GitHubGraphQLError(`Failed to fetch branch head: ${refResponse.status} ${refResponse.statusText}`);
|
|
102
|
+
}
|
|
103
|
+
const refBody = (await refResponse.json());
|
|
104
|
+
const sha = refBody.object?.sha;
|
|
105
|
+
if (!sha) {
|
|
106
|
+
throw new GitHubGraphQLError(`Branch ${branchName} has no head SHA`);
|
|
107
|
+
}
|
|
108
|
+
const commitUrl = `https://api.github.com/repos/${repositoryNameWithOwner}/commits/${sha}`;
|
|
109
|
+
const commitResponse = await deps.fetch(commitUrl, {
|
|
110
|
+
headers: {
|
|
111
|
+
Authorization: `Bearer ${token}`,
|
|
112
|
+
Accept: 'application/vnd.github+json',
|
|
113
|
+
'User-Agent': 'localhero-cli'
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
if (!commitResponse.ok) {
|
|
117
|
+
throw new GitHubGraphQLError(`Failed to fetch commit: ${commitResponse.status} ${commitResponse.statusText}`);
|
|
118
|
+
}
|
|
119
|
+
const commitBody = (await commitResponse.json());
|
|
120
|
+
return {
|
|
121
|
+
sha,
|
|
122
|
+
parentSha: commitBody.parents?.[0]?.sha ?? null,
|
|
123
|
+
authorEmail: commitBody.commit?.author?.email ?? null
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=github-graphql.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"github-graphql.js","sourceRoot":"","sources":["../../src/utils/github-graphql.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/github.js
CHANGED
|
@@ -3,6 +3,7 @@ import { promises as fs, existsSync } from 'fs';
|
|
|
3
3
|
import path from 'path';
|
|
4
4
|
import { fetchGitHubInstallationToken } from '../api/github.js';
|
|
5
5
|
import { configService, PROJECT_CONFIG_FILE } from './config.js';
|
|
6
|
+
import { createSignedCommit, fetchBranchHead, StaleHeadError } from './github-graphql.js';
|
|
6
7
|
const defaultDependencies = {
|
|
7
8
|
exec: (cmd, options) => execSync(cmd, options),
|
|
8
9
|
fs: { ...fs, existsSync },
|
|
@@ -10,7 +11,9 @@ const defaultDependencies = {
|
|
|
10
11
|
env: process.env,
|
|
11
12
|
console,
|
|
12
13
|
fetchGitHubInstallationToken,
|
|
13
|
-
configService
|
|
14
|
+
configService,
|
|
15
|
+
createSignedCommit,
|
|
16
|
+
fetchBranchHead
|
|
14
17
|
};
|
|
15
18
|
const workflowFileName = 'localhero-translate.yml';
|
|
16
19
|
const GIT_USER_NAME = 'LocalHero Bot';
|
|
@@ -108,6 +111,9 @@ jobs:
|
|
|
108
111
|
async fetchActionToken() {
|
|
109
112
|
try {
|
|
110
113
|
const config = await this.deps.configService.getProjectConfig();
|
|
114
|
+
if (!config) {
|
|
115
|
+
return { token: null, errorCode: 'config_missing' };
|
|
116
|
+
}
|
|
111
117
|
const token = await this.deps.fetchGitHubInstallationToken(config.projectId);
|
|
112
118
|
return { token };
|
|
113
119
|
}
|
|
@@ -263,6 +269,19 @@ jobs:
|
|
|
263
269
|
}
|
|
264
270
|
return finalToken;
|
|
265
271
|
},
|
|
272
|
+
/**
|
|
273
|
+
* Resolve the project's config and return whether signed-commits mode is on.
|
|
274
|
+
* Falls back to false on any error so the existing flow stays the default.
|
|
275
|
+
*/
|
|
276
|
+
async useSignedCommitsMode() {
|
|
277
|
+
try {
|
|
278
|
+
const cfg = await this.deps.configService.getProjectConfig();
|
|
279
|
+
return Boolean(cfg?.github?.signedCommits);
|
|
280
|
+
}
|
|
281
|
+
catch {
|
|
282
|
+
return false;
|
|
283
|
+
}
|
|
284
|
+
},
|
|
266
285
|
/**
|
|
267
286
|
* Automatically commit and push sync changes when running in GitHub Actions
|
|
268
287
|
* @param modifiedFiles List of file paths that were modified
|
|
@@ -274,9 +293,28 @@ jobs:
|
|
|
274
293
|
return;
|
|
275
294
|
log.log('\nCommitting sync changes...');
|
|
276
295
|
try {
|
|
277
|
-
this.configureGitUser();
|
|
278
296
|
const branchName = options?.branchName || this.getBranchName();
|
|
279
297
|
const commitMessage = this.buildSyncCommitMessage(syncSummary);
|
|
298
|
+
if (await this.useSignedCommitsMode()) {
|
|
299
|
+
const filesToCommit = [...modifiedFiles, PROJECT_CONFIG_FILE];
|
|
300
|
+
const result = await this.apiCommitAndPush({
|
|
301
|
+
branchName,
|
|
302
|
+
filePaths: filesToCommit,
|
|
303
|
+
message: commitMessage,
|
|
304
|
+
isSyncMode: true
|
|
305
|
+
});
|
|
306
|
+
if (result === 'no-changes') {
|
|
307
|
+
log.log('No changes to commit - translations already up to date.');
|
|
308
|
+
}
|
|
309
|
+
else if (result === 'amended') {
|
|
310
|
+
log.log('✓ Commit amended and pushed to GitHub (signed)\n');
|
|
311
|
+
}
|
|
312
|
+
else {
|
|
313
|
+
log.log('✓ Signed commit created and pushed to GitHub\n');
|
|
314
|
+
}
|
|
315
|
+
return;
|
|
316
|
+
}
|
|
317
|
+
this.configureGitUser();
|
|
280
318
|
for (const filePath of modifiedFiles) {
|
|
281
319
|
exec(`git add "${filePath}"`, { stdio: 'inherit' });
|
|
282
320
|
}
|
|
@@ -302,6 +340,43 @@ jobs:
|
|
|
302
340
|
throw error;
|
|
303
341
|
}
|
|
304
342
|
},
|
|
343
|
+
/**
|
|
344
|
+
* Build the commit message used by autoCommitChanges, including optional
|
|
345
|
+
* Co-authored-by trailer derived from GITHUB_ACTOR.
|
|
346
|
+
*/
|
|
347
|
+
buildTranslateCommitMessage(translationSummary) {
|
|
348
|
+
let commitMessage = 'Update translations';
|
|
349
|
+
if (translationSummary && translationSummary.keysTranslated > 0) {
|
|
350
|
+
const { keysTranslated, languages, viewUrl } = translationSummary;
|
|
351
|
+
const languageList = languages.join(', ');
|
|
352
|
+
commitMessage += `\n\n${keysTranslated} ${keysTranslated > 1 ? 'keys' : 'key'} in ${languageList}`;
|
|
353
|
+
if (viewUrl) {
|
|
354
|
+
commitMessage += `\n\n${viewUrl}`;
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
const actor = this.deps.env.GITHUB_ACTOR;
|
|
358
|
+
if (actor && !actor.includes('[bot]')) {
|
|
359
|
+
commitMessage += `\n\nCo-authored-by: ${actor} <${actor}@users.noreply.github.com>`;
|
|
360
|
+
}
|
|
361
|
+
return commitMessage;
|
|
362
|
+
},
|
|
363
|
+
/**
|
|
364
|
+
* Enumerate files in the working tree that differ from HEAD. Used by the
|
|
365
|
+
* signed-commits path to know which files to send to the GraphQL API.
|
|
366
|
+
* Returns repo-relative paths.
|
|
367
|
+
*/
|
|
368
|
+
listChangedFiles(filesPath) {
|
|
369
|
+
const { exec } = this.deps;
|
|
370
|
+
// `ls-files --modified --others --exclude-standard` mirrors what `git add .`
|
|
371
|
+
// would stage: tracked-and-modified plus untracked-but-not-ignored. -z gives
|
|
372
|
+
// NUL-delimited output so paths with spaces or special characters round-trip
|
|
373
|
+
// intact (no quoting, no rename arrows, no escaping).
|
|
374
|
+
const command = filesPath
|
|
375
|
+
? `git ls-files --modified --others --exclude-standard -z -- ${filesPath}`
|
|
376
|
+
: 'git ls-files --modified --others --exclude-standard -z';
|
|
377
|
+
const output = exec(command, { stdio: 'pipe' }).toString();
|
|
378
|
+
return output.split('\0').filter(line => line.length > 0);
|
|
379
|
+
},
|
|
305
380
|
/**
|
|
306
381
|
* Automatically commit and push changes when running in GitHub Actions
|
|
307
382
|
* @param filesPath Path pattern for files to commit
|
|
@@ -313,26 +388,30 @@ jobs:
|
|
|
313
388
|
return;
|
|
314
389
|
log.log('Running in GitHub Actions. Committing changes...');
|
|
315
390
|
try {
|
|
316
|
-
this.configureGitUser();
|
|
317
391
|
const branchName = this.getBranchName();
|
|
392
|
+
const commitMessage = this.buildTranslateCommitMessage(translationSummary);
|
|
393
|
+
if (await this.useSignedCommitsMode()) {
|
|
394
|
+
const filePaths = this.listChangedFiles(filesPath);
|
|
395
|
+
const result = await this.apiCommitAndPush({
|
|
396
|
+
branchName,
|
|
397
|
+
filePaths,
|
|
398
|
+
message: commitMessage,
|
|
399
|
+
isSyncMode: false
|
|
400
|
+
});
|
|
401
|
+
if (result === 'no-changes') {
|
|
402
|
+
log.log('No changes to commit.');
|
|
403
|
+
}
|
|
404
|
+
else {
|
|
405
|
+
log.log('Signed commit pushed to GitHub.');
|
|
406
|
+
}
|
|
407
|
+
return;
|
|
408
|
+
}
|
|
409
|
+
this.configureGitUser();
|
|
318
410
|
exec(`git add ${filesPath}`, { stdio: 'inherit' });
|
|
319
411
|
if (!this.hasStagedChanges()) {
|
|
320
412
|
log.log('No changes to commit.');
|
|
321
413
|
return;
|
|
322
414
|
}
|
|
323
|
-
let commitMessage = 'Update translations';
|
|
324
|
-
if (translationSummary && translationSummary.keysTranslated > 0) {
|
|
325
|
-
const { keysTranslated, languages, viewUrl } = translationSummary;
|
|
326
|
-
const languageList = languages.join(', ');
|
|
327
|
-
commitMessage += `\n\n${keysTranslated} ${keysTranslated > 1 ? 'keys' : 'key'} in ${languageList}`;
|
|
328
|
-
if (viewUrl) {
|
|
329
|
-
commitMessage += `\n\n${viewUrl}`;
|
|
330
|
-
}
|
|
331
|
-
}
|
|
332
|
-
const actor = this.deps.env.GITHUB_ACTOR;
|
|
333
|
-
if (actor && !actor.includes('[bot]')) {
|
|
334
|
-
commitMessage += `\n\nCo-authored-by: ${actor} <${actor}@users.noreply.github.com>`;
|
|
335
|
-
}
|
|
336
415
|
this.commit(commitMessage);
|
|
337
416
|
const token = await this.getTokenForPush();
|
|
338
417
|
await this.pushWithRetry(branchName, token);
|
|
@@ -343,6 +422,93 @@ jobs:
|
|
|
343
422
|
log.error('Auto-commit failed:', errorMessage);
|
|
344
423
|
throw error;
|
|
345
424
|
}
|
|
425
|
+
},
|
|
426
|
+
/**
|
|
427
|
+
* Commit and push files using the GitHub GraphQL `createCommitOnBranch`
|
|
428
|
+
* mutation. Produces signed commits attributed to the LocalHero App. Works
|
|
429
|
+
* with repos that enforce `required_signatures` rulesets.
|
|
430
|
+
*
|
|
431
|
+
* Returns 'no-changes' if all files match what's already on the branch,
|
|
432
|
+
* 'amended' if the previous LocalHero sync commit was replaced, otherwise
|
|
433
|
+
* 'new'.
|
|
434
|
+
*/
|
|
435
|
+
async apiCommitAndPush(params) {
|
|
436
|
+
const { console: log, env } = this.deps;
|
|
437
|
+
const repository = env.GITHUB_REPOSITORY;
|
|
438
|
+
if (!repository) {
|
|
439
|
+
throw new Error('GITHUB_REPOSITORY is not set');
|
|
440
|
+
}
|
|
441
|
+
const additions = await this.readFilesAsAdditions(params.filePaths);
|
|
442
|
+
if (additions.length === 0) {
|
|
443
|
+
return 'no-changes';
|
|
444
|
+
}
|
|
445
|
+
const token = await this.getTokenForPush();
|
|
446
|
+
const maxRetries = 3;
|
|
447
|
+
let lastError;
|
|
448
|
+
for (let attempt = 1; attempt <= maxRetries; attempt++) {
|
|
449
|
+
try {
|
|
450
|
+
const head = await this.deps.fetchBranchHead(repository, params.branchName, token);
|
|
451
|
+
// Amend semantics: if the last commit on the branch is by the
|
|
452
|
+
// LocalHero bot in sync mode, replace it instead of stacking.
|
|
453
|
+
let expectedHeadOid = head.sha;
|
|
454
|
+
let amended = false;
|
|
455
|
+
if (params.isSyncMode && this.lastCommitIsLocalHeroBot(head) && head.parentSha) {
|
|
456
|
+
expectedHeadOid = head.parentSha;
|
|
457
|
+
amended = true;
|
|
458
|
+
}
|
|
459
|
+
const headlineAndBody = this.splitCommitMessage(params.message);
|
|
460
|
+
await this.deps.createSignedCommit({
|
|
461
|
+
repositoryNameWithOwner: repository,
|
|
462
|
+
branchName: params.branchName,
|
|
463
|
+
expectedHeadOid,
|
|
464
|
+
message: headlineAndBody,
|
|
465
|
+
fileChanges: { additions },
|
|
466
|
+
token
|
|
467
|
+
});
|
|
468
|
+
return amended ? 'amended' : 'new';
|
|
469
|
+
}
|
|
470
|
+
catch (error) {
|
|
471
|
+
lastError = error;
|
|
472
|
+
if (error instanceof StaleHeadError && attempt < maxRetries) {
|
|
473
|
+
log.log(`Branch advanced under us, retrying (${attempt}/${maxRetries})...`);
|
|
474
|
+
continue;
|
|
475
|
+
}
|
|
476
|
+
throw error;
|
|
477
|
+
}
|
|
478
|
+
}
|
|
479
|
+
throw lastError;
|
|
480
|
+
},
|
|
481
|
+
async readFilesAsAdditions(filePaths) {
|
|
482
|
+
const { fs } = this.deps;
|
|
483
|
+
const seen = new Set();
|
|
484
|
+
const additions = [];
|
|
485
|
+
for (const filePath of filePaths) {
|
|
486
|
+
if (seen.has(filePath))
|
|
487
|
+
continue;
|
|
488
|
+
seen.add(filePath);
|
|
489
|
+
if (!fs.existsSync(filePath))
|
|
490
|
+
continue;
|
|
491
|
+
const buffer = await fs.readFile(filePath);
|
|
492
|
+
additions.push({
|
|
493
|
+
path: filePath,
|
|
494
|
+
contents: Buffer.from(buffer).toString('base64')
|
|
495
|
+
});
|
|
496
|
+
}
|
|
497
|
+
return additions;
|
|
498
|
+
},
|
|
499
|
+
lastCommitIsLocalHeroBot(head) {
|
|
500
|
+
if (!head.authorEmail)
|
|
501
|
+
return false;
|
|
502
|
+
const email = head.authorEmail.toLowerCase();
|
|
503
|
+
return email.includes('localhero');
|
|
504
|
+
},
|
|
505
|
+
splitCommitMessage(message) {
|
|
506
|
+
const newlineIdx = message.indexOf('\n');
|
|
507
|
+
if (newlineIdx === -1)
|
|
508
|
+
return { headline: message };
|
|
509
|
+
const headline = message.slice(0, newlineIdx);
|
|
510
|
+
const body = message.slice(newlineIdx + 1).replace(/^\n+/, '');
|
|
511
|
+
return body.length > 0 ? { headline, body } : { headline };
|
|
346
512
|
}
|
|
347
513
|
};
|
|
348
514
|
/**
|
package/dist/utils/github.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github.js","sourceRoot":"","sources":["../../src/utils/github.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"github.js","sourceRoot":"","sources":["../../src/utils/github.ts"],"names":[],"mappings":"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"}
|