# SecretSyncGithub

> Resource SecretSyncGithub in pulumi-infisical.

<!-- Generated from the pulumi-infisical SDK. -->

Resource SecretSyncGithub in pulumi-infisical.

Pulumi type: `infisical:index/secretSyncGithub:SecretSyncGithub`.

`name` is the Pulumi resource name. Nested object fields are documented under that object. They are not arguments of this resource.

## Example

Only required arguments are set. A string in angle brackets stands in for that argument. Any other value is an option or example written in the SDK description.

```ts
import * as infisical from "pulumi-infisical"

const resource = new infisical.SecretSyncGithub("secretSyncGithub", {
  connectionId: "<connectionId>",
  destinationConfig: {
    scope: "<scope>",
  },
  environment: "<environment>",
  projectId: "<projectId>",
  secretPath: "<secretPath>",
  syncOptions: {
    initialSyncBehavior: "overwrite-destination",
  },
})
```

## Arguments

| Property            | Type                                        | Required | Description                                                                                      |
| ------------------- | ------------------------------------------- | -------- | ------------------------------------------------------------------------------------------------ |
| `autoSyncEnabled`   | `boolean`                                   | no       | Whether secrets should be automatically synced when changes occur at the source location or not. |
| `connectionId`      | `string`                                    | yes      | The ID of the github Connection to use for syncing.                                              |
| `description`       | `string`                                    | no       | An optional description for the Github sync.                                                     |
| `destinationConfig` | `SecretSyncGithubDestinationConfig (input)` | yes      | The destination configuration for the secret sync.                                               |
| `environment`       | `string`                                    | yes      | The slug of the project environment to sync secrets from.                                        |
| `name`              | `string`                                    | no       | The name of the Github sync to create. Must be slug-friendly.                                    |
| `projectId`         | `string`                                    | yes      | The ID of the Infisical project to create the sync in.                                           |
| `secretPath`        | `string`                                    | yes      | The folder path to sync secrets from.                                                            |
| `syncOptions`       | `SecretSyncGithubSyncOptions (input)`       | yes      | Parameters to modify how secrets are synced.                                                     |

## Outputs

Computed outputs are produced by the provider. They are not constructor arguments.

| Property            | Type                                         | Computed | Description                                                                                      |
| ------------------- | -------------------------------------------- | -------- | ------------------------------------------------------------------------------------------------ |
| `autoSyncEnabled`   | `boolean`                                    | no       | Whether secrets should be automatically synced when changes occur at the source location or not. |
| `connectionId`      | `string`                                     | no       | The ID of the github Connection to use for syncing.                                              |
| `description`       | `string`                                     | no       | An optional description for the Github sync.                                                     |
| `destinationConfig` | `SecretSyncGithubDestinationConfig (output)` | no       | The destination configuration for the secret sync.                                               |
| `environment`       | `string`                                     | no       | The slug of the project environment to sync secrets from.                                        |
| `name`              | `string`                                     | no       | The name of the Github sync to create. Must be slug-friendly.                                    |
| `projectId`         | `string`                                     | no       | The ID of the Infisical project to create the sync in.                                           |
| `secretPath`        | `string`                                     | no       | The folder path to sync secrets from.                                                            |
| `syncOptions`       | `SecretSyncGithubSyncOptions (output)`       | no       | Parameters to modify how secrets are synced.                                                     |

## `SecretSyncGithubDestinationConfig (input)`

Input object `SecretSyncGithubDestinationConfig`. Fields below belong to this object, not to the parent.

| Property                | Type       | Required | Description                                                                                                                                                                                                                                                                                                    |
| ----------------------- | ---------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `repositoryEnvironment` | `string`   | no       | The environment to sync the secrets to, required if scope is `repository-environment`                                                                                                                                                                                                                          |
| `repositoryName`        | `string`   | no       | The repository to sync the secrets to, required if scope is `repository` or `repository-environment`. This is only the name of the repository, without the repository owner included. As an example if you have a repository called Infisical/go-sdk, you would only need to provide `go-sdk` here.            |
| `repositoryOwner`       | `string`   | no       | The owner of the Github repository, required if scope is `repository`, `repository-environment`, or `organization`. This is the organization name, or the username for personal repositories. As an example if you have a repository called Infisical/go-sdk, you would only need to provide `Infisical` here. |
| `scope`                 | `string`   | yes      | The scope to sync the secrets to, repository\|organization                                                                                                                                                                                                                                                     |
| `selectedRepositoryIds` | `number[]` | no       | The repository ids to sync the secrets to, required if scope is `organization` and the visibility field is set to `selected`                                                                                                                                                                                   |
| `visibility`            | `string`   | no       | The visibility of the Github repository, required if scope is `organization`. Accepted values are: `all`\|`private`\|`selected`                                                                                                                                                                                |

## `SecretSyncGithubSyncOptions (input)`

Input object `SecretSyncGithubSyncOptions`. Fields below belong to this object, not to the parent.

| Property                | Type      | Required | Description                                                                                                                                             |
| ----------------------- | --------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `disableSecretDeletion` | `boolean` | no       | When set to true, Infisical will not remove secrets from Github. Enable this option if you intend to manage some secrets manually outside of Infisical. |
| `initialSyncBehavior`   | `string`  | yes      | Specify how Infisical should resolve the initial sync to the destination. Supported options: overwrite-destination                                      |
| `keySchema`             | `string`  | no       | The format to use for structuring secret keys in the Github destination.                                                                                |

## `SecretSyncGithubDestinationConfig (output)`

Output object `SecretSyncGithubDestinationConfig`. Fields below belong to this object.

| Property                | Type       | Always present | Description                                                                                                                                                                                                                                                                                                    |
| ----------------------- | ---------- | -------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `repositoryEnvironment` | `string`   | no             | The environment to sync the secrets to, required if scope is `repository-environment`                                                                                                                                                                                                                          |
| `repositoryName`        | `string`   | no             | The repository to sync the secrets to, required if scope is `repository` or `repository-environment`. This is only the name of the repository, without the repository owner included. As an example if you have a repository called Infisical/go-sdk, you would only need to provide `go-sdk` here.            |
| `repositoryOwner`       | `string`   | no             | The owner of the Github repository, required if scope is `repository`, `repository-environment`, or `organization`. This is the organization name, or the username for personal repositories. As an example if you have a repository called Infisical/go-sdk, you would only need to provide `Infisical` here. |
| `scope`                 | `string`   | yes            | The scope to sync the secrets to, repository\|organization                                                                                                                                                                                                                                                     |
| `selectedRepositoryIds` | `number[]` | no             | The repository ids to sync the secrets to, required if scope is `organization` and the visibility field is set to `selected`                                                                                                                                                                                   |
| `visibility`            | `string`   | no             | The visibility of the Github repository, required if scope is `organization`. Accepted values are: `all`\|`private`\|`selected`                                                                                                                                                                                |

## `SecretSyncGithubSyncOptions (output)`

Output object `SecretSyncGithubSyncOptions`. Fields below belong to this object.

| Property                | Type      | Always present | Description                                                                                                                                             |
| ----------------------- | --------- | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `disableSecretDeletion` | `boolean` | yes            | When set to true, Infisical will not remove secrets from Github. Enable this option if you intend to manage some secrets manually outside of Infisical. |
| `initialSyncBehavior`   | `string`  | yes            | Specify how Infisical should resolve the initial sync to the destination. Supported options: overwrite-destination                                      |
| `keySchema`             | `string`  | no             | The format to use for structuring secret keys in the Github destination.                                                                                |
