def METHOD_NAME(self, request: Request) -> HttpResponse | None:
    heroku_hmac = request.headers.get("Heroku-Webhook-Hmac-SHA256")
    if not self.is_valid_signature(request.body.decode("utf-8"), heroku_hmac):
        logger.info("heroku.webhook.invalid-signature", extra={"project_id": self.project.id})
        return HttpResponse(status=401)
    body = json.loads(request.body)
    data = body.get("data")
    email = data.get("user", {}).get("email") or data.get("actor", {}).get("email")
    users = user_service.get_many_by_email(
        emails=[email],
        organization_id=self.project.organization_id,
        is_verified=False,
    )
    user = users[0] if users else None
    if user is None:
        logger.info(
            "owner.missing",
            extra={
                "organization_id": self.project.organization_id,
                "project_id": self.project.id,
                "email": email,
            },
        )
    slug = data.get("slug")
    if not slug:
        logger.info("heroku.payload.missing-commit", extra={"project_id": self.project.id})
        return HttpResponse(status=401)
    commit = slug.get("commit")
    app_name = data.get("app", {}).get("name")
    if body.get("action") == "update":
        if app_name:
            self.finish_release(
                version=commit,
                url=f"http://{app_name}.herokuapp.com",
                owner_id=user.id if user else None,
            )
        else:
            self.finish_release(version=commit, owner_id=user.id if user else None)
    return None