Git Integration for Salesforce

Copado is the most flexible and comprehensive git integration for Salesforce. There are many ways that Copado integrates with Git, from a simple Git deployment entirely in the cloud, with no software needed, to full featured applications such as Copado Branch Management (CBM)+ Copado Change Management (CCM) and Copado Continuous Integration (CCI).

Copado can not only be used to deploy from Git, but also to commit changes into a repository. In this sense Copado has created a unique Git client that allows admins and configurators to commit their declarative changes in a secure, easy and centralized way.

We believe that this set of tools will lower the barrier to adopt Git for Salesforce, allowing less skilled professionals to follow industry standard processes without major training.

Since there are multiple ways to deploy from Git using Copado, here is a list of all of them, and the differences between the two applications offered.

Feature

CBM + CCI

CCI

Deploy from Git

Yes

Yes

Incremental deployments

Yes

Yes

Validate deployments

Yes

Yes

Validate merges

Yes

No

Merge and Deploy

Yes

No

View Differences before deploying them

Yes

No

Pre/Post deployment Jobs

Yes

Yes

Edit deployments

Yes

Yes

Support for Feature branches

Yes

Yes


When to use Branch Management:

When having multiple streams of work in parallel and the need to merge the code continuously without overriding each other’s work, Copado Branch Management is the best option. CBM is will validate if branches are mergeable from a Git perspective, and also if changes are deployable from Salesforce perspective (validation incremental deployment).

When to use Branch Management + Change Management:

This is the Copado recommended way. These two applications combined, will allow deployments from left to right (from lower environments to higher environments, until production) using Copado Change Management were all Quality Gates are stablished and there is a full traceability of the User Stories. But also it will allow users to keep in sync the different sandboxes by merging and deploying back to the lower environments (from right to left) using Copado Branch Management. Just by committing change directly from a User Story (US), Copado will create a Feature branch for that US, which then will be used in CCM to promote only approved changes. Copado will handle the branch creation and merges, so that implementing a complete Git Flow for Salesforce is possible.

Git Promotion + Permissions


When to use Continuous Integration:

When you have already implemented the “Git flow”, meaning all your team members work on a daily basis on a Git platform such as github, where they perform code-review and pull requests, Continuous Integration can be used to deploy approved pull requests. In this scenario users a used to merge git branches manually, therefore just by pushing the merge commit, it will trigger Copado’s Continuous Integration.

Other ways to deploy from Git using Copado:

  • When using Copado Change Management, developers will be able to attach commits to their User Stories. When the release manager promotes the User Stories, Copado will combine all commits and deploy these.
  • From a Git repository record, you can create a deployment by choosing a Starting and Ending commit. Copado will create an incremental deployment of all affected files as in the ending commit. Finally the user chooses the target org to deploy the files to.
  • Manually create a Deployment record with a Git Metadata step, where the user chooses the Repository/Commit ID, then select which files to deploy and the target Org.

Copado Commit files functionality:

Regardless of the Git integration you may choose in Copado, the Commit files functionality facilitates the Git practice in Salesforce as never before.

Feature

Git client

Copado Commit files

Commit nested components. E.g. commit a single field, not the entire object

No

Yes

Commit nested permissions. E.g. commit a single FLS, not the entire profile or permission set.

No

Yes

Requires a local copy of the repository. Local ssh keys or passwords

Yes

No

Requires a local copy of the Code. Local passwords + security tokens

Yes

No

Centralized control

No

Yes

Enable Admins to follow the same process as developers

No

Yes