diff --git a/packages/eslint-plugin-pf-codemods/lib/rules/v5/alert-remove-titleHeadingLevel.js b/packages/eslint-plugin-pf-codemods/lib/rules/v5/alert-remove-titleHeadingLevel.js
new file mode 100644
index 000000000..3bde32ba4
--- /dev/null
+++ b/packages/eslint-plugin-pf-codemods/lib/rules/v5/alert-remove-titleHeadingLevel.js
@@ -0,0 +1,11 @@
+const { renameProp } = require('../../helpers');
+
+ // https://github.com/patternfly/patternfly-react/pull/8518
+ module.exports = {
+ meta: { fixable: 'code' },
+ create: renameProp(
+ 'Alert',
+ {'titleHeadingLevel': 'component'},
+ node => `titleHeadingLevel prop has been removed for ${node.name.name} and replaced with the component prop.`
+ ),
+ };
diff --git a/packages/eslint-plugin-pf-codemods/test/rules/v5/alert-remove-titleHeadingLevel.js b/packages/eslint-plugin-pf-codemods/test/rules/v5/alert-remove-titleHeadingLevel.js
new file mode 100644
index 000000000..d8d3c822a
--- /dev/null
+++ b/packages/eslint-plugin-pf-codemods/test/rules/v5/alert-remove-titleHeadingLevel.js
@@ -0,0 +1,24 @@
+const ruleTester = require('../../ruletester');
+const rule = require('../../../lib/rules/v5/alert-remove-titleHeadingLevel');
+
+ruleTester.run("alert-remove-titleHeadingLevel", rule, {
+ valid: [
+ {
+ code: `import { Alert } from '@patternfly/react-core'; `,
+ },
+ {
+ // No @patternfly/react-core import
+ code: ``,
+ }
+ ],
+ invalid: [
+ {
+ code: `import { Alert } from '@patternfly/react-core'; `,
+ output: `import { Alert } from '@patternfly/react-core'; `,
+ errors: [{
+ message: `titleHeadingLevel prop has been removed for Alert and replaced with the component prop.`,
+ type: "JSXOpeningElement",
+ }]
+ }
+ ]
+});
diff --git a/packages/pf-codemods/README.md b/packages/pf-codemods/README.md
index a94ea7490..2e36c279c 100644
--- a/packages/pf-codemods/README.md
+++ b/packages/pf-codemods/README.md
@@ -96,6 +96,22 @@ Out:
```
+### alert-replace-titleHeadingLevel [(#8518)](https://github.com/patternfly/patternfly-react/pull/8518)
+
+We've removed the `titleHeadlingLevel` prop and replaced it with the `component` prop.
+
+In:
+
+```jsx
+
+```
+
+Out:
+
+```jsx
+
+```
+
### applicationLauncher-warn-input [(#8293)](https://github.com/patternfly/patternfly-react/pull/8293)
We've updated the internal input in ApplicationLauncher to the PatternFly SearchInput. Any relative selectors, such as in unit tests, may need to be updated.
diff --git a/test/test.tsx b/test/test.tsx
index 677d54f2b..eaa60bcb7 100644
--- a/test/test.tsx
+++ b/test/test.tsx
@@ -37,6 +37,7 @@ const isRead = true;
const newTheme = getCustomTheme("1", "2", "3");
<>
+