GetMergeOptions
Returns information about the merge options available for merging two specified branches. For details about why a merge option is not available, use GetMergeConflicts or DescribeMergeConflicts.
Request Syntax
{
   "conflictDetailLevel": "string",
   "conflictResolutionStrategy": "string",
   "destinationCommitSpecifier": "string",
   "repositoryName": "string",
   "sourceCommitSpecifier": "string"
}Request Parameters
For information about the parameters that are common to all actions, see Common Parameters.
The request accepts the following data in JSON format.
- conflictDetailLevel
- 
               The level of conflict detail to use. If unspecified, the default FILE_LEVEL is used, which returns a not-mergeable result if the same file has differences in both branches. If LINE_LEVEL is specified, a conflict is considered not mergeable if the same file in both branches has differences on the same line. Type: String Valid Values: FILE_LEVEL | LINE_LEVELRequired: No 
- conflictResolutionStrategy
- 
               Specifies which branch to use when resolving conflicts, or whether to attempt automatically merging two versions of a file. The default is NONE, which requires any conflicts to be resolved manually before the merge operation is successful. Type: String Valid Values: NONE | ACCEPT_SOURCE | ACCEPT_DESTINATION | AUTOMERGERequired: No 
- destinationCommitSpecifier
- 
               The branch, tag, HEAD, or other fully qualified reference used to identify a commit (for example, a branch name or a full commit ID). Type: String Required: Yes 
- repositoryName
- 
               The name of the repository that contains the commits about which you want to get merge options. Type: String Length Constraints: Minimum length of 1. Maximum length of 100. Pattern: [\w\.-]+Required: Yes 
- sourceCommitSpecifier
- 
               The branch, tag, HEAD, or other fully qualified reference used to identify a commit (for example, a branch name or a full commit ID). Type: String Required: Yes 
Response Syntax
{
   "baseCommitId": "string",
   "destinationCommitId": "string",
   "mergeOptions": [ "string" ],
   "sourceCommitId": "string"
}Response Elements
If the action is successful, the service sends back an HTTP 200 response.
The following data is returned in JSON format by the service.
- baseCommitId
- 
               The commit ID of the merge base. Type: String 
- destinationCommitId
- 
               The commit ID of the destination commit specifier that was used in the merge evaluation. Type: String 
- mergeOptions
- 
               The merge option or strategy used to merge the code. Type: Array of strings Valid Values: FAST_FORWARD_MERGE | SQUASH_MERGE | THREE_WAY_MERGE
- sourceCommitId
- 
               The commit ID of the source commit specifier that was used in the merge evaluation. Type: String 
Errors
For information about the errors that are common to all actions, see Common Errors.
- CommitDoesNotExistException
- 
               The specified commit does not exist or no commit was specified, and the specified repository has no default branch. HTTP Status Code: 400 
- CommitRequiredException
- 
               A commit was not specified. HTTP Status Code: 400 
- EncryptionIntegrityChecksFailedException
- 
               An encryption integrity check failed. HTTP Status Code: 500 
- EncryptionKeyAccessDeniedException
- 
               An encryption key could not be accessed. HTTP Status Code: 400 
- EncryptionKeyDisabledException
- 
               The encryption key is disabled. HTTP Status Code: 400 
- EncryptionKeyNotFoundException
- 
               No encryption key was found. HTTP Status Code: 400 
- EncryptionKeyUnavailableException
- 
               The encryption key is not available. HTTP Status Code: 400 
- InvalidCommitException
- 
               The specified commit is not valid. HTTP Status Code: 400 
- InvalidConflictDetailLevelException
- 
               The specified conflict detail level is not valid. HTTP Status Code: 400 
- InvalidConflictResolutionStrategyException
- 
               The specified conflict resolution strategy is not valid. HTTP Status Code: 400 
- InvalidRepositoryNameException
- 
               A specified repository name is not valid. NoteThis exception occurs only when a specified repository name is not valid. Other exceptions occur when a required repository parameter is missing, or when a specified repository does not exist. HTTP Status Code: 400 
- MaximumFileContentToLoadExceededException
- 
               The number of files to load exceeds the allowed limit. HTTP Status Code: 400 
- MaximumItemsToCompareExceededException
- 
               The number of items to compare between the source or destination branches and the merge base has exceeded the maximum allowed. HTTP Status Code: 400 
- RepositoryDoesNotExistException
- 
               The specified repository does not exist. HTTP Status Code: 400 
- RepositoryNameRequiredException
- 
               A repository name is required, but was not specified. HTTP Status Code: 400 
- TipsDivergenceExceededException
- 
               The divergence between the tips of the provided commit specifiers is too great to determine whether there might be any merge conflicts. Locally compare the specifiers using git diffor a diff tool.HTTP Status Code: 400 
Examples
Example
This example illustrates one usage of GetMergeOptions.
Sample Request
POST / HTTP/1.1
Host: codecommit.us-east-1.amazonaws.com
Accept-Encoding: identity
Content-Length: 57
X-Amz-Target: CodeCommit_20150413.GetMergeOptions
X-Amz-Date: 20190428T213222Z
User-Agent: aws-cli/1.16.137 Python/3.6.0 Windows/10
Content-Type: application/x-amz-json-1.1
Authorization: AWS4-HMAC-SHA256 Credential=AKIAI44QH8DHBEXAMPLE/20151028/us-east-1/codecommit/aws4_request, SignedHeaders=content-type;host;user-agent;x-amz-date;x-amz-target, Signature=8d9b5998EXAMPLE
{
  "repositoryName": "MyDemoRepo", 
  "sourceCommitSpecifier": "bugfix-bug1234",
  "destinationCommitSpecifier": "main"
}Sample Response
HTTP/1.1 200 OK
x-amzn-RequestId: 0728aaa8-EXAMPLE
Content-Type: application/x-amz-json-1.1
Content-Length: 167
Date: Sat, 11 Nov 2017 22:59:13 GMT
{
    "mergeOptions": [
        "FAST_FORWARD_MERGE",
        "SQUASH_MERGE",
        "THREE_WAY_MERGE"
    ],
    "sourceCommitId": "18059494EXAMPLE",
    "destinationCommitId": "ffd3311dEXAMPLE",
    "baseCommitId": "ffd3311dEXAMPLE"
} 
See Also
For more information about using this API in one of the language-specific AWS SDKs, see the following: