Asset Management > Asset Management > Source control
  

Source control

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:
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:

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:
    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:
The preview page shows that a folder and several assets will be included in the pull. The status for the folder is "Reuse existing object." When a folder with the same name already exists, it is reused. The status for the assets is "Overwrite existing object." When an asset already exists in the organization, the pull will overwrite it using the Git version that you select.
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:

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:
    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.
For more information about the pull action, see Source control pulls.

Undoing a checkout

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:
The Check Out preview page shows an EastDist folder and the assets contained in the EastDist folder, and the DistMapping asset that is in the Default folder. All of the objects are selected except for the East_ST asset. The Status column shows that the check out will be successful for each object.
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:
The Explore page shows three assets. A blue and red icon indicates that the first asset is checked out. The green icon indicates that the second and third assets are checked in.
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:
To display these columns, right-click a column heading and select the columns that you want to add, as shown in the following image:
The Explore page shows a list of columns with a check mark by each column that currently displays on the Explore page.

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:
Guidelines for checking in and checking out assets
Use the following guidelines when you check in and check out assets: