Skip to content

Commit d2114e5

Browse files
author
Ella Rohm-Ensing
committed
feat: update connector builder project contributionInfo after contributing (#13897)
1 parent d8af275 commit d2114e5

File tree

2 files changed

+33
-2
lines changed

2 files changed

+33
-2
lines changed

airbyte-webapp/src/components/connectorBuilder/MenuBar/PublishModal.tsx

+19
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { useCallback, useEffect, useMemo, useState } from "react";
44
import { useFormContext, useWatch } from "react-hook-form";
55
import { FormattedMessage, useIntl } from "react-intl";
66
import { ReactMarkdown } from "react-markdown/lib/react-markdown";
7+
import { useParams } from "react-router-dom";
78
import { useUpdateEffect } from "react-use";
89
import * as yup from "yup";
910

@@ -20,11 +21,13 @@ import { Spinner } from "components/ui/Spinner";
2021
import { Text } from "components/ui/Text";
2122

2223
import {
24+
BuilderProjectWithManifest,
2325
GENERATE_CONTRIBUTION_NOTIFICATION_ID,
2426
useBuilderCheckContribution,
2527
useBuilderGenerateContribution,
2628
useGetBuilderProjectBaseImage,
2729
useListBuilderProjectVersions,
30+
useUpdateBuilderProject,
2831
} from "core/api";
2932
import { CheckContributionRead } from "core/api/types/ConnectorBuilderClient";
3033
import { useFormatError } from "core/errors";
@@ -427,6 +430,14 @@ const ContributeToAirbyte: React.FC<InnerModalProps> = ({ onClose, setPublishTyp
427430
const [imageNameError, setImageNameError] = useState<string | null>(null);
428431
const { mutateAsync: generateContribution, isLoading: isSubmittingContribution } = useBuilderGenerateContribution();
429432

433+
const { projectId } = useParams<{
434+
projectId: string;
435+
}>();
436+
if (!projectId) {
437+
throw new Error("Could not find project id in path");
438+
}
439+
const { mutateAsync: updateProject } = useUpdateBuilderProject(projectId);
440+
430441
const publishTypeSwitcher = <PublishTypeSwitcher selectedPublishType="marketplace" setPublishType={setPublishType} />;
431442

432443
if (isLoadingBaseImage) {
@@ -485,6 +496,14 @@ const ContributeToAirbyte: React.FC<InnerModalProps> = ({ onClose, setPublishTyp
485496
manifest_yaml: convertJsonToYaml(jsonManifestWithDescription),
486497
base_image: baseImage,
487498
});
499+
const newProject: BuilderProjectWithManifest = {
500+
name: values.name,
501+
manifest: jsonManifestWithDescription,
502+
yamlManifest: convertJsonToYaml(jsonManifestWithDescription),
503+
contributionPullRequestUrl: contribution.pull_request_url,
504+
contributionActorDefinitionId: contribution.actor_definition_id,
505+
};
506+
await updateProject(newProject);
488507
registerNotification({
489508
id: GENERATE_CONTRIBUTION_NOTIFICATION_ID,
490509
type: "success",

airbyte-webapp/src/core/api/hooks/connectorBuilderProject.ts

+14-2
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,8 @@ export interface BuilderProjectWithManifest {
7474
name: string;
7575
manifest?: DeclarativeComponentSchema;
7676
yamlManifest?: string;
77+
contributionPullRequestUrl?: string;
78+
contributionActorDefinitionId?: string;
7779
}
7880

7981
export const useListBuilderProjects = () => {
@@ -263,9 +265,19 @@ export const useUpdateBuilderProject = (projectId: string) => {
263265
const workspaceId = useCurrentWorkspaceId();
264266

265267
return useMutation<void, Error, BuilderProjectWithManifest>(
266-
({ name, manifest, yamlManifest }) =>
268+
({ name, manifest, yamlManifest, contributionActorDefinitionId, contributionPullRequestUrl }) =>
267269
updateConnectorBuilderProject(
268-
{ workspaceId, builderProjectId: projectId, builderProject: { name, draftManifest: manifest, yamlManifest } },
270+
{
271+
workspaceId,
272+
builderProjectId: projectId,
273+
builderProject: {
274+
name,
275+
draftManifest: manifest,
276+
yamlManifest,
277+
contributionActorDefinitionId,
278+
contributionPullRequestUrl,
279+
},
280+
},
269281
requestOptions
270282
),
271283
{

0 commit comments

Comments
 (0)