Skip to content

[BUG]: GitHubReleaseV1: Auto-generated release notes can reference incorrect issues #21112

Open
@ryantrem

Description

@ryantrem

New issue checklist

Task name

GitHubReleaseV1

Task version

1.x

Issue Description

We use the Azure DevOps GitHub Release task (in an ADO classic (not yaml) pipeline) for Babylon.js. What we are finding is that when a PR is merged, and it contains a commit that references an issue or PR from the fork in which it was authored, that issue # gets included in the release notes, though in that context (the original fork) it will reference a completely different issue.

As an example, you can see the release notes here: https://github.com/BabylonJS/Babylon.js/releases/tag/8.12.1
These reference issue #5, which in fact is in a commit message here: https://github.com/BabylonJS/Babylon.js/pull/15869/commits
But as mentioned, this was just a PR reference within a fork (e.g. intra-fork PR, not a PR to the main fork), it is not a reference to issue #5 in the original fork where the actual PR is being merged.

Environment type (Please select at least one enviroment where you face this issue)

  • Self-Hosted
  • Microsoft Hosted
  • VMSS Pool
  • Container

Azure DevOps Server type

dev.azure.com (formerly visualstudio.com)

Azure DevOps Server Version (if applicable)

No response

Operation system

ubuntu-latest

Relevant log output

There is no error message. As mentioned above, it is simply picking up invalid related issues for the release notes.

Full task logs with system.debug enabled

Starting: GitHub release (create)

Task : GitHub Release
Description : Create, edit, or delete a GitHub release
Version : 1.248.1
Author : Microsoft Corporation
Help : https://aka.ms/AA5vv5o

Searching for tags associated with target commit: master
Found a tag for target commit: master
##[warning]Error occured while parsing the labels. For yaml syntax see: https://aka.ms/AA3m1bq
Computing changes made in this release...
Fetching the latest published release...
Found the latest published release: https://github.com/BabylonJS/Babylon.js/releases/tag/8.11.0
Fetching the list of commits since the last published release...
Found the list of changes.
Changes computed successfully.
Release notes file: /home/vsts/work/1/s is a directory and not a file.
Creating a release for tag: 8.12.1
Uploading assets...
Searching for file(s) matching '/home/vsts/work/1/a/cdnSnapshot.zip'.
Uploading file: '/home/vsts/work/1/a/cdnSnapshot.zip'.
Uploaded file successfully: '/home/vsts/work/1/a/cdnSnapshot.zip'
All assets uploaded successfully.
Release created successfully at https://github.com/BabylonJS/Babylon.js/releases/tag/8.12.1
Finishing: GitHub release (create)

Repro steps

1. Fork some repo
2. Within that fork, make some changes in a new branch (BranchA)
3. Within that fork, create another branch (BranchB) off of the first branch (BranchA) with some additional changes
4. Create a PR to merge the BranchB into the BranchA (this is all still within the fork), and merge this PR
5. Create a PR to merge BranchA into the main branch of the main fork, and merge this PR
6. Create a new release, using the GitHub Release ADO task
7. Observe that the release notes reference an issue # that is the PR # of the first intra-fork PR, and that issue # is effectively a random issue within the main fork, and thus is nonsense in the context of the release notes

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions