ci: backports: check if a backport PR has a valid issue

This is an automated check for the Backports project to
require one or more `Fixes #<issue>` items in the body
of the pull request.

Fixes #46164

Signed-off-by: Christopher Friedt <cfriedt@fb.com>
diff --git a/.github/workflows/backport_issue_check.yml b/.github/workflows/backport_issue_check.yml
new file mode 100644
index 0000000..533d853
--- /dev/null
+++ b/.github/workflows/backport_issue_check.yml
@@ -0,0 +1,30 @@
+name: Backport Issue Check
+
+on:
+  pull_request_target:
+    branches:
+      - v*-branch
+
+jobs:
+  backport:
+    name: Backport Issue Check
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Check out source code
+        uses: actions/checkout@v2
+
+      - name: Install Python dependencies
+        run: |
+          sudo pip3 install -U setuptools wheel pip
+          pip3 install -U pygithub
+
+      - name: Run backport issue checker
+        env:
+          GITHUB_TOKEN: ${{ secrets.ZB_GITHUB_TOKEN }}
+        run: |
+          ./scripts/release/list_backports.py \
+            -o ${{ github.event.repository.owner.login }} \
+            -r ${{ github.event.repository.name }} \
+            -b ${{ github.event.pull_request.base.ref }} \
+            -p ${{ github.event.pull_request.number }}
diff --git a/scripts/release/list_backports.py b/scripts/release/list_backports.py
index da47568..8d72e43 100755
--- a/scripts/release/list_backports.py
+++ b/scripts/release/list_backports.py
@@ -254,8 +254,7 @@
                 self._pulls_without_an_issue.append(p)
                 continue
 
-            # FIXME: when we have upgrade to python3.9+, use "issue_map | issues_for_this_pr"
-            issue_map = {**issue_map, **issues_for_this_pr}
+            issue_map = issue_map | issues_for_this_pr
 
         issues = list(issue_map.values())