diff --git a/plugins/scaffolder/src/components/fields/RepoUrlPicker/GitlabRepoPicker.test.tsx b/plugins/scaffolder/src/components/fields/RepoUrlPicker/GitlabRepoPicker.test.tsx
index a8fb42cae3..8a1604dfee 100644
--- a/plugins/scaffolder/src/components/fields/RepoUrlPicker/GitlabRepoPicker.test.tsx
+++ b/plugins/scaffolder/src/components/fields/RepoUrlPicker/GitlabRepoPicker.test.tsx
@@ -31,6 +31,73 @@ describe('GitlabRepoPicker', () => {
}),
),
};
+
+ describe('GitlabRepoPicker - isDisabled', () => {
+ it('disables owner input when isDisabled is true', async () => {
+ const { getByRole } = await renderInTestApp(
+
+
+ ,
+ );
+
+ expect(getByRole('textbox')).toBeDisabled();
+ });
+
+ it('does not disable owner input when isDisabled is false', async () => {
+ const { getByRole } = await renderInTestApp(
+
+
+ ,
+ );
+
+ expect(getByRole('textbox')).not.toBeDisabled();
+ });
+
+ it('disables select input when allowedOwners are provided and isDisabled is true', async () => {
+ const allowedOwners = ['owner1', 'owner2'];
+ const { getByRole } = await renderInTestApp(
+
+
+ ,
+ );
+
+ expect(getByRole('combobox')).toBeDisabled();
+ });
+
+ it('does not disable select input when allowedOwners are provided and isDisabled is false', async () => {
+ const allowedOwners = ['owner1', 'owner2'];
+ const { getByRole } = await renderInTestApp(
+
+
+ ,
+ );
+
+ expect(getByRole('combobox')).not.toBeDisabled();
+ });
+ });
+
describe('owner field', () => {
it('renders a select if there is a list of allowed owners', async () => {
const allowedOwners = ['owner1', 'owner2'];
diff --git a/plugins/scaffolder/src/components/fields/RepoUrlPicker/GitlabRepoPicker.tsx b/plugins/scaffolder/src/components/fields/RepoUrlPicker/GitlabRepoPicker.tsx
index d97c9431ee..0d7c8b365a 100644
--- a/plugins/scaffolder/src/components/fields/RepoUrlPicker/GitlabRepoPicker.tsx
+++ b/plugins/scaffolder/src/components/fields/RepoUrlPicker/GitlabRepoPicker.tsx
@@ -33,7 +33,14 @@ export const GitlabRepoPicker = (
accessToken?: string;
}>,
) => {
- const { allowedOwners = [], state, onChange, rawErrors, accessToken } = props;
+ const {
+ allowedOwners = [],
+ state,
+ onChange,
+ rawErrors,
+ accessToken,
+ isDisabled,
+ } = props;
const [availableGroups, setAvailableGroups] = useState<
{ title: string; id: string }[]
>([]);
@@ -128,7 +135,7 @@ export const GitlabRepoPicker = (
),
})
}
- disabled={allowedOwners.length === 1}
+ disabled={isDisabled || allowedOwners.length === 1}
selected={owner}
items={ownerItems}
/>
@@ -147,10 +154,12 @@ export const GitlabRepoPicker = (
)}
freeSolo
+ disabled={isDisabled}
autoSelect
/>
)}