This commit is contained in:
x032205
2025-07-07 20:26:35 -04:00
parent 64744d042d
commit 9e896563ed
11 changed files with 34 additions and 14 deletions

View File

@@ -149,9 +149,9 @@ export const BitbucketSecretScanningFactory = () => {
filteredRepos.push(...repos.filter((repo) => includeRepos.includes(repo.full_name)));
}
return filteredRepos.map(({ full_name }) => ({
return filteredRepos.map(({ full_name, uuid }) => ({
name: full_name,
externalId: full_name,
externalId: uuid,
type: SecretScanningResource.Repository
}));
};
@@ -188,7 +188,7 @@ export const BitbucketSecretScanningFactory = () => {
> = ({ repository }) => {
return {
name: repository.full_name,
externalId: repository.full_name,
externalId: repository.uuid,
type: SecretScanningResource.Repository
};
};

View File

@@ -9,6 +9,14 @@ export const SecretScanningDataSourceSchema = z.discriminatedUnion("type", [
]);
export const SecretScanningFindingSchema = z.discriminatedUnion("dataSourceType", [
GitHubFindingSchema,
BitbucketFindingSchema
GitHubFindingSchema.describe(
JSON.stringify({
title: "GitHub"
})
),
BitbucketFindingSchema.describe(
JSON.stringify({
title: "Bitbucket"
})
)
]);

View File

@@ -1,6 +1,5 @@
import type { EmitterWebhookEventName } from "@octokit/webhooks/dist-types/types";
import { PushEvent } from "@octokit/webhooks-types";
import crypto from "crypto";
import { Probot } from "probot";
import { z } from "zod";

View File

@@ -66,7 +66,7 @@ export const registerBitbucketConnectionRouter = async (server: FastifyZodProvid
}),
response: {
200: z.object({
repositories: z.object({ slug: z.string(), full_name: z.string() }).array()
repositories: z.object({ slug: z.string(), full_name: z.string(), uuid: z.string() }).array()
})
}
},

View File

@@ -34,6 +34,7 @@ export type TBitbucketWorkspace = {
};
export type TBitbucketRepo = {
uuid: string;
full_name: string; // workspace-slug/repo-slug
slug: string;
};

View File

@@ -6,7 +6,7 @@ description: "Learn how to configure secret scanning for Bitbucket."
## Prerequisites
- Create a [Bitbucket Connection](/integrations/app-connections/bitbucket)
- Create a [Bitbucket Connection](/integrations/app-connections/bitbucket) with Secret Scanning permissions
## Create a Bitbucket Data Source in Infisical
@@ -17,6 +17,8 @@ description: "Learn how to configure secret scanning for Bitbucket."
2. Select the **Bitbucket** option.
![Select Bitbucket](/images/platform/secret-scanning/bitbucket/step-2.png)
3. Configure which workspace and repositories you would like to scan. Then click **Next**.
![Data Source Configuration](/images/platform/secret-scanning/bitbucket/step-3.png)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 330 KiB

After

Width:  |  Height:  |  Size: 0 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

View File

@@ -5,21 +5,29 @@ description: "Learn how to configure a Bitbucket Connection for Infisical."
Infisical supports the use of [API Tokens](https://support.atlassian.com/bitbucket-cloud/docs/api-tokens/) to connect with Bitbucket.
<Tip>
Infisical recommends creating a dedicated Bitbucket account with access restricted to only the repositories you want to scan.
</Tip>
## Create Bitbucket Access Token
<Steps>
<Step title="Create API Token">
Go to [Account API Tokens](https://id.atlassian.com/manage-profile/security/api-tokens) and click 'Create API token with scopes'.
Go to [Account API Tokens](https://id.atlassian.com/manage-profile/security/api-tokens) and click **Create API token with scopes**.
![Create API Token](/images/app-connections/bitbucket/step-1.png)
</Step>
<Step title="Set Name and Expiry">
Set the name and expiration date of the token, then click 'Next'. Keep in mind that you'll need to manually replace the token after it expires.
Set the name and expiration date of the token, then click **Next**.
![Set Name and Expiry](/images/app-connections/bitbucket/step-2.png)
<Note>
Keep in mind that you'll need to manually replace the token after it expires.
</Note>
</Step>
<Step title="Select 'Bitbucket'">
Select 'Bitbucket' and then click 'Next'.
Select 'Bitbucket' and then click **Next**.
![Select Bitbucket](/images/app-connections/bitbucket/step-3.png)
</Step>
@@ -36,12 +44,13 @@ Infisical supports the use of [API Tokens](https://support.atlassian.com/bitbuck
delete:webhook:bitbucket
read:repository:bitbucket
```
![Configure Permissions](/images/app-connections/bitbucket/step-4.png)
</Tab>
</Tabs>
Click 'Next'.
![Configure Permissions](/images/app-connections/bitbucket/step-4.png)
</Step>
<Step title="Copy Token">
Save the API Token for later steps.
@@ -61,7 +70,7 @@ Infisical supports the use of [API Tokens](https://support.atlassian.com/bitbuck
![App Connections Tab](/images/app-connections/general/add-connection.png)
</Step>
<Step title="Select Bitbucket Connection">
Click the 'Add new connection' button and select 'Bitbucket' from the list of available connections.
Click the **Add new connection** button and select 'Bitbucket' from the list of available connections.
</Step>
<Step title="Fill out the Bitbucket Connection Modal">
Complete the Bitbucket Connection form by entering:

View File

@@ -3,6 +3,7 @@ export type TBitbucketWorkspace = {
};
export type TBitbucketRepo = {
uuid: string;
slug: string;
full_name: string; // workspace-slug/repo-slug
};

View File

@@ -294,7 +294,7 @@ export const SecretScanningDataSourcesTable = ({ dataSources }: Props) => {
<Table>
<THead>
<Tr>
<Th className="w-60">Platform</Th>
<Th className="min-w-36">Platform</Th>
<Th className="w-1/3">
<div className="flex items-center">
Name