bin/gen_release_notes.py: don't fail if "Closes" refers to an MR
Sometimes a tag "Closes:" in a commit may refer to a merge request
instead of an issue. Examples of such commits:
34319c7d84 "ci/freedreno: disable antichambers trace"
998122d9c2
"mesa: fix GL_INVALID_OPERATION in glEGLImageTargetTexStorageEXT"
Avoid failing on these by explicitly checking that the URL refers to an
issue
Cc: mesa-stable
Signed-off-by: Konstantin Kharlamov <Hi-Angel@yandex.ru>
Reviewed-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20241>
This commit is contained in:
@@ -195,7 +195,11 @@ async def parse_issues(commits: str) -> typing.List[str]:
|
|||||||
for line in reversed(out):
|
for line in reversed(out):
|
||||||
if line.startswith('Closes:'):
|
if line.startswith('Closes:'):
|
||||||
bug = line.lstrip('Closes:').strip()
|
bug = line.lstrip('Closes:').strip()
|
||||||
if bug.startswith('https://gitlab.freedesktop.org/mesa/mesa'):
|
if (bug.startswith('https://gitlab.freedesktop.org/mesa/mesa')
|
||||||
|
# Avoid parsing "merge_requests" URL. Note that a valid issue
|
||||||
|
# URL may or may not contain the "/-/" text, so we check if
|
||||||
|
# the word "issues" is contained in URL.
|
||||||
|
and '/issues' in bug):
|
||||||
# This means we have a bug in the form "Closes: https://..."
|
# This means we have a bug in the form "Closes: https://..."
|
||||||
issues.append(os.path.basename(urllib.parse.urlparse(bug).path))
|
issues.append(os.path.basename(urllib.parse.urlparse(bug).path))
|
||||||
elif ',' in bug:
|
elif ',' in bug:
|
||||||
|
@@ -148,6 +148,22 @@ async def test_gather_commits():
|
|||||||
''',
|
''',
|
||||||
['3456', '3457', '3458'],
|
['3456', '3457', '3458'],
|
||||||
),
|
),
|
||||||
|
(
|
||||||
|
'''\
|
||||||
|
Without /-/
|
||||||
|
|
||||||
|
Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/36
|
||||||
|
''',
|
||||||
|
['36'],
|
||||||
|
),
|
||||||
|
(
|
||||||
|
'''\
|
||||||
|
Ignore merge_requests
|
||||||
|
|
||||||
|
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20241
|
||||||
|
''',
|
||||||
|
[],
|
||||||
|
),
|
||||||
])
|
])
|
||||||
async def test_parse_issues(content: str, bugs: typing.List[str]) -> None:
|
async def test_parse_issues(content: str, bugs: typing.List[str]) -> None:
|
||||||
mock_com = mock.AsyncMock(return_value=(textwrap.dedent(content).encode(), ''))
|
mock_com = mock.AsyncMock(return_value=(textwrap.dedent(content).encode(), ''))
|
||||||
|
Reference in New Issue
Block a user