Introduction
I am sure everyone is using the git feature of vRO 8.x and you probably be pushing & pulling your vRO content across your DEV, STAGING, UAT & PROD environments. The question is, “Are you using .gitignore
while pushing code from vRO? and why do you need it?”. This question was asked in vRO community (link here), and since the comment that I made answered the query, I thought I should write about it. Let’s see how .gitignore
can ease your life during code promotions and gives you fluidity to have environment specific values safe as well as keeps the gibberish away from PROD vRO etc. and keeps your assembly vRO’s codebase clean and compact.
Note If you are looking to setup git in vRealize Orchestrator, follow this official link https://blogs.vmware.com/management/2022/05/git-repository-integration-in-vrealize-orchestrator.html.
Advantages
I will not go in details on how .gitignore
works. You can learn more about .gitignore
online. Fundamentally, .gitignore
allows you to exclude specific files or directories from being pushed to the remote repository. Hence, using .gitignore can drastically improve the performance of your CI\CD pipelines. For vRealize Orchestrator, I have come across mainly following types of files that I want to exclude:
- Test actions & workflows: Development generally relies on hits & trials. This leaves a lot of post-development debris.
- Environment specific assets like Configuration elements: This may include passwords or API keys.
- Packages: Since you have git-power, you don’t really need packages to move your code and hence, if you are using them, it’s probably something not as critical.
- Default Library content: Why would you copy something which is already there at first place.
- Multi Node Workflows: These dummy workflows doesn’t need to push across (starts with
VCO@
). - Test Script Environments: The test script environments for polyglot actions etc.
- Polyglot ActionModules: All the test actions that uses Python, Nodejs or PowerCLI.
Question? Can you think of any other type of file that should be ignored? Comment down your answer.
You can use literal file names, wildcard symbols, etc to get them listed. Also, you can use negating patterns. A negating pattern is a pattern that starts with an exclamation mark (!
) negates (re-include) any file that is ignored by the previous pattern. The exception to this rule is to re-include a file if its parent directory is excluded.
Procedure
In the vRO, Go to repository which is already setup under Administration -> Git Repositories.

In our case, it will be github.com/imtrinity94/cloudblogger.co.in
.

Simply, just create a .gitignore file in the root of your repo branch and list down all the files you want to ignore like
# Default Resource Elements
Resources/Library/*
# Library Workflows
Workflows/Library
# Environment Specific variables
Configurations/Vault/API Keys
# Negating pattern to explicitly include tenant specific information
!Configurations/Tenants/*
# Multi-Node Workflows
Workflows/VCO@*
# Packages
**/Packages/
# Test actions
Actions/org/mayank/test
The other way round is to ignore everything and use negating pattern to include very specific things.
# All packages, JavaScript actions, resources, configurations, policies, Polyglot action bundles (.py, .ps1 & node.js) and Workflows
**/Packages/
**/Actions/
**/Resources/
**/Configurations/
**/ActionBundles/
**/Workflows/
**/Policy Templates/
This will avoid all the packages, resources and configurations to be committed to the corresponding repo.
This should be enough. If you want to be more precise, The .gitignore
tutorial is here https://www.atlassian.com/git/tutorials/saving-changes/gitignore
Limitations
- If you add
.gitignore
after pushing everything even once, the.gitignore
will work for new files but will still track those existing files. - You may lose version control on ignored objects.
Flush Git from vRO
In case, you have already set up git in your vRO and want to do a fresh start due to unwanted tracking of files or being stuck in an undesirable git state, you can locally remove the git config from your vRO by deleting the below folder. Use it with caution though.
/data/vco/usr/lib/vco/app-server/data/git/__SYSTEM.git
Available on gitignore.io
As we all know https://gitignore.io is the largest collection of .gitignore
files, I thought why shouldn’t I add vRO to their list as well. That’s why I created a pull request here at https://github.com/toptal/gitignore/pull/460 & it got approved. Now, if you got there and search for vRealizeOrchestrator
, you will get the .gitignore
file ready to be consumed in your projects.

That’s it in this post. Let me know what you think about it in the comments.
Leave a Reply