code-suggester
Advanced tools
Comparing version 4.1.1 to 4.2.0
@@ -20,2 +20,3 @@ import { Changes, TreeObject, RepoDomain, BranchDomain } from '../types'; | ||
* @returns {Promise<string>} the GitHub tree SHA | ||
* @throws {CommitError} | ||
*/ | ||
@@ -44,3 +45,4 @@ export declare function createTree(octokit: Octokit, origin: RepoDomain, refHead: string, tree: TreeObject[]): Promise<string>; | ||
* @returns {Promise<void>} | ||
* @throws {CommitError} | ||
*/ | ||
export declare function commitAndPush(octokit: Octokit, refHead: string, changes: Changes, originBranch: BranchDomain, commitMessage: string, force: boolean, filesPerCommit?: number): Promise<void>; |
@@ -19,2 +19,3 @@ "use strict"; | ||
const create_commit_1 = require("./create-commit"); | ||
const errors_1 = require("../errors"); | ||
const DEFAULT_FILES_PER_COMMIT = 100; | ||
@@ -67,2 +68,3 @@ /** | ||
* @returns {Promise<string>} the GitHub tree SHA | ||
* @throws {CommitError} | ||
*/ | ||
@@ -76,10 +78,15 @@ async function createTree(octokit, origin, refHead, tree) { | ||
logger_1.logger.info('Got the latest commit tree'); | ||
const treeSha = (await octokit.git.createTree({ | ||
owner: origin.owner, | ||
repo: origin.repo, | ||
tree, | ||
base_tree: oldTreeSha, | ||
})).data.sha; | ||
logger_1.logger.info(`Successfully created a tree with the desired changes with SHA ${treeSha}`); | ||
return treeSha; | ||
try { | ||
const treeSha = (await octokit.git.createTree({ | ||
owner: origin.owner, | ||
repo: origin.repo, | ||
tree, | ||
base_tree: oldTreeSha, | ||
})).data.sha; | ||
logger_1.logger.info(`Successfully created a tree with the desired changes with SHA ${treeSha}`); | ||
return treeSha; | ||
} | ||
catch (e) { | ||
throw new errors_1.CommitError(`Error adding to tree: ${refHead}`, e); | ||
} | ||
} | ||
@@ -98,10 +105,15 @@ exports.createTree = createTree; | ||
logger_1.logger.info(`Updating reference heads/${origin.branch} to ${newSha}`); | ||
await octokit.git.updateRef({ | ||
owner: origin.owner, | ||
repo: origin.repo, | ||
ref: `heads/${origin.branch}`, | ||
sha: newSha, | ||
force, | ||
}); | ||
logger_1.logger.info(`Successfully updated reference ${origin.branch} to ${newSha}`); | ||
try { | ||
await octokit.git.updateRef({ | ||
owner: origin.owner, | ||
repo: origin.repo, | ||
ref: `heads/${origin.branch}`, | ||
sha: newSha, | ||
force, | ||
}); | ||
logger_1.logger.info(`Successfully updated reference ${origin.branch} to ${newSha}`); | ||
} | ||
catch (e) { | ||
throw new errors_1.CommitError(`Error updating ref heads/${origin.branch} to ${newSha}`, e); | ||
} | ||
} | ||
@@ -120,19 +132,13 @@ exports.updateRef = updateRef; | ||
* @returns {Promise<void>} | ||
* @throws {CommitError} | ||
*/ | ||
async function commitAndPush(octokit, refHead, changes, originBranch, commitMessage, force, filesPerCommit = DEFAULT_FILES_PER_COMMIT) { | ||
try { | ||
const tree = generateTreeObjects(changes); | ||
for (const treeGroup of inGroupsOf(tree, filesPerCommit)) { | ||
const treeSha = await createTree(octokit, originBranch, refHead, treeGroup); | ||
refHead = await (0, create_commit_1.createCommit)(octokit, originBranch, refHead, treeSha, commitMessage); | ||
} | ||
await updateRef(octokit, originBranch, refHead, force); | ||
const tree = generateTreeObjects(changes); | ||
for (const treeGroup of inGroupsOf(tree, filesPerCommit)) { | ||
const treeSha = await createTree(octokit, originBranch, refHead, treeGroup); | ||
refHead = await (0, create_commit_1.createCommit)(octokit, originBranch, refHead, treeSha, commitMessage); | ||
} | ||
catch (err) { | ||
err.message = `Error while creating a tree and updating the ref: ${err.message}`; | ||
logger_1.logger.error(err); | ||
throw err; | ||
} | ||
await updateRef(octokit, originBranch, refHead, force); | ||
} | ||
exports.commitAndPush = commitAndPush; | ||
//# sourceMappingURL=commit-and-push.js.map |
@@ -18,2 +18,3 @@ "use strict"; | ||
const logger_1 = require("../logger"); | ||
const errors_1 = require("../errors"); | ||
/** | ||
@@ -31,13 +32,18 @@ * Create a commit with a repo snapshot SHA on top of the reference HEAD | ||
async function createCommit(octokit, origin, refHead, treeSha, message) { | ||
const commitData = (await octokit.git.createCommit({ | ||
owner: origin.owner, | ||
repo: origin.repo, | ||
message, | ||
tree: treeSha, | ||
parents: [refHead], | ||
})).data; | ||
logger_1.logger.info(`Successfully created commit. See commit at ${commitData.url}`); | ||
return commitData.sha; | ||
try { | ||
const { data: { sha, url }, } = await octokit.git.createCommit({ | ||
owner: origin.owner, | ||
repo: origin.repo, | ||
message, | ||
tree: treeSha, | ||
parents: [refHead], | ||
}); | ||
logger_1.logger.info(`Successfully created commit. See commit at ${url}`); | ||
return sha; | ||
} | ||
catch (e) { | ||
throw new errors_1.CommitError(`Error creating commit for: ${treeSha}`, e); | ||
} | ||
} | ||
exports.createCommit = createCommit; | ||
//# sourceMappingURL=create-commit.js.map |
@@ -5,2 +5,3 @@ import { Changes, CreatePullRequestUserOptions, FileDiffContent, CreateReviewCommentUserOptions } from './types'; | ||
export { getChanges, getDiffString } from './bin/handle-git-dir-change'; | ||
export { CommitError } from './errors'; | ||
/** | ||
@@ -44,2 +45,3 @@ * Given a set of suggestions, make all the multiline inline review comments on a given pull request given | ||
* @returns {Promise<number>} the pull request number. Returns 0 if unsuccessful. | ||
* @throws {CommitError} on failure during commit process | ||
*/ | ||
@@ -46,0 +48,0 @@ declare function createPullRequest(octokit: Octokit, changes: Changes | null | undefined, options: CreatePullRequestUserOptions): Promise<number>; |
@@ -16,3 +16,3 @@ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.parseTextFiles = exports.createPullRequest = exports.reviewPullRequest = exports.getDiffString = exports.getChanges = void 0; | ||
exports.parseTextFiles = exports.createPullRequest = exports.reviewPullRequest = exports.CommitError = exports.getDiffString = exports.getChanges = void 0; | ||
const types_1 = require("./types"); | ||
@@ -31,2 +31,4 @@ const logger_1 = require("./logger"); | ||
Object.defineProperty(exports, "getDiffString", { enumerable: true, get: function () { return handle_git_dir_change_1.getDiffString; } }); | ||
var errors_1 = require("./errors"); | ||
Object.defineProperty(exports, "CommitError", { enumerable: true, get: function () { return errors_1.CommitError; } }); | ||
/** | ||
@@ -88,2 +90,3 @@ * Given a set of suggestions, make all the multiline inline review comments on a given pull request given | ||
* @returns {Promise<number>} the pull request number. Returns 0 if unsuccessful. | ||
* @throws {CommitError} on failure during commit process | ||
*/ | ||
@@ -90,0 +93,0 @@ async function createPullRequest(octokit, changes, options) { |
# Changelog | ||
## [4.2.0](https://github.com/googleapis/code-suggester/compare/v4.1.1...v4.2.0) (2023-01-05) | ||
### Features | ||
* Throw new CommitError if an API error occurs during commit process ([#434](https://github.com/googleapis/code-suggester/issues/434)) ([5ee7f2a](https://github.com/googleapis/code-suggester/commit/5ee7f2ad547a6181aba0f4e8b892335700bf9571)) | ||
### Bug Fixes | ||
* **deps:** Update dependency parse-diff to ^0.10.0 ([#430](https://github.com/googleapis/code-suggester/issues/430)) ([06638c2](https://github.com/googleapis/code-suggester/commit/06638c26298a3f948864b8fa18664b540ddc576a)) | ||
## [4.1.1](https://github.com/googleapis/code-suggester/compare/v4.1.0...v4.1.1) (2022-11-09) | ||
@@ -4,0 +16,0 @@ |
{ | ||
"name": "code-suggester", | ||
"description": "Library to propose code changes", | ||
"version": "4.1.1", | ||
"version": "4.2.0", | ||
"license": "Apache-2.0", | ||
@@ -47,3 +47,3 @@ "author": "Google LLC", | ||
"glob": "^7.1.6", | ||
"parse-diff": "^0.9.0", | ||
"parse-diff": "^0.10.0", | ||
"yargs": "^16.0.0" | ||
@@ -60,3 +60,3 @@ }, | ||
"gts": "^3.1.0", | ||
"jsdoc": "^3.6.4", | ||
"jsdoc": "^4.0.0", | ||
"jsdoc-fresh": "^2.0.0", | ||
@@ -69,3 +69,3 @@ "jsdoc-region-tag": "^2.0.0", | ||
"pack-n-play": "^1.0.0-2", | ||
"sinon": "^14.0.0", | ||
"sinon": "^15.0.0", | ||
"ts-loader": "^8.0.0", | ||
@@ -72,0 +72,0 @@ "typescript": "^4.6.4", |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
186717
55
2312
+ Addedparse-diff@0.10.0(transitive)
- Removedparse-diff@0.9.0(transitive)
Updatedparse-diff@^0.10.0