Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Azure Devops integration #486

Open
cedrox opened this issue Jan 10, 2023 · 3 comments
Open

Azure Devops integration #486

cedrox opened this issue Jan 10, 2023 · 3 comments

Comments

@cedrox
Copy link

cedrox commented Jan 10, 2023

Detailed Description

Is there a way or at least a workaround to integrate with azure devops ?

Context

Generate release note on azure devops Wiki. in Universal artefact folder as a md file

Possible Implementation

Azure devops extension ?

Your Environment

  • Version Used: 5.1 GitVersion only is used
  • Edition Used (.NET Core, .NET Framework): linux on build agent. Win and Mac on dev computer
  • Operating System and version (Windows 10, Ubuntu 18.04): ubuntu, win 10 & 11, MacOS
@dazinator
Copy link
Member

Any joy?

@gep13
Copy link
Member

gep13 commented Jul 13, 2024

@cedrox @dazinator I am not a big user of Azure DevOps, so I am not the right person to attempt to take on this work.

Within GitReleaseManager, we now have both a GitHub and GitLab provider, which has been working well for what I use it for. Within both GitLab and GitHub, there is a similar structure in terms of issues, which are mapped to milestones, which can then flow into a release.

Within Azure DevOps (from the quick look that I have done just now), there doesn't seem to be the same structure. If we can agree a path forward to map the constructs of GitReleaseManager into Azure DevOps, then I think it would be a great addition.

As users of Azure DevOps, how would you see this coming together?

@dazinator
Copy link
Member

The construct I'd find useful would be release notes generation as an artifact.
I'll do my best to share as much hopefully relevent info as I can.

Builds

Work items in devops can be linked with git commits, and builds. This link happens automatically if you include the work item number in a git commit (similar to how it works with github - unsurprisingly). If that git commit also triggers a build you will see the build in devops, with that workitem linked, and the commit linked to work item.

SemVer

We use gitversion in Builds to ensure build numbers are semver. Not sure how relevent this is.

GitFlow

We use git flow branching model. Typically we are interested in having release notes for each release of master branch. We don't care about generating release notes for every CI build.

How we get release notes

There is a URL that takes this form:
https://dev.azure.com/[your org]/[your proj]/_traceability/runview/workitems?currentRunId=[build id]

When we use this with a build Id for a build of master branch, we are able to see the total list of workitems that were merged in the git flow release to master - so this is the complete set of items in this release.

Our product team uses this link to manually create some release notes which they circulate.

What I'd like to accomplish

I'd like to be able to run some tool during a build (or release) pipeline, with this build Id as an argument, and have it ingest these work items from azure devops and output some release notes artifact to disk. With that I could then achieve things like the following (outside the responsibility of the GRM tool)

  • upload that as build artifact for prod team to find.
  • Add a subsequent build step that creates a wiki page from this file (OP desires this) so that it could be revised and edited.

Releases (Side note).

In devops, aside from build pipelines, there are also release pipelines which are purely edited through the UI. A yaml build pipeline when it completes could be a trigger for such a release pipeline. For example when a build of the master branch completes, a release pipeline can be triggered which would be used to deploy the assets through to staging, prod etc. I mention this because I could see this tool also being used in a Release pipeline instead of just a yaml build pipeline, with the build id that triggered the release.

Other info

DevOps doesn't have milestones exactly.. workitems can have parents and children, which can have start and end dates. It is pretty customisable here so not every project may use the same model / structure. Each project must chose a "process model" to use and custom ones can be derived from the standard ones, and then tailored. I am most familiar with the "Agile" process model, which is where you typically have the following work item types: Epics broken down into Features, broken down into User stories, broken down into Tasks. Typically the content for release note generation would be the user story level - although i guess you could also pull in the parent feature and the parent epic as useful headers / subheaders. Tasks would be too granular I suspect.

I am not familiar with what this project does for automation around milestones and whether any of that could apply here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants