api: toolchain: Check for package in linter findings.

The package isn't always avaialble (e.g. cargo_clippy), so conditionally
populate the package in the response.

BUG=b:291306460
TEST=./run_tests

Change-Id: Iadf3b280b5229c17d377c82021ce69b16ddb01bb
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/4702424
Auto-Submit: Alex Klein <saklein@chromium.org>
Commit-Queue: Alex Klein <saklein@chromium.org>
Tested-by: Alex Klein <saklein@chromium.org>
Reviewed-by: Ryan Beltran <ryanbeltran@chromium.org>
Commit-Queue: Ryan Beltran <ryanbeltran@chromium.org>
diff --git a/api/controller/toolchain.py b/api/controller/toolchain.py
index 6e8c325..afe5e04 100644
--- a/api/controller/toolchain.py
+++ b/api/controller/toolchain.py
@@ -464,16 +464,18 @@
                     line_end=location.line_end,
                 )
             )
+
+        pkg = PackageInfo()
+        if finding.package:
+            pkg.category = finding.package.category
+            pkg.package_name = finding.package.package
+            pkg.version = finding.package.version
         output_proto.findings.append(
             toolchain_pb2.LinterFinding(
                 message=finding.message,
                 locations=locations,
                 linter=LINTER_CODES[finding.linter],
-                package=PackageInfo(
-                    category=finding.package.category,
-                    package_name=finding.package.package,
-                    version=finding.package.version,
-                ),
+                package=pkg,
             )
         )