diff --git a/plugins/git-release-manager/src/GitReleaseManager.tsx b/plugins/git-release-manager/src/GitReleaseManager.tsx
index 2b9cb99212..48a82fccdc 100644
--- a/plugins/git-release-manager/src/GitReleaseManager.tsx
+++ b/plugins/git-release-manager/src/GitReleaseManager.tsx
@@ -76,14 +76,11 @@ export function GitReleaseManager(props: GitReleaseManagerProps) {
return ;
}
- if (!userResponse.value?.username) {
+ if (!userResponse.value?.user.username) {
return Unable to retrieve username;
}
- const user = {
- username: userResponse.value.username,
- email: userResponse.value.email,
- };
+ const user = userResponse.value.user;
return (
@@ -92,7 +89,7 @@ export function GitReleaseManager(props: GitReleaseManagerProps) {
-
+
{isProjectValid(project) && }
diff --git a/plugins/git-release-manager/src/api/GitReleaseApiClient.ts b/plugins/git-release-manager/src/api/GitReleaseApiClient.ts
index 573010f5f0..0e7a7bc35c 100644
--- a/plugins/git-release-manager/src/api/GitReleaseApiClient.ts
+++ b/plugins/git-release-manager/src/api/GitReleaseApiClient.ts
@@ -118,8 +118,10 @@ export class GitReleaseApiClient implements GitReleaseApi {
const userResponse = await octokit.users.getAuthenticated();
return {
- username: userResponse.data.login,
- email: userResponse.data.email ?? undefined,
+ user: {
+ username: userResponse.data.login,
+ email: userResponse.data.email ?? undefined,
+ },
};
};
@@ -523,8 +525,10 @@ export interface GitReleaseApi {
getUser: (
args: OwnerRepo,
) => Promise<{
- username: string;
- email?: string;
+ user: {
+ username: string;
+ email?: string;
+ };
}>;
getRecentCommits: (
diff --git a/plugins/git-release-manager/src/features/RepoDetailsForm/Owner.test.tsx b/plugins/git-release-manager/src/features/RepoDetailsForm/Owner.test.tsx
index aed6fe3496..31121896e9 100644
--- a/plugins/git-release-manager/src/features/RepoDetailsForm/Owner.test.tsx
+++ b/plugins/git-release-manager/src/features/RepoDetailsForm/Owner.test.tsx
@@ -21,6 +21,7 @@ import {
mockApiClient,
mockCalverProject,
mockSearchCalver,
+ mockUser,
} from '../../test-helpers/test-helpers';
import { TEST_IDS } from '../../test-helpers/test-ids';
import { useProjectContext } from '../../contexts/ProjectContext';
@@ -41,14 +42,17 @@ jest.mock('../../contexts/ProjectContext', () => ({
project: mockCalverProject,
})),
}));
+jest.mock('../../contexts/UserContext', () => ({
+ useUserContext: jest.fn(() => ({
+ user: mockUser,
+ })),
+}));
describe('Owner', () => {
beforeEach(jest.clearAllMocks);
it('should render select', async () => {
- const { getByTestId } = render(
- ,
- );
+ const { getByTestId } = render();
expect(getByTestId(TEST_IDS.form.owner.loading)).toBeInTheDocument();
@@ -61,9 +65,7 @@ describe('Owner', () => {
project: { ...mockCalverProject, owner: '' },
});
- const { getAllByTestId, getByTestId } = render(
- ,
- );
+ const { getAllByTestId, getByTestId } = render();
expect(getByTestId(TEST_IDS.form.owner.loading)).toBeInTheDocument();
@@ -95,9 +97,7 @@ describe('Owner', () => {
throw new Error('Kaboom');
});
- const { getByTestId } = render(
- ,
- );
+ const { getByTestId } = render();
expect(getByTestId(TEST_IDS.form.owner.loading)).toBeInTheDocument();
await waitFor(() => screen.getByTestId(TEST_IDS.form.owner.error));
diff --git a/plugins/git-release-manager/src/features/RepoDetailsForm/Owner.tsx b/plugins/git-release-manager/src/features/RepoDetailsForm/Owner.tsx
index 36d63d2b47..0d8a23efb9 100644
--- a/plugins/git-release-manager/src/features/RepoDetailsForm/Owner.tsx
+++ b/plugins/git-release-manager/src/features/RepoDetailsForm/Owner.tsx
@@ -32,10 +32,12 @@ import { TEST_IDS } from '../../test-helpers/test-ids';
import { useFormClasses } from './styles';
import { useProjectContext } from '../../contexts/ProjectContext';
import { useQueryHandler } from '../../hooks/useQueryHandler';
+import { useUserContext } from '../../contexts/UserContext';
-export function Owner({ username }: { username: string }) {
+export function Owner() {
const pluginApiClient = useApi(gitReleaseManagerApiRef);
const { project } = useProjectContext();
+ const { user } = useUserContext();
const formClasses = useFormClasses();
const navigate = useNavigate();
const { getQueryParamsWithUpdates } = useQueryHandler();
@@ -43,7 +45,7 @@ export function Owner({ username }: { username: string }) {
const { loading, error, value } = useAsync(() => pluginApiClient.getOwners());
const owners = value?.owners ?? [];
const customOwnerFromUrl = !owners
- .concat(['', username])
+ .concat(['', user.username])
.includes(project.owner);
return (
@@ -80,8 +82,8 @@ export function Owner({ username }: { username: string }) {
None
-