diff --git a/packages/eslint-plugin-pf-codemods/src/rules/v6/componentGroupsNotAuthorizedRenameProps/component-groups-notAuthorized-rename-props.md b/packages/eslint-plugin-pf-codemods/src/rules/v6/componentGroupsNotAuthorizedRenameProps/component-groups-notAuthorized-rename-props.md
new file mode 100644
index 000000000..d614bc5d2
--- /dev/null
+++ b/packages/eslint-plugin-pf-codemods/src/rules/v6/componentGroupsNotAuthorizedRenameProps/component-groups-notAuthorized-rename-props.md
@@ -0,0 +1,17 @@
+### component-groups-notAuthorized-rename-props [(react-component-groups/#145)](https://github.com/patternfly/react-component-groups/pull/145)
+
+In react-component-groups, we've renamed NotAuthorized's props `description` to `bodyText` and `title` to `titleText`.
+
+#### Examples
+
+In:
+
+```jsx
+%inputExample%
+```
+
+Out:
+
+```jsx
+%outputExample%
+```
diff --git a/packages/eslint-plugin-pf-codemods/src/rules/v6/componentGroupsNotAuthorizedRenameProps/component-groups-notAuthorized-rename-props.test.ts b/packages/eslint-plugin-pf-codemods/src/rules/v6/componentGroupsNotAuthorizedRenameProps/component-groups-notAuthorized-rename-props.test.ts
new file mode 100644
index 000000000..4c09f68b9
--- /dev/null
+++ b/packages/eslint-plugin-pf-codemods/src/rules/v6/componentGroupsNotAuthorizedRenameProps/component-groups-notAuthorized-rename-props.test.ts
@@ -0,0 +1,93 @@
+const ruleTester = require("../../ruletester");
+import * as rule from "./component-groups-notAuthorized-rename-props";
+
+const renameMap = {
+ description: "bodyText",
+ title: "titleText",
+};
+
+const errors = Object.entries(renameMap).map(([oldName, newName]) => ({
+ message: `The ${oldName} prop for NotAuthorized has been renamed to ${newName}.`,
+ type: "JSXOpeningElement",
+}));
+
+ruleTester.run("component-groups-notAuthorized-rename-props", rule, {
+ valid: [
+ {
+ code: ``,
+ },
+ {
+ code: ``,
+ },
+ {
+ code: `import { NotAuthorized } from '@patternfly/react-component-groups'; `,
+ },
+ ],
+ invalid: [
+ {
+ code: `import { NotAuthorized } from '@patternfly/react-component-groups';
+ `,
+ output: `import { NotAuthorized } from '@patternfly/react-component-groups';
+ `,
+ errors,
+ },
+ {
+ code: `import NotAuthorized from '@patternfly/react-component-groups/dist/cjs/NotAuthorized/index';
+ `,
+ output: `import NotAuthorized from '@patternfly/react-component-groups/dist/cjs/NotAuthorized/index';
+ `,
+ errors,
+ },
+ {
+ code: `import NotAuthorized from '@patternfly/react-component-groups/dist/esm/NotAuthorized/index';
+ `,
+ output: `import NotAuthorized from '@patternfly/react-component-groups/dist/esm/NotAuthorized/index';
+ `,
+ errors,
+ },
+ {
+ code: `import NotAuthorized from '@patternfly/react-component-groups/dist/dynamic/NotAuthorized';
+ `,
+ output: `import NotAuthorized from '@patternfly/react-component-groups/dist/dynamic/NotAuthorized';
+ `,
+ errors,
+ },
+ {
+ code: `import NotAuth from '@patternfly/react-component-groups/dist/dynamic/NotAuthorized';
+ `,
+ output: `import NotAuth from '@patternfly/react-component-groups/dist/dynamic/NotAuthorized';
+ `,
+ errors,
+ },
+ ],
+});
diff --git a/packages/eslint-plugin-pf-codemods/src/rules/v6/componentGroupsNotAuthorizedRenameProps/component-groups-notAuthorized-rename-props.ts b/packages/eslint-plugin-pf-codemods/src/rules/v6/componentGroupsNotAuthorizedRenameProps/component-groups-notAuthorized-rename-props.ts
new file mode 100644
index 000000000..01b27666a
--- /dev/null
+++ b/packages/eslint-plugin-pf-codemods/src/rules/v6/componentGroupsNotAuthorizedRenameProps/component-groups-notAuthorized-rename-props.ts
@@ -0,0 +1,25 @@
+import { renameProps } from "../../helpers";
+import { Renames } from "../../helpers/renameSinglePropOnNode";
+
+// https://github.com/patternfly/react-component-groups/pull/145
+
+const formatMessage = (oldPropName: string, newPropName: string) =>
+ `The ${oldPropName} prop for NotAuthorized has been renamed to ${newPropName}.`;
+
+const renames: Renames = {
+ NotAuthorized: {
+ description: {
+ newName: "bodyText",
+ message: formatMessage("description", "bodyText"),
+ },
+ title: {
+ newName: "titleText",
+ message: formatMessage("title", "titleText"),
+ },
+ },
+};
+
+module.exports = {
+ meta: { fixable: "code" },
+ create: renameProps(renames, "@patternfly/react-component-groups"),
+};
diff --git a/packages/eslint-plugin-pf-codemods/src/rules/v6/componentGroupsNotAuthorizedRenameProps/componentGroupsNotAuthorizedRenamePropsInput.tsx b/packages/eslint-plugin-pf-codemods/src/rules/v6/componentGroupsNotAuthorizedRenameProps/componentGroupsNotAuthorizedRenamePropsInput.tsx
new file mode 100644
index 000000000..aae86399f
--- /dev/null
+++ b/packages/eslint-plugin-pf-codemods/src/rules/v6/componentGroupsNotAuthorizedRenameProps/componentGroupsNotAuthorizedRenamePropsInput.tsx
@@ -0,0 +1,5 @@
+import { NotAuthorized } from "@patternfly/react-component-groups";
+
+export const ComponentGroupsNotAuthorizedRenamePropsInput = () => (
+
+);
diff --git a/packages/eslint-plugin-pf-codemods/src/rules/v6/componentGroupsNotAuthorizedRenameProps/componentGroupsNotAuthorizedRenamePropsOutput.tsx b/packages/eslint-plugin-pf-codemods/src/rules/v6/componentGroupsNotAuthorizedRenameProps/componentGroupsNotAuthorizedRenamePropsOutput.tsx
new file mode 100644
index 000000000..3b42c7f2d
--- /dev/null
+++ b/packages/eslint-plugin-pf-codemods/src/rules/v6/componentGroupsNotAuthorizedRenameProps/componentGroupsNotAuthorizedRenamePropsOutput.tsx
@@ -0,0 +1,5 @@
+import { NotAuthorized } from "@patternfly/react-component-groups";
+
+export const ComponentGroupsNotAuthorizedRenamePropsInput = () => (
+
+);