diff --git a/blog/2026-03-27-ado-pr-commit-after-merge/images/conventionalcommits.png b/blog/2026-03-27-ado-pr-commit-after-merge/images/conventionalcommits.png new file mode 100644 index 0000000..7f8068a Binary files /dev/null and b/blog/2026-03-27-ado-pr-commit-after-merge/images/conventionalcommits.png differ diff --git a/blog/2026-03-27-ado-pr-commit-after-merge/images/disablePrefixInADO.png b/blog/2026-03-27-ado-pr-commit-after-merge/images/disablePrefixInADO.png new file mode 100644 index 0000000..d627835 Binary files /dev/null and b/blog/2026-03-27-ado-pr-commit-after-merge/images/disablePrefixInADO.png differ diff --git a/blog/2026-03-27-ado-pr-commit-after-merge/images/featureRequest.png b/blog/2026-03-27-ado-pr-commit-after-merge/images/featureRequest.png new file mode 100644 index 0000000..0850d4c Binary files /dev/null and b/blog/2026-03-27-ado-pr-commit-after-merge/images/featureRequest.png differ diff --git a/blog/2026-03-27-ado-pr-commit-after-merge/images/manual.png b/blog/2026-03-27-ado-pr-commit-after-merge/images/manual.png new file mode 100644 index 0000000..15c32b5 Binary files /dev/null and b/blog/2026-03-27-ado-pr-commit-after-merge/images/manual.png differ diff --git a/blog/2026-03-27-ado-pr-commit-after-merge/index.mdx b/blog/2026-03-27-ado-pr-commit-after-merge/index.mdx new file mode 100644 index 0000000..e7e76e1 --- /dev/null +++ b/blog/2026-03-27-ado-pr-commit-after-merge/index.mdx @@ -0,0 +1,107 @@ +--- +title: "Merged PR 42: fix(Azure DevOps): Merge PR without prefix in commit message" +description: "Azure DevOps has recently added a new feature that allows you to remove the PR ID from the commit message after merging a pull request." +authors: [shpendkelmendi] +tags: [Azure DevOps, Conventional Commits, SemVer, Git, Pull Requests, DevOps] +image: ./images/conventionalcommits.png +--- + +import CenteredImage from '@site/src/components/Image'; + + + + + +I use Azure DevOps across many customer projects. I really like it. +One thing I didn't like is the message added to the beginning of the commit when you closed and merged your PR. +You can see it above in the image or in my title. Not so nice to read, right? I agree. + +## Why is this important? + +I like to have a clean commit history. +I like simple git graphs. +And I want to automate chores like deciding whether a new version is a patch, minor, or major increment. +That's why I like to use conventional commits which, enable semantic versioning (SemVer). + +Conventional commit is a simple and lightweight convention for your commit messages. +Here are some examples of conventional commit types and their impact on versioning: + +| Type | Example | Meaning | Version Impact | +|---------------|------------------------------------------------------------------------|-----------------------------------|---------------------------------------------| +| **feat** | `feat: login as guest with one-time passcode` | New feature | **Minor** → `1.0.0 → 1.1.0` | +| **fix** | `fix: correct device registration validation logic` | Bug fix | **Patch** → `1.0.0 → 1.0.1` | +| **chore** | `chore: update minor version` | Maintenance / small changes | **Patch** or **ignored** (config dependent) | +| **perf** | `perf: import up to 10 projects` | Performance improvement | **Patch** or **ignored** (config dependent) | +| **refactor!** | `refactor!: remove deprecated import endpoint` | Breaking change indicated with `!`| **Major** → `1.0.0 → 2.0.0` | + + +> If you need support writing conventional commits, try out [commitizen](https://commitizen-tools.github.io/commitizen/). + +The "Merged PR NUMBER" prefix added by Azure DevOps after merging a PR is not helpful. +So how can we fix this? Let's check our options. + +## Options for conventional commits + +I know three options when you want to use conventional commits with Azure DevOps. + +### Manually + +You can change the commit message by: + +1. Click on the **complete** button in your PR. +2. Click "**Customize merge commit message**". +3. Replace the commit message. + + + +But this is not a reliable way in a team. That's why this solution didn't work for our team, and we would not recommend it. + +### Workaround: Custom Script + +That's why we searched for alternatives. If you just want the commit history to be created correctly, +John Reilly describes an alternative approach in his [blog post](https://johnnyreilly.com/azure-devops-pull-requests-conventional-commits), using the Azure DevOps API, Node.js, and TypeScript. +He wrote a tool that uses the autocomplete feature to override the commit message before merging the PR. +So basically, what you have seen in the previous chapter by doing it manually. + +### Disable prefix in Azure DevOps Settings (New) + +This problem was seen and reported in [October 2018](https://developercommunity.visualstudio.com/t/Change-default-title-for-pull-request-co/365716#T-ND11055201): + + + +After endless complaints and a long waiting time, this [feature](https://learn.microsoft.com/en-us/azure/devops/release-notes/2026/sprint-270-update#new-repository-setting-for-pull-request-id-in-commit-messages) has been implemented and released (5. March). +You can disable the prefix message by: + +* Go to Project Settings +* Select Repos → Repositories +* Select a Repository +* Disable "Include PR ID in the completion commit message title by default." + +If you don't see this, you need to wait a few more weeks until this feature is available for you, too. + + + +## Conclusion + +Based on the feedback it's not only me, struggling with this design decision. So thanks to the team who took the time to realise this. +The feature is limited by disabling it per project or repository. You can not set this globally for all repositories in an organization. + +## Further Reading + +* [Conventional Commits](https://www.conventionalcommits.org) +* [Change default title for pull request commits to not include PR id - Developer Community](https://developercommunity.visualstudio.com/t/Change-default-title-for-pull-request-co/365716#T-ND11055201) +* [New Feature to disable PR ID in commit messages - Microsoft Learn](https://learn.microsoft.com/en-us/azure/devops/release-notes/2026/sprint-270-update#new-repository-setting-for-pull-request-id-in-commit-messages) +* [Blog post by John Reilly: Azure DevOps Pull Requests and Conventional Commits](https://johnnyreilly.com/azure-devops-pull-requests-conventional-commits) +* [Commitizen](https://commitizen-tools.github.io/commitizen/) \ No newline at end of file