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
# 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(
owner=self.backend.users.pakfire,
)
+ # Create a bug report
+ await release._create_bug()
+
# Return the release
return release
"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
# 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):
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