diff --git a/.changeset/honest-suits-approve.md b/.changeset/honest-suits-approve.md
new file mode 100644
index 0000000000..59cdb09762
--- /dev/null
+++ b/.changeset/honest-suits-approve.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-git-release-manager': patch
+---
+
+Wrap each feature in custom feature arrays with an element containing a 'key' to avoid missing-key-warnings
diff --git a/plugins/git-release-manager/src/features/Features.test.tsx b/plugins/git-release-manager/src/features/Features.test.tsx
index cdef4f0d43..28bd9b6310 100644
--- a/plugins/git-release-manager/src/features/Features.test.tsx
+++ b/plugins/git-release-manager/src/features/Features.test.tsx
@@ -41,6 +41,10 @@ describe('Features', () => {
createRc: { omit: true },
promoteRc: { omit: true },
patch: { omit: true },
+ custom: {
+ // shouldn't trigger "missing key" warning in console
+ factory: () => [
Custom 1
, Custom 2
],
+ },
}}
/>,
);
diff --git a/plugins/git-release-manager/src/features/Features.tsx b/plugins/git-release-manager/src/features/Features.tsx
index b8386c41cc..69b255c1ee 100644
--- a/plugins/git-release-manager/src/features/Features.tsx
+++ b/plugins/git-release-manager/src/features/Features.tsx
@@ -89,6 +89,21 @@ export function Features({
);
}
+ let CustomFeatures =
+ features?.custom?.factory({
+ latestRelease: gitBatchInfo.value.latestRelease,
+ project,
+ releaseBranch: gitBatchInfo.value.releaseBranch,
+ repository: gitBatchInfo.value.repository,
+ }) ?? null;
+ if (Array.isArray(CustomFeatures)) {
+ CustomFeatures = CustomFeatures.map((CustomFeature, index) => (
+
+ {CustomFeature}
+
+ ));
+ }
+
return (
@@ -143,13 +158,7 @@ export function Features({
/>
)}
- {features?.custom?.factory &&
- features.custom.factory({
- latestRelease: gitBatchInfo.value.latestRelease,
- project,
- releaseBranch: gitBatchInfo.value.releaseBranch,
- repository: gitBatchInfo.value.repository,
- })}
+ {CustomFeatures}
);