Go allows you to hand pick which revision of your materials you would like to deploy to your environment. This is a a very common requirement on larger projects which have multiple materials in their deployment pipeline. Sometimes you may wish to have control over which revision of the application is deployed to a particular environment (say UAT).
Consider the case where a deployment pipeline 'deploy_bookstore' has 2 materials - Material 'svn' and upstream pipeline 'bookstore'. It is very common to know that label, say "3.4-RELEASE" of the dependent pipeline 'bookstore' is stable. All the changes that you want right now in your UAT environment are made to material 'svn'. In such a scenario when you deploy "deploy_bookstore" to UAT, you might always want to select label "3.4-RELEASE" of pipeline 'bookstore' and the latest (or a known revision specified by your developer) of material 'svn'.
Once there are any new changes to any of the materials, Go will indicate to the user that newer revisions are available to deploy. You could use this information and deploy a custom build with hand picked revision or deploy the latest available revision.
Steps to select the revisions of materials you want to deploy
There are 3 reasons this can happen
If you always want to have the latest of all materials deployed to your environment, then this is how you can use Go to do it.
You can set secure variables in Go that gets passed along as environment variables to the executing task. You can use this feature to pass passwords to deploy scripts. For e.g., you can define a secure variable named 'DB_DEPLOY_PASSWORD' and the DB password as its value. This value will be encrypted by Go and passed along to the task.
Also, you can override secure variables when you use the 'Trigger With Options' feature.