misc: finalized docs and other details
@@ -1694,7 +1694,6 @@ export const integrationAuthServiceFactory = ({
|
|||||||
}));
|
}));
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
logger.error(error);
|
logger.error(error);
|
||||||
return [];
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 68 KiB |
|
Before Width: | Height: | Size: 104 KiB |
|
Before Width: | Height: | Size: 119 KiB |
|
Before Width: | Height: | Size: 176 KiB |
|
Before Width: | Height: | Size: 290 KiB |
|
Before Width: | Height: | Size: 162 KiB After Width: | Height: | Size: 494 KiB |
|
After Width: | Height: | Size: 537 KiB |
|
After Width: | Height: | Size: 538 KiB |
|
Before Width: | Height: | Size: 339 KiB After Width: | Height: | Size: 555 KiB |
@@ -1,33 +0,0 @@
|
|||||||
---
|
|
||||||
title: "CircleCI Context"
|
|
||||||
description: "How to sync secrets from Infisical to CircleCI Contexts"
|
|
||||||
---
|
|
||||||
|
|
||||||
Prerequisites:
|
|
||||||
|
|
||||||
- Set up and add envars to [Infisical Cloud](https://app.infisical.com)
|
|
||||||
|
|
||||||
<Steps>
|
|
||||||
<Step title="CircleCI API Token">
|
|
||||||
Obtain an API token in User Settings > Personal API Tokens
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
Navigate to your project's integrations tab in Infisical.
|
|
||||||
|
|
||||||

|
|
||||||
<Tip>If you already have other integrations setup, click "Add Integration" on the top right corner to add the CircleCi Context integration.</Tip>
|
|
||||||
|
|
||||||
Press on the CircleCI Contexts tile and input your CircleCI API token to grant Infisical access to your CircleCI account.
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
</Step>
|
|
||||||
<Step title="Start integration">
|
|
||||||
Select which Infisical environment secrets you want to sync to which CircleCI Context and press create integration to start syncing secrets to CircleCI.
|
|
||||||
|
|
||||||

|
|
||||||

|
|
||||||
|
|
||||||
</Step>
|
|
||||||
</Steps>
|
|
||||||
@@ -11,21 +11,30 @@ Prerequisites:
|
|||||||
<Step title="Authorize Infisical for CircleCI">
|
<Step title="Authorize Infisical for CircleCI">
|
||||||
Obtain an API token in User Settings > Personal API Tokens
|
Obtain an API token in User Settings > Personal API Tokens
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
Navigate to your project's integrations tab in Infisical.
|
Navigate to your project's integrations tab in Infisical.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
Press on the CircleCI tile and input your CircleCI API token to grant Infisical access to your CircleCI account.
|
Press on the CircleCI tile and input your CircleCI API token to grant Infisical access to your CircleCI account.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
</Step>
|
</Step>
|
||||||
<Step title="Start integration">
|
<Step title="Start integration">
|
||||||
Select which Infisical environment secrets you want to sync to which CircleCI project and press create integration to start syncing secrets to CircleCI.
|
Select which Infisical environment secrets you want to sync to which CircleCI project or context.
|
||||||
|
<Tabs>
|
||||||
|
<Tab title="Project">
|
||||||
|

|
||||||
|
</Tab>
|
||||||
|
<Tab title="Context">
|
||||||
|

|
||||||
|
</Tab>
|
||||||
|
</Tabs>
|
||||||
|
|
||||||
|
Finally, press create integration to start syncing secrets to CircleCI.
|
||||||
|

|
||||||
|
|
||||||

|
|
||||||

|
|
||||||
</Step>
|
</Step>
|
||||||
</Steps>
|
</Steps>
|
||||||
@@ -424,7 +424,6 @@
|
|||||||
"group": "View more",
|
"group": "View more",
|
||||||
"pages": [
|
"pages": [
|
||||||
"integrations/cicd/circleci",
|
"integrations/cicd/circleci",
|
||||||
"integrations/cicd/circleci-context",
|
|
||||||
"integrations/cicd/travisci",
|
"integrations/cicd/travisci",
|
||||||
"integrations/cicd/rundeck",
|
"integrations/cicd/rundeck",
|
||||||
"integrations/cicd/codefresh",
|
"integrations/cicd/codefresh",
|
||||||
|
|||||||
@@ -28,15 +28,15 @@ const formSchema = z.discriminatedUnion("scope", [
|
|||||||
scope: z.literal("context"),
|
scope: z.literal("context"),
|
||||||
secretPath: z.string().default("/"),
|
secretPath: z.string().default("/"),
|
||||||
sourceEnvironment: z.object({ name: z.string(), slug: z.string() }),
|
sourceEnvironment: z.object({ name: z.string(), slug: z.string() }),
|
||||||
targetOrg: z.object({ name: z.string(), slug: z.string() }),
|
targetOrg: z.object({ name: z.string().min(1), slug: z.string().min(1) }),
|
||||||
targetContext: z.object({ name: z.string(), id: z.string() })
|
targetContext: z.object({ name: z.string().min(1), id: z.string().min(1) })
|
||||||
}),
|
}),
|
||||||
z.object({
|
z.object({
|
||||||
scope: z.literal("project"),
|
scope: z.literal("project"),
|
||||||
secretPath: z.string().default("/"),
|
secretPath: z.string().default("/"),
|
||||||
sourceEnvironment: z.object({ name: z.string(), slug: z.string() }),
|
sourceEnvironment: z.object({ name: z.string(), slug: z.string() }),
|
||||||
targetOrg: z.object({ name: z.string(), slug: z.string() }),
|
targetOrg: z.object({ name: z.string().min(1), slug: z.string().min(1) }),
|
||||||
targetProject: z.object({ name: z.string(), id: z.string() })
|
targetProject: z.object({ name: z.string().min(1), id: z.string().min(1) })
|
||||||
})
|
})
|
||||||
]);
|
]);
|
||||||
|
|
||||||
@@ -49,7 +49,7 @@ export default function CircleCICreateIntegrationPage() {
|
|||||||
|
|
||||||
const integrationAuthId = router.query.integrationAuthId as string;
|
const integrationAuthId = router.query.integrationAuthId as string;
|
||||||
|
|
||||||
const { control, watch, handleSubmit } = useForm<TFormData>({
|
const { control, watch, handleSubmit, setValue } = useForm<TFormData>({
|
||||||
resolver: zodResolver(formSchema),
|
resolver: zodResolver(formSchema),
|
||||||
defaultValues: {
|
defaultValues: {
|
||||||
secretPath: "/",
|
secretPath: "/",
|
||||||
@@ -196,7 +196,18 @@ export default function CircleCICreateIntegrationPage() {
|
|||||||
getOptionValue={(option) => option.slug}
|
getOptionValue={(option) => option.slug}
|
||||||
value={value}
|
value={value}
|
||||||
getOptionLabel={(option) => option.name}
|
getOptionLabel={(option) => option.name}
|
||||||
onChange={onChange}
|
onChange={(e) => {
|
||||||
|
setValue("targetProject", {
|
||||||
|
name: "",
|
||||||
|
id: ""
|
||||||
|
});
|
||||||
|
setValue("targetContext", {
|
||||||
|
name: "",
|
||||||
|
id: ""
|
||||||
|
});
|
||||||
|
|
||||||
|
onChange(e);
|
||||||
|
}}
|
||||||
options={circleCIOrganizations}
|
options={circleCIOrganizations}
|
||||||
placeholder={
|
placeholder={
|
||||||
circleCIOrganizations?.length
|
circleCIOrganizations?.length
|
||||||
|
|||||||