You can use a GitHub, Azure DevOps, or Bitbucket Git source control repository with Informatica Intelligent Cloud Services to manage and track changes made to Informatica Intelligent Cloud Services objects such as projects, folders, and assets.
You can use source control to enable version management for the Informatica Intelligent Cloud Services objects that appear on the Explore page, except for Data Integration bundles. You cannot apply source control to objects that don't appear on the Explore page such as runtime environments or connections. The source control repository structure mirrors the structure in the organization, with Explore as the top level directory.
Each time a user performs an action on an object that is source controlled, Informatica Intelligent Cloud Services logs the action. You can view source control logs in the Monitor service. For more information, see Monitoring source control logs in the Monitor help.
To use source control, the following prerequisites must be met:
•The organization has the appropriate Informatica Intelligent Cloud Services licenses to use source control.
•The organization administrator has configured a connection between the source control repository and the Informatica Intelligent Cloud Services organization.
•Your user role has privileges to use the Informatica Intelligent Cloud Services source control feature.
•You've entered your source control repository user credentials in Informatica Intelligent Cloud Services.
For information about configuring a connection between a Git source control repository and Informatica Intelligent Cloud Services, see the Administrator help.
Note: Informatica recommends that you include no more than 1000 objects in a container such as a project or folder when you use a source control repository with Informatica Intelligent Cloud Services.
Source control actions
You can perform the following actions on source-controlled objects such as projects, folders, and assets:
Pull an object.
Pull an object to add it to the organization or update a project with the version in the source control repository.
Check out an object.
Check out an object that you want to work on. When you check out an object, the object locks so that other users cannot make changes to it.
Check in an object.
Check in an object to add it to the source control repository or update the source control repository with the latest version of the object. When you check in an object, the lock releases.
Delete an object.
Delete an object from the organization and the source control repository. Before you can delete an object, you must check it out.
Restore an object version.
Restore an object to a previous version.
Undo a checkout.
Undo a checkout if you don't want to save the changes you made to the object. When you undo a checkout, the object reverts to the last source control version.
Unlink an object.
Unlink an object if you no longer want the object in the organization to stay in sync with the object in the source control repository.
Note: Some organizations do not have permission to update the source control repository. If your organization cannot update the repository, you can perform a pull action to get a specified version of the Informatica Intelligent Cloud Services objects. However, you cannot perform other source control actions such as checking out and checking in objects.
To check out, pull, unlink, or undo a checkout for an object, you must have update permissions on the object.
Source control and the Git repository
If you usually work directly in a Git source control repository, you might notice a few differences between using source control in Informatica Intelligent Cloud Services and working directly in the repository.
Note the following differences:
•A pull action in Informatica Intelligent Cloud Services is the same as a Git pull command. However, a pull in Informatica Intelligent Cloud Services cannot merge changes.
•A checkout action in Informatica Intelligent Cloud Services locks an object so that no one else can check it out or change it.
•A check-in action in Informatica Intelligent Cloud Services is the same as a Git commit command and push command combined. Use a check-in to add Informatica Intelligent Cloud Services objects to the source control repository and to commit changes to the repository.
Configuring repository access
To work with source controlled objects, specify your repository credentials in Informatica Intelligent Cloud Services.
Your credentials can include a personal access token or app password, depending on the repository service that you use.
If your administrator has configured the organization's repository for OAuth access, you can enable OAuth access instead of providing a personal access token or app password.
Personal access tokens and app passwords must be configured to enable full control of private repositories. For information about generating personal access tokens, see the GitHub or Azure DevOps Git help. For information about generating app passwords, see the Bitbucket help.
Perform the following steps to configure access to the repository:
1Click the User icon on the toolbar and then select Settings.
2In the Source Code Control Credentials section, perform one of the following tasks:
- Enter your repository credentials.
- Enable OAuth access to the repository.
If you haven't already authorized access, a Git access app appears for GitHub and Azure DevOps Git repositories. Select to authorize access for Informatica Intelligent Cloud Services.
3Click Save.
Project-level repositories
If you're assigned a role with the Configure Custom Repository Source Control privilege, you can specify a source control repository to use at the project level, instead of using the global source control repository that's set up for your organization.
By default, when you perform a source control action on a project or folder, the action uses the global source control repository that's set up by the organization administrator. If the organization administrator enables project-level repositories, you can link a project to a repository other than the global repository.
If you use project-level repositories, be sure to add the Repository URL and Repository Branch columns to the Explore page.
Note: Before you link a project to a custom repository, make sure that other users who need access to the project have access to the repository.
Linking a project to a source control repository
You can link a project to a source control repository other than the global repository.
1On the Explore page, in the row that contains the project, click Actions and select Source Control Properties.
2Enter the Git repository URL and branch name that you want to use, and then click Save.
3Click Save again to confirm that you want to use a repository other than the global repository.
After you click Save, only users who have access to the repository can check out and commit the project.
Source control pulls
Pull an object to add it to the organization or replace the version of the object in the organization with the version in the source control repository. You can pull a project, folder, or an individual object that isn't checked out by another user.
Before a pull takes place, you can review the potential results of the pull. You can cancel the action or select objects to exclude from the pull.
The following image shows a preview page with potential results in the Status column:
You can also test the pull to see if any errors might occur. If any errors appear, you can exclude the objects from the pull or close the page to cancel the pull.
A pull doesn't include dependent objects. For example, in Data Integration, if you pull a mapping that uses a saved query, the pull doesn't include the saved query.
A pull doesn't change the state of pulled objects in the organization. For example, if an object was checked out before the pull, it remains checked out after the pull.
Consider the following rules and guidelines:
•If you want to pull an object that uses a connection or runtime environment, be sure that the organization includes a connection and runtime environment before you perform the pull. When you select an object that uses a connection or runtime environment, you can select a runtime environment and connection to use on the test page.
•Informatica Intelligent Cloud Services doesn't consider capitalization in object names. As a result, you can't pull a project that contains multiple assets that have the same name with different capitalization. For example, if you try to pull a project that contains an asset named "sales" and an asset named "SALES", you receive an error because a project or folder can't contain multiple assets with the same name.
•You can pull objects regardless of whether your organization can or cannot update the source control repository.
Project and folder pulls
You can pull all of the objects in a project or folder, or pull only the objects that changed in a particular commit hash.
You specify the version of the objects that you want to pull. The versions of an object that you can select are based on the object's current location in Informatica Intelligent Cloud Services. For example, you check out version 5 of the m_customers object and move it to a project called NewCustomers. When you pull the object, the available versions do not include the versions of the object from the previous location.
If you pull a project or folder, the pull doesn't affect any objects in the project or folder that aren't source-controlled.
A pull updates the project or folder in the organization to be identical to the selected version of the project or folder in the repository. For example, if you pull an older version of a project and the project in the organization contains objects that were added in later versions, the pull deletes the objects.
Pulling an object
Use the pull action to update the organization with objects in the source control repository. You can pull a single asset, a project, or a folder. When you pull a project or folder, you can exclude any assets in the project or folder that you don't want to include in the pull.
1To pull a project from the global repository, click Pull from Global Git. Select the project that contains the objects you want to pull and click Next.
2To pull a project from a repository or branch that's configured at the project level, on the Explore page, select the asset or folder. Click Actions and select Pull.
Note: You can't pull more than one project at a time.
3To pull a single asset or folder, on the Explore page, select the asset or folder. Click Actions and select Pull.
4For a project or folder, select the pull method that you want to use, and then click Next. You can use one of the following methods:
- Pull all assets in a commit hash.
- Only pull modified assets in a commit hash.
5Select the Git hash that you want to pull and click Next.
6Review the list of assets. You can clear the check box for any of the assets that you don't want to include in the pull. By default, all of the assets are selected.
7Review the actions in the Status column for each asset. These actions will occur when the pull action is performed.
8Optionally, click Test to see if errors might occur as a result of the pull action.
9Click Pull.
The pull action generates a log showing details of this action. You can view the log on the Source Control Logs page in Monitor.
Commit tags
When you check in assets to your source control repository, you can include a commit tag. The tag appears as an annotated tag in your Git repository.
You might want to include a commit tag to mark assets within a check-in that are ready for deployment. When you add a commit tag, the tag is applied to each asset in the commit. You can add one tag for each commit, and the tag must be unique.
When you pull assets, Informatica Intelligent Cloud Services displays commit tags in the Tag column on the Pull page.
Note: The pull operation can take longer based on the number of commit tags you have in your repository.
Checking out and checking in objects
Check out an object so you can make changes to it. Check in the object when you want to update the source control repository with your changes. You can also check in objects to add them to the source control repository.
When you check out an object, the object locks so that other users can't make changes to it. When you check in an object, a new version of the object is created in the source control repository.
If you check in an object that's in a folder or project that isn't source controlled, the folder or project becomes source controlled. An asset can't reside in a source control repository unless it's in a container such as a project or folder.
If you import assets into an organization that uses source control, the assets must be checked out so that they can be overwritten.
Note: The size of a check-in cannot exceed 50 MB.
Checking out an object
When you check out an object, the object is locked so that other users can't update it while you are making your changes.
You can check out individual objects, multiple objects, or a project or folder to check out all of the objects within the project or folder.
Before you check out an object, you might want to perform a pull to be sure you update the latest version of the object. For more information about the pull action, see Source control pulls
1On the Explore page, navigate to the object you want to check out.
2In the row that contains the object, click Actions and select Check Out.
3If the checkout includes multiple objects, on the preview page, review the results in the Status column. If you want to exclude an object, clear the check box next to the object name.
4Click Check Out.
Checking in an object
Check in an object to add the object to the source control repository or to update the source control repository with the latest version of the object in the organization.
If no changes were made to the object, the check-in isn't reflected in the source control history and a new version of the object isn't created in the source control repository.
Note: The size of a check-in cannot exceed 50 MB.
1On the Explore page, navigate to the object you want to check in.
2In the row that contains the object, click Actions and select Check In.
3If the check-in includes multiple objects, on the preview page, review the results in the Status column. If you want to exclude an object, clear the check box next to the object name. If you want to cancel the action, close the page.
4Add a summary and optionally, a description and commit tag.
A summary is required and has a max length of 255 characters.
5Click OK.
Deleting an object
To delete a source controlled object, you delete it from the organization and from the source control repository.
You must check out an object before you can delete it.
You can't delete an object that's checked out by another user or delete a project or folder recursively.
1On the Explore page, navigate to the object that you want to delete.
2On the row that contains the object, click Actions and then click Delete.
3To confirm that you want to delete the asset from the organization, click Delete.
4Add a summary that describes the reason for the delete action and optionally, a description.
A summary is required and has a max length of 255 characters.
5To delete the object from the repository and complete the delete action, click OK.
Reverting to an older version
You might want to revert to a previous version of an object if you want to discard changes that were made to the object.
To revert to a previous version, perform a pull action and select the version that you want to restore in the organization.
If you revert the version of a project or folder and the project or folder in Informatica Intelligent Cloud Services contains objects that are not in the repository's project or folder, the pull action deletes the additional objects if they are source controlled. If the objects are not source controlled, the action doesn't delete the additional objects.
When you undo a checkout, the object reverts to the last version that was pulled. The object's version history will not include a record of the checkout and undo checkout actions. The undo checkout releases the lock so that the object is available for checkout.
You can undo the checkout of individual objects, multiple objects, or a project or folder in a single checkout action.
You can undo the checkout of any object that you have checked out. You cannot undo the checkout of an object that has been checked out by another user unless you have the Admin role or your user role has the Force Undo Checkout feature privilege for the Administrator service.
If you undo the checkout of a project or folder, you can select which objects within the project or folder to include or exclude. By default, all of the objects are included.
Note: If an object was moved or renamed after it was checked out, undoing the checkout restores the object's name and location to its name and location before it was checked out.
1On the Explore page, navigate to the object.
2In the row that contains the object, click Actions and select Undo Check Out.
3If the undo checkout includes a project or folder, on the preview page, select the objects within the project or folder to exclude from the undo checkout action.
Unlinking an object
You can unlink an object so that it's no longer source controlled.
Unlinking an object doesn't delete the object from the source control repository or the organization, but you can no longer update the repository for any changes you make to the object in the organization. If you decide to link the object in the future, you can check in the object to reestablish the link. If the name of the object or the path to the object has not changed, the checked in object becomes a new version of the object in the source control repository.
The object must be checked in before you can unlink it. You can unlink an object that's checked out by another user if you have the Admin role or your user role has the Force Undo Checkout feature privilege for the Administrator service.
You can't unlink a project or folder that contains source controlled objects. To unlink a project or folder, unlink each object within the project or folder first.
1On the Explore page, navigate to the object that you want to unlink.
2On the row that contains the object, click Actions and select Unlink.
Working with multiple objects
You can select multiple objects to check in, check out, undo checkout, pull, or unlink.
The total size of the selected objects cannot exceed 50 MB.
You can select a project or folder or select multiple objects within a project or folder. When you include a project or folder or multiple objects in a source control action, a preview page appears that shows you the expected results of the action if you proceed. If an object listed on the preview page is not source controlled, it will be ignored. If an object is checked out by another user or you do not have permission to update the object, the status on the preview page shows that the action will fail. You can opt to remove any of the objects before you continue.
For example, in the Default project, you select the EastDist folder and the DistMapping asset to check out. The preview page includes the DistMapping asset, the EastDist folder, and all of the objects in the EastDist folder. You don't want to check out the East_ST asset so you clear its check box before you proceed with the checkout action. The following image shows the preview page:
If you select multiple objects for a pull, the preview page lists all of the versions in the repository.
Note: You can't delete multiple objects in one transaction.
Viewing source control columns on the Explore page
If your organization has any objects that are source controlled, the Explore page displays an additional column that indicates whether an object is checked in, checked out, or is not source controlled.
In the following image, the blue and red icon indicates that the Mapping24 object is checked out:
Additional source control columns are available but are not displayed by default. You might want to customize the Explore page to show all of the source control-related columns. This way you can easily identify source controlled objects, and you can use the columns to filter and sort source controlled objects on the page.
You can add the following source control-related columns to the Explore page:
•Last Pull Time
•Checked Out By
•Last Check In
•Git Hash
•Repository URL
•Repository Branch
To display these columns, right-click a column heading and select the columns that you want to add, as shown in the following image:
Source control best practices
To use source control effectively, use the following guidelines as best practices.
Adhere to the following guidelines as you develop and work with assets:
Guidelines for managing dependencies
Use the following guidelines to manage assets with dependencies:
- Create connections and runtime environments before you pull assets from the repository.
When required connections and runtime environments exist in the target organization, you can run tasks immediately after you pull them from the repository.
- Ensure that reusable assets such as mappings and components are present in the repository before you use them.
Informatica Intelligent Cloud Services does not allow you to save an asset such as a mapping task when the dependent mapping does not exist in the organization.
Guidelines for checking in and checking out assets
Use the following guidelines when you check in and check out assets:
- When you rename or move an asset, check out the asset's first-level dependent assets and include them in the same check-in.
For example, if you want to rename a mapping that a mapping task uses, and the mapping task is used in a taskflow, check out the mapping and the mapping task. You don't need to check out the taskflow. After you rename the mapping, check in the mapping and the mapping task in one check-in action.
- Enter comments when you check in assets.
When you check in assets, you might enter a release tag name in the Summary field and enter more descriptive comments in the Description field. When you do this, the Git Summary field in Informatica Intelligent Cloud Services shows the release tag that is associated with the asset.
- When you check in multiple assets at one time, limit the number of assets to 1000 or fewer.
Checking in more than 1000 assets at one time can degrade performance between Informatica Intelligent Cloud Services and the Git repository service.