How Do I Commit?
Last updated
Last updated
The article below discusses performing an EZ-Commit in ARM and committing the necessary code changes to a target branch.
The New EZ-Commit screen is best viewed when the zoom setting is set to 80% on your Chrome/Firefox browser.
Log in to your ARM account.
Hover your mouse over the Version Control
module and select Commits
.
Click on the New EZ-Commit
button.
On the next screen, select the source Salesforce Org
from which the changes will be retrieved.
Select the user registered for the above Salesforce org.
Select the version control Repository
and the Branch
where the changes will be committed. For Version Control as GIT type, the user can create a new branch from the EZ-Commit user interface.
Important Notes:
There is a provision to choose All
in the Salesforce Org Author
field. Upon selection, this commits changes across the org irrespective of the user registered to that Salesforce org.
In addition to the ALL provision, any Salesforce Org Authors who have access to create, edit, or delete data through either profile or permission-set assignments will be listed and can be selected individually.
These options are accessible only to ARM administrators or users who have permission to commit on behalf of others.
When Skip Mapping is set to false, users cannot choose associated child branches of a mapped branch. In the recent release, ARM reads the mapped branch for your version control repository and displays the related child branches during commit, even if skip mapping is disabled.
Under the Fetch Changes
tab, select how the components are to be fetched from the above-selected source org.
Under the Fetch Changes
tab, select how the components are to be fetched from the above-selected source org.
Metadata Components:
When selected, this retrieves all the metadata components available in the source Salesforce Org. Different ways to fetch the Metadata Components
are:
Auto Draft:
This brings all the changes the author has made in the Salesforce org that is not yet committed to the Version Control (ARM does the calculation by using the last modified date in the Salesforce Org and comparing it against the last commit date to Version Control branch).
Select Manually:
Choose the metadata components individually to be committed to the destination branch.
Package Manifest:
A package .xml file controls which metadata types and members are retrieved and deployed from the source org to the destination org. This type of file is also known as the project manifest. This control file allows you to initiate a commit process without manually selecting individual metadata components.
Important Note:
Under the Package Manifest
option, you can find the checkbox Apply Auto Draft
.
If you click the checkbox above, the metadata components in the uploaded XML file will be compared to your source control and Salesforce, and any modified/added components will be displayed on the next Commits screen.
If left unchecked, the components will be compared only with Salesforce, and any changed or newly added components will be shown on the next screen.
Re-use Previous Validated Commit Label:
If you placed changes related to a user story or task, etc., under a specific commit label, you can choose the same in this field. The main advantage of creating a commit label is to reuse the labels and perform multiple commits under a given label.
Vlocity Components:
This option exports Vlocity data packs from a Salesforce org through a YAML manifest describing your project and committing the same to a VCS. The primary goal is to enable Continuous Integration for Vlocity metadata through source control.
Important Note about Review Artifact:
You can create a review of selected artifacts or a module or collection.
You can designate other team members as participants in the review. Depending on their assigned role in the review, participants receive requests and can approve, disapprove, or abstain from reviewing each artifact.
To view changes to Salesforce metadata, edit them, and see the impact to ensure that your changes are correct, follow these steps:
Select the Review Artifact option while performing an EZ commit.
The Review Artifact screen will contain a compare changes icon that you can click on to view and edit any discrepancies that were identified with the artifacts:
When you edit any of the code in the integrated development environment (IDE) and save the changes, the 'Compare Changes' screen should automatically reflect the current changes, highlighting the modifications with a color difference to distinguish between what has been changed and what has not.
If you open the 'Compare Changes' screen and perform edits on any of the artifacts and then click on the close button, the system will navigate back to the 'Review Artifact' screen, and any new changes made will be reflected in the 'Compare Changes' screen.
If you are in the 'Review Artifact' screen and perform additional changes, once the changes are saved, the 'Compare Changes' screen will pick up the new changes and update the screen to reflect the most recent modifications.
If you check the Review Artifact box and choose only commit options for Profile/PermissionSet, the artifacts option will be ignored. The flow will continue with only commit options for Profile/PermissionSet.
Under the Perform
section, you have different options:
Validation of Changes (Before Commit):
ARM allows performing a validation deployment before committing the changes. This command creates the validation deployment without committing any changes to the repository. If the deployment is successful, the commit is executed.
Commit (Without Validation):
Directly commit to your Version Control System without extra validations.
Create a Pull Request:
Create a pull request to propose and collaborate on changes to a repository. These changes are proposed in a branch, which ensures the master branch only contains finished and approved work.
Under the Post Commit
section, you can invoke certain processes after the commit is completed.
Create/Append Revision to existing Label
Commit Label:
Commit Label helps to label a commit. For example, for changes related to a user story or task, etc., under a specific label, you can reuse the labels and perform multiple commits under a given label. Select the label from the dropdown or create a new one by clicking the + icon.
Release Label:
A Release Label is created by grouping multiple EZ-Commit labels as a singular release label.
ALM Label: Users have the option to commit using solely the ALM Label or by choosing "None." This is applicable when the ALM item has been mapped in the Salesforce Org Management mappings section and the skip mappings option is not enabled. As part of this process, an ALM Label is generated post-commit and is visible under "Change labels" in the ALM Labels panel.
Click Next
.
The next screen will list the metadata types and their corresponding members. You will find 3-4 tabs as detailed below:
All Metadata Components:
All metadata components available for your source org are listed here. Select the components you want to commit to the Version Control Branch.
Deleted:
ARM compares the change with the Source Org and the Version Control Branch and lists all the available components. If you want to delete those components from the branch while committing, you can select those components in this tab.
Important Consideration: If you delete any metadata with permissions on any profile/permissionsets, then all the profiles and permissionsets associated with that metadata are also updated.
Selected:
Total selected components are displayed in this tab. The metadata components newly added or updated in the destination branch are shown as A/M (Added/ Modified), and the components to be deleted from the destination branch are shown as D (Deleted) under the Action tab.
The next screen is displayed based on your commit process selection (prevalidate commit or commit only).
A. For Validation of Changes (Before Commit)
ARM allows performing a validation deployment before actually committing the changes.
Under the Validation Report
section, you can:
Generate Diff Report at current Head:
Select this option to auto-generate a code difference report upon commit completion.Important Note:In some scenarios, this option is selected by default. This usually occurs if you set the criteria for the commit process globally, which enables you to generate a Diff Report by default. Your commit criteria are under the My Account > Commit Validation - Approval Settings
section. However, remember that once the criteria is set, the commit is automatically rejected if you deselect the Generate Diff Report
checkbox.
Run Static Code Analysis:
You can initiate a Static Code Analysis tool to identify potential software quality issues before the code moves to production. Like Generate Diff Report at current HEAD
, this option is auto-selected by default if the criteria are set globally (under the My Account > Commit Validation - Approval Settings
section).
For ApexPMD, Checkmarx, CodeScan, and SonarQube: ARM allows you to set the criteria for running the SCA tool, whether to run on all supported metadata types from the full source or to run on the newly added components.
Furthermore, for CodeScan and SonarQube, ARM allows you to Select Baseline Branch
from the drop-down list.
Validate Deployment:
This feature allows you to validate code across multiple Salesforce orgs simultaneously, with independent Apex test class selection and skip member options for each org.
Click on the option to select Salesforce orgs for validation.
A dropdown will appear, displaying your available Salesforce orgs.
Choose up to 3 orgs by clicking the checkbox next to each desired org.
Select the option within each org section and locate the option to set the Apex test level.
Choose the desired test level (e.g., Class, Suite, Organization) for each org independently.
The "Skip Members" checkbox will only be visible if any of the selected Salesforce orgs are configured to skip members during validation.
If enabled, you can choose to skip specific members from the validation process for each org where skipping is configured.
You'll find a dedicated section for each chosen Salesforce org to select test classes. This section is labeled "Test Classes."
Within each org section, browse or search for the available test classes associated with that specific org.
To select the desired test classes for each org, click the checkbox next to each class you want to include in the validation.
Under the Validation Settings
, users are prompted to enter the commit label, commit message (if any), and reviewer email ID(s) to send an email notification of the commit process performed and the difference reports. Additionally, there are various options you can configure:
Commit WaveXMD Components:
Upon selection, this checkbox allows you to choose the respective Wave XMD files belonging to the Wave dashboard metadata. This checkbox is hidden if the 'WaveDashboard' metadata type or its corresponding members are not picked.
Commit Options for Profile:
This option lets you choose to commit settings for a full profile operation.
Commit Access Settings for selected metadata (Profiles ONLY):
This allows you to perform the commit operation based only on the profiles available for the selected metadata.
Commit Full Profiles:
Commits the profiles irrespective of the selected Metadata.
Commit Options for PermissionSets:
This option allows you to choose to commit settings for permission set operation.
Commit Access Settings for selected metadata (PermissionSets ONLY):
Commits the permission of the metadata members for permission set metadata you have worked on or modified.
Remove IP Ranges:
This removes the IP range from your profile/permissionsets when committing them.
Remove User Permissions:
This removes the user permissions from your profile or permissionsets when committing them. By default, it applies to profiles and not permissionsets.
Important Points to Note:
Only if both the profile and permissionsets files are selected for commit will the Remove User Permissions
checkbox appear.
By default, Remove User Permissions
only applies to profiles, not permissionsets.
If you choose the Commit Options for PermissionSet
option, the Remove User Permissions
checkbox is accessible.
If you check the Remove User Permissions
checkbox without selecting the Commit Options for PermissionSets
checkbox, the Remove User Permissions only applies to profiles, not permissionsets.
Ignore Missing Visibility Settings:
With this option, differences in visibility settings between the source and destination orgs will not cause the deployment to fail. ARM will compare the source and destination orgs and keep only the common settings between both orgs.
Important Note:
Standard fields are not supported for Ignore Missing Visible Settings.
Ignore installed components:
When selected, ARM will scan for the components that are deployed, and if there are any managed package components located in the destination branch, these components will be excluded from the metadata.zip files when the remaining components are deployed.
Apply Search and Substitute Rules:
If you created search and substitute rules to define custom find and replace rules which ARM applies whenever you commit and deploy files from one Sandbox to another Sandbox, one Sandbox to Version Control, or vice-versa, that rule can be found here.
Click Finish
. View your recently created EZ-Commit in the Commits screen.
B. For Commit Only (Without Validation)
Directly commit to your Version Control System without extra validations. Different options to choose from include:
Commit WaveXMD Components:
When selected, this checkbox allows you to choose the respective WaveXMD files belonging to the wave dashboard metadata type and commit them to the target branch. This checkbox is hidden if the 'WaveDashboard' metadata type or its corresponding members are not picked.
Commit Options for Profile:
This option lets you choose to commit settings for a full profile operation.
Commit Access Settings for selected metadata(Profiles Only): This allows
you to perform the commit operation based on the profiles available only for the selected metadata.
Commit Full Profiles:
Commit the profiles irrespective of the selected metadata.
Commit Options For PermissionSets:
This option allows you to choose to commit settings for a permission set operation.
Commit Access Settings for selected metadata (PermissionSets Only):
Commits the permissions of the metadata members for permission sets metadata you have worked on or modified.
Remove IP Ranges:
This removes the IP range from your profile/permissionsets when committing them.
Remove User Permissions:
This removes the user permissions from your profile or permissionsets when committing them. By default, it applies to profiles and not permissionsets.Important Point to Note:
The Remove User Permissions
checkbox appears the profile and permissionsets files are selected for commit.
By default, Remove User Permissions
only applies to profiles, not permissionsets.
If you choose the Commit Options for PermissionSet
option, the Remove User Permissions
checkbox will be accessible.
If you check the Remove User Permissions
checkbox without selecting the Commit Options for PermissionSets
checkbox, the Remove User Permissions will only apply to profiles, not permissionsets.
Apply Search and Substitute Rules:
If you created search and substitute rules to define custom find and replace rules, which ARM applies when you commit and deploy files from one Sandbox to another Sandbox, one Sandbox to Version Control, or vice-versa, that rule can be found here.
Commit Comment:
Comment or add additional information, if any.
Click Finish
. View your recently created EZ-Commit in the Commits screen.
Note: For Non-DX Branches, if you wish to commit only the minimal metadata structure of a custom object, you can use the following XML template. This can be achieved by enabling the review artifact feature in AutoRABIT EZ-Commit. An inline IDE editor will be available, allowing you to adjust the XML as needed (ensure that the XML remains deployable).
Sample Minimal XML Format for a Custom Object:
<?xml version="1.0" encoding="UTF-8"?> <CustomObject xmlns="http://soap.sforce.com/2006/04/metadata"> <deploymentStatus>Deployed</deploymentStatus> <label>Book</label> <nameField> <label>Book Name</label> <type>Text</type> </nameField> <pluralLabel>Books</pluralLabel> <sharingModel>ReadWrite</sharingModel> </CustomObject>
If the same object already exists in the target branch or org and you attempt to edit it, you may encounter a "no modifications" popup. This approach is applicable only for creating brand-new objects.
When you download the file through Review Artifact and edit the changes locally, you must upload the zip file with the same name if you have hit the previous button on the commit screen; otherwise, you will encounter the error below: