How not to have 'version=GBmaster' in Azure DevOps links - azure-devops

Azure DevOps urls to files and to wiki entries contain &version=GBmaster and &wikiVersion=GBwikiMaster respectively.
Is it possible to configure DevOps not to append it?
Today I get:
https://myorg.visualstudio.com/MyProject/_git/MyRepo?path=%2Fsrc%2FMyFile.cs&version=GBmaster
https://dev.azure.com/rbtech/Redback/_wiki/wikis/MyOrg.wiki?pagePath=%2MyPage&pageId=204&wikiVersion=GBwikiMaster
I wish for:
https://myorg.visualstudio.com/MyProject/_git/MyRepo?path=%2Fsrc%2FMyFile.cs
https://dev.azure.com/rbtech/Redback/_wiki/wikis/MyOrg.wiki?pagePath=%2MyPage&pageId=204

This is the default behavior of AzureDevop basically &version/ &wikiversion is denoted which branch the code/wiki is showing in the UI. Even if you don't provide the Version AzureDevOps will automatically append it to indicate which branch is chosen.
Let's say in your repo you have multiple branches means like master/ develop then based on the branch you choose the &version will change automatically like &version=GBmaster or &version=GBdevelop if you don't provide the default branch will be appended in the query.

Is it possible to configure DevOps not to append it?
No, there isn't a way to configure it. It's the expected behavior as Jayendran described, it's a tag which marks the file version from which branch.
If you want to see the contents of the files without the &version=GBmaster, then you can try call the REST API : Items - Get
For example:
https://{organization}.visualstudio.com/{Project}/_apis/git/repositories/{Repository ID}/items?path=WAP/WAP.Tests/Properties/AssemblyInfo.cs

Related

Can I automatically add comments to Azure DevOps PR based on code changes

Occasionally in our codebase we need to use an //eslint-disable to bypass a styleguide rule on a line. I would like to somehow automatically add a comment on each new instance of that in PRs, requiring the developer to explain why they bypassed the styleguide.
I've found this question referencing how to create a comment programmatically, but what I'm not sure how to do is identify the new code and parse it for a certain piece of text, then add comments on those particular lines where the text was found.
This is one of the approaches to ingest scripts & achieve what you want, wherein Expected outcome is:
On every pull request, a pre build validation pipeline kicks off & adds comments on the PR.
Create a script (powershell/python/bash) with following logic:
Find file names in the given branch which contains //eslint-disable
In the files above (1.), get the location/line number of //eslint-disable
Foreach file.LineNumber (wrote like that just for representation): add comment on file.LineNumber using Pull Request Threads API. See line parameter
Create a pipeline containing above script & add that pipeline as build validation or if you have an existing build validation process, add these scripts as tasks in that pipeline.
Hope this helps :)

How to Tag a branch Automatically in Azure DevOps using extension (Tag/Branch Git On Release)

With Azure DevOps release pipeline I'm planning to tag my brach Automatically by using the below extension which was created by Micheal Barry Tag\Branch Git on Release. See the below image:
I'm a bit wondering how to customize Tag name as UAT_$(date:yyyyMMdd)$(Rev:.r). Since this has limited documentation, this is how I try to add(See below)
How can I achieve this? Also, I'm more interested in how to fill these advanced options for this extension.
The $(date:yyyyMMdd)$(Rev:.r) is only supported in BuildNumber (Options=>Build Number Format) and ReleaseNumber (Options=>Release Name format). So if you put $(date:yyyyMMdd)$(Rev:.r) directly in Static Tag Name, the task can't evaluate its value.
Here're several directions to do what you want:
Use $(date:yyyyMMdd)$(Rev:.r) as release name format.
Then use UAT_$(Release.ReleaseName) in Static Tag Name input.
The result:
PS: If you set build pipeline as release pipeline's artifact source, you can also use $(Build.BuildNumber)/$(Build.DefinitionName) in your Release name format.
2.If you prefer to use Release-$(date:yyyyMMdd)$(Rev:.r) as release name format. Now since what you want is UAT_xxx, you need to use the Regex option:
Assuming your release name's instance is Release-20200518.5, now the tag would be UAT_20200518.5 if you configure the task following my inputs above.
In addition:
When release name format is $(date:yyyyMMdd)$(Rev:.r), you releases would be:
You can choose to use the Static Tag Name, check #1 above.
And when the name format is Release-$(date:yyyyMMdd)$(Rev:.r), you releases would be:
You should use regex option in that third-party task, check #2 above. About what is Regex see here, also there's many documents/blogs online about Regex topic...
You are using the wrong task in your pipeline. Would suggest using the git tag task, it works just fine to me and you can use your naming in the tag field
Git Tag Task
I find this extension much easier to setup and its satisfying our needs. So basically my git tag=assembly version. I am doing this every time we have a release on production environment(change assemblyInfo information and store that in Variable in the build definition). There are set of tasks on the marketplace to allow read from asemblyInfo and write to it. For the git tag task i just use the previously set Tag variable which basically is incremented by one every new release. You can check more in the pictures bellow
So i am actually just adding simple tag to mirror my assemblyVersion but in the tag message i am also adding my build informations that looks like this $(build.buildNumber)-$(Tag)
If you want to have a deeper look into azure devops predefined variables you can do that here Use predefined variables

Build pipeline - Get title of check-in that triggered pipeline

I'm creating a new build pipeline, it will be triggered on a new check-in on a specific branch on a TFVC repository. I want to get the title of the check-in every time the pipeline triggers and store it in the variables.
Additionally, after getting the title I want to perform some checks and depending on the result ( e.g. title matches a specific template) either stop the build pipeline or move on to the next steps
I've looked in Variables and Triggers tabs, but I didn't find anything useful. I've also looked in the predefined variables, but I didn't find anything related to my issue either.
You can try this variable Build.SourceVersion to get the number and Build.SourceVersionMessage to get the comments.
Build.SourceVersionMessage The comment of the commit or changeset. Note: This variable is available from TFS 2015.4.
See also: https://learn.microsoft.com/en-us/azure/devops/pipelines/build/variables?view=azure-devops&tabs=yaml

VSTS - Customize Release Name Format

I would like to customize my Release Name Format to use the build id of my release artifact.
I tried using $(release.artifact._myartifact.buildid) but that is just seen as string. How would I achieve this?
I also tried to configure a group variable but this gave the same result.
The solution to my question on customizing the vsts release name format was found on following page under Primary artifact variables
https://learn.microsoft.com/en-us/vsts/pipelines/release/variables?view=vsts&tabs=powershell
The predefined variable Build.Buildnumber is the same as Release.Artifacts.{Primary artifact alias}.BuildNumber.
In my case I used $(Build.BuildNumber)-$(rev:r) to get the desired result.
At first this was not working because I had multiple artifacts. Make sure you select the right artifact as primary artifact.

VSTS View of build status by branch

I'd like to create a report which is the build status of each of our builds by branch for all the current branches in my Git repository - much like on the right hand side of the the summary page but spanning all build definitions. I'm happy to use the API and create the report myself but I can't seem to find any way to filter the information by branch in the API. Here's the sort of query I want to perform:
https://(instance).visualstudio.com/(Project)/_apis/build/builds?definitions=(definitionID)&sourceBranch=(BranchID)
but sourceBranch doesn't seem to be a valid parameter
You need to specify branchName (replace / to %2F). For example (Dev-v1 branch):
https://XXX.visualstudio.com/[team project name]/_apis/build/Builds?branchName=refs%2Fheads%2FDev-v1&definitions=17