From: Michael Tremer Date: Mon, 29 May 2023 14:13:35 +0000 (+0000) Subject: monitoring: Reference build in bug report X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=620f34f02cf4a8e2eb32b644004ab1832238b11d;p=pbs.git monitoring: Reference build in bug report Signed-off-by: Michael Tremer --- diff --git a/src/buildservice/releasemonitoring.py b/src/buildservice/releasemonitoring.py index 0bba4471..22daa5c8 100644 --- a/src/buildservice/releasemonitoring.py +++ b/src/buildservice/releasemonitoring.py @@ -39,7 +39,15 @@ log = logging.getLogger("pbs.releasemonitoring") ratelimiter = asyncio.Semaphore(value=4) BUG_DESCRIPTION = """\ -A new version of %(name)s has been released: %(version)s\ +A new version of %(name)s has been released: %(version)s + +This is an automatically created bug report by our release monitoring. +""" + +BUG_DESCRIPTION_WITH_BUILD = BUG_DESCRIPTION + """ +A build has been created to test this release: + + %(url)s """ BUG_DESCRIPTION_WITH_BUILD = BUG_DESCRIPTION + """\n @@ -414,9 +422,6 @@ class Monitoring(base.DataObject): # Add the release to cache self.releases.append(release) - # Create a bug report - await release._create_bug() - # Create a build if self.data.create_builds: await release._create_build( @@ -424,6 +429,9 @@ class Monitoring(base.DataObject): owner=self.backend.users.pakfire, ) + # Create a bug report + await release._create_bug() + # Return the release return release @@ -534,8 +542,12 @@ class Release(base.DataObject): "description" : BUG_DESCRIPTION_WITH_BUILD % \ { "name" : self.monitoring.name, - "version" : self.version + "version" : self.version, + "url" : self.backend.url_to(self.build.url), }, + + # Set the URL to point to the build + "url" : self.backend.url_to(self.build.url), } # Create the bug @@ -544,6 +556,15 @@ class Release(base.DataObject): # Store the bug ID self._set_attribute("bug_id", bug.id) + # Attach the diff (if we have one) + if self.diff: + await bug.attach( + filename="%s.patch" % self, + data=self.diff, + summary="Patch for %s" % self, + is_patch=True, + ) + return bug async def _close_bug(self, *args, **kwargs): @@ -585,13 +606,19 @@ class Release(base.DataObject): return self.backend.builds.get_by_id(self.data.build_id) def set_build(self, build): - if self.build: + if self.build and not self.build == build: raise AttributeError("Cannot reset build") self._set_attribute("build_id", build) build = lazy_property(get_build, set_build) + # Diff + + @property + def diff(self): + return self.data.diff + async def _create_build(self, build, owner): """ Creates a build