I also need to require to list the list of files modified in particular pull request in Azure DevOps services.
I have checked some threads, like List changed files of a Pull Request using powershell or git, but it not given the solution. Most of the answers are for github, not azure devops.
So, I'm wondering if there is such a direct git command to fetch it, and if not, how can this be achieved using the corresponding Azure Devops REST API script? Please help.
Background:
I created a pipeline which is triggered by the PR (Build Validation) on the SIT branch:

The configuration of the pipeline is as follow:

The ModifiedFileTest is the my test branch name, which based on the SIT branch:
The output:

If you have up to date branches in your local clone, the diff or the "merge request view" for branch feature into main is:
git diff origin/main...origin/feature # 3 dots, not a typo
note: the behavior of this syntax is documented in the "Description" section of git help diff
It basically shows the diff between origin/feature and "the point where it forked off origin/main", and all the platforms I know of (github, gitlab, azure devops, bitbucket ...) show this diff in their "Pull Request" view.
You can add any other suitable option to git diff, like --name-only or --name-status :
# list of files modified in 'feature':
git diff --name-only origin/main...origin/feature
# list+status of files modified in 'feature':
git diff --name-status origin/main...origin/feature
[update] you run this command in a pipeline (in your case: an AzureDevops piepeline)
A common gotcha in this setup is: by default, many job systems (github, gitlab, azure devops ...) will create only a shallow clone of your repo, which may have a truncated history (so: not all the commits) and a subset of branches (for example: only the branch relating to the active Merge Request).
git log branch-a..branch-b or git diff branch-a...branch-b implicitly require to have the history of both branches, at least down to the fork point between these two branches.So: if you keep seeing errors about branches that should exist, or a non existent merge base, you may either turn off the "shallow" feature on your jobs, or run a few explicit git fetch commands in your script:
git fetch origin SIT ModifiedFileTestgit fetch --deepen=100 origin SIT ModifiedFileTestIf you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With