GitSync
GitSync is an integration built for Google SecOps that synchronizes security automation assets and components with an external Git repository (such as GitHub, GitLab, or Bitbucket). It facilitates bidirectional synchronization of content, providing automated version control, configuration backup, and cross-environment promotion across your security operations lifecycle. Notice that GitSync is designed to backup and migrate assets between related environments (such as development, staging, and production), rather than to distribute assets across unrelated systems where internal database identifiers may cause conflict.
Use cases
The GitSync integration supports the following primary use cases:
Version control and auditability (Security as Code): Track modifications, review diffs, and maintain a complete version history of changes across playbooks, connectors, integrations, and system settings.
Multi-environment promotion (CI/CD pipeline): Promote playbooks, ontology mappings, and integration settings systematically from development and staging environments to production through pull requests and branch merges.
Backup and disaster recovery: Restore accidentally deleted, corrupted, or misconfigured playbooks and platform configurations directly from your Git repository.
Cross-environment standardization: Distribute standardized playbooks, custom visual families, and connector definitions across related Google SecOps environments from a centralized repository.
Branching and staging isolation: Test experimental playbooks and feature branches in dedicated environments without affecting production workflows or schedules.
Offline review and collaboration: Export platform definitions as JSON and Markdown to enable peer review, automated validation, and inspection in standard developer tools.
Reusable workflow blocks: Synchronize modular workflow blocks alongside or separately from full playbooks so teams can share common automation steps.
Implementation workflows by goal
To go directly to the guidance matching your current objective, select your workflow:
New GitSync deployment or new branch: If you're configuring the GitSync integration for the first time or creating a new repository branch on a Chronicle API-enabled environment, follow this end-to-end setup sequence:
- Complete the prerequisites and credentials setup.
- Configure the shared integration instance.
- Test network connectivity and authentication with the Ping action.
- Run an initial Push Content job to populate the branch before running any pull jobs.
- Configure and schedule automated synchronization jobs.
Migrate to Chronicle API (mandatory for existing deployments): To migrate an existing GitSync integration and repository branch after moving to a Chronicle API-enabled environment, see Chronicle API-enabled environment migration.
Job and repository reference:
- To view configuration parameters and run standalone push or pull jobs for specific assets (playbooks, connectors, integrations, etc.), see Jobs.
- To view the standard repository layout, see Repository directory structure.
Troubleshoot synchronization issues: If an action or job fails with an error, see Troubleshooting.
Before you begin
Before configuring and executing GitSync operations, verify your environment, obtain repository access, and complete the following setup tasks:
Verify your Chronicle API-enabled environment (required for GitSync v53.0 and later): Check your browser's web console URL to confirm your instance is hosted on
secops.google.comor*.chronicle.security.google.com(or verify thatGoogle.comappears after the system version number in Settings > SOAR Settings > License Management). If your instance is still hosted on*.siemplify-soar.com, complete the Chronicle API-enabled environment migration first.Use a private Git repository with write access: Make sure you have write permissions to a private remote Git repository hosted on a supported Git provider (such as GitHub, GitLab, or Bitbucket). While
Password-type parameters are excluded by default unlessCommit Passwordsis enabled, all other parameters (such as Application IDs, Client IDs, usernames, and endpoints) are exported in plaintext. Never use a public repository with GitSync.Initialize the remote repository: Confirm that the remote repository has at least one initial commit (such as a
README.mdor.gitignorefile). GitSync cannot synchronize to an empty repository.Prepare Git authentication credentials: Generate an authentication credential with repository write permissions. GitSync supports base64-encoded SSH private keys (recommended), Personal Access Tokens (PATs), and basic username and password credentials.
To generate and encode an SSH key, see Generate SSH keys for GitSync.
Verify network connectivity and VPC Service Controls: Verify that your Google SecOps instance or remote runner has outbound firewall access on TCP port 443 (for HTTPS) or TCP port 22 (for SSH) to your Git provider.
If your Google Cloud environment uses a VPC Service Controls service perimeter, work with your Google Cloud administrator to configure ingress and egress rules so that response integrations can communicate with required Google Cloud APIs and external endpoints.
Obtain your Git host fingerprint (recommended): To protect against person-in-the-middle (PITM) attacks, retrieve your Git server's public key fingerprint for host fingerprint pinning.
For configuration steps, see Enable host fingerprint pinning.
Grant playbook edit permissions: If you intend to synchronize playbooks with restricted default access (such as default permissions set to Can View), grant the
AdministratorSOC role Can Edit permissions on the source system before running synchronization jobs.For step-by-step instructions, see Configure playbook permissions.
Generate SSH keys for GitSync
To configure secure, passwordless authentication using SSH keys:
Generate an RSA or Ed25519 key pair in your terminal. When prompted for a passphrase, press Enter to leave it empty:
ssh-keygen -b 2048 -t rsa -f ./id_rsaThis command creates two files:
id_rsa(private key) andid_rsa.pub(public key).Add the public key (
id_rsa.pub) to your remote Git hosting service as a Deploy Key or Access Key with write permissions.Convert the private key into a single-line base64-encoded string:
Linux / macOS:
base64 -w 0 ./id_rsaWindows (PowerShell):
[Convert]::ToBase64String([System.IO.File]::ReadAllBytes(".\id_rsa"))
Copy the resulting base64 string and paste it into the Git Password/Token/SSH Key parameter when configuring the GitSync integration instance.
Enable host fingerprint pinning
Host fingerprint pinning verifies your Git server's identity upon connection to protect against person-in-the-middle (PITM) attacks. While the Git Server Fingerprint parameter is optional, configuring it ensures GitSync connects exclusively to your verified Git host.
To configure host fingerprint pinning:
Retrieve your host fingerprint: Run
ssh-keyscanin your terminal against your Git server hostname:ssh-keyscan -t rsa <hostname>For example, for GitHub, run
ssh-keyscan -t rsa github.com. The command outputs a public host key line similar to the following:github.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC...Save the fingerprint for configuration: Copy the public host key line. Enter this value into the Git Server Fingerprint parameter when configuring the GitSync integration instance (to apply it to all jobs) or on individual synchronization jobs (to override the setting for specific hosts).
Configure playbook permissions
When synchronizing playbooks with restricted permissions (for example, default permissions
set to Can View), assign Can Edit permissions to the Administrator SOC role:
- In Google SecOps, go to Playbooks and select the target playbook.
- Open the playbook permissions settings.
- Add the
AdministratorSOC role to the list of entities and set its permission to Can Edit.
Chronicle API-enabled environment migration
This section provides procedures for migrating an existing GitSync deployment and repository branch to a Chronicle API-enabled environment (supported starting in GitSync version 53.0).
For guidance on migrating your overall Google SecOps platform, identity groups, IAM permissions, and API endpoints to Google Cloud, see the Google SecOps migration overview.
Updates in Chronicle API-enabled environments
Starting with version 53.0, GitSync includes the following updates for Chronicle API-enabled environments:
Automated IAM authentication: GitSync connects to Google SecOps through Chronicle REST APIs and authenticates automatically at runtime using Google Cloud IAM.
Updated configuration schema: Exported JSON configuration files use Chronicle API resource identifiers and field formats, making them incompatible with pre-migration repository branches.
Dedicated block synchronization options: Playbook synchronization jobs include an Include Playbook Blocks option to export or import reusable workflow blocks alongside playbooks, and support importing blocks from either
/Playbooksor/Blocks.Direct archive transfers for custom integrations: Custom integration packages are uploaded and downloaded directly as
.ziparchives, reducing transfer times for large integrations.Source-scoped ontology mappings: Mapping rules are organized by integration source under
/Ontology/Mappings/<Source_Name>/to prevent conflicts between mapping rules from different sources.Automatic filtering of built-in system defaults: GitSync automatically excludes built-in, read-only system items (such as default system tags and built-in system instances) during synchronization to prevent permission errors.
Migrate your repository branch
Chronicle API-enabled environments and legacy environments use different JSON configuration formats and cannot synchronize against the same branch simultaneously. Choose either a dedicated branch (recommended) or reuse your existing branch:
Option 1: Recommended dedicated branch workflow
Creating a new branch isolates your updated Chronicle API configurations and preserves an untouched archive of your pre-migration configurations without modifying branch history:
Baseline legacy push: Before your instance is migrated, execute a full Push Content job from your existing environment to commit a clean backup to your legacy branch (for example,
main).Create new Git branch: Create a new, dedicated branch in your Git repository (for example,
git checkout -b gitsync-chronicle-api && git push origin gitsync-chronicle-api).Upgrade and reconfigure the integration instance: In your Chronicle API-enabled environment, make sure GitSync is updated to version 53.0 or later in the Content Hub. Then go to Settings > Integrations > GitSync, update the Branch parameter to
gitsync-chronicle-api, and verify connectivity using the Ping action.Initial API-enabled push baseline: Execute a full Push Content job from the Chronicle API-enabled instance to populate the new branch with the updated configuration files.
Verify and enable pull sync: Inspect the repository to verify file structures, then enable scheduled Pull Content jobs as required.
Option 2: Existing branch reuse procedure
If automated CI/CD pipelines or branch policies require retaining an existing branch name, execute the following cutover procedure:
Create a legacy backup tag: Create a Git release tag of your legacy configurations as a historical archive.
git tag backup-legacy-pre-migration git push origin backup-legacy-pre-migrationPause sync jobs: Disable active GitSync scheduled jobs (Push Content and Pull Content) to prevent concurrent writes during cutover.
Remove legacy branch content: Remove the legacy directories from the branch.
git rm -rf Playbooks/ Connectors/ Integrations/ Jobs/ Ontology/ SimulatedCases/ Settings/ git commit -m "CHORE: Clear legacy files for Chronicle API baseline" git push origin mainUpgrade GitSync and push API-enabled baseline: In your Chronicle API-enabled instance, make sure GitSync is updated to version 53.0 or later in the Content Hub. Once verified, execute a full Push Content job to populate the clean branch with updated configuration files.
Resume scheduled sync: Verify the exported files in your repository and re-enable scheduled GitSync jobs on the Chronicle API-enabled instance.
Configure the integration
Configure the GitSync integration as a Shared Instance in Google SecOps so that all platform components and scheduled jobs can access repository configurations.
GitSync integration parameters
| Parameter | Description |
|---|---|
Repo URL |
Required. The remote Git repository URL. When using HTTPS authentication, the URL must start with When using SSH authentication, the URL must start with |
Branch |
Required. The Git repository branch to synchronize with (such as |
Git Password/Token/SSH Key |
Required. The authentication credential for the remote Git repository. This parameter accepts a Git account password, Personal Access Token (PAT), or base64-encoded SSH private key (RSA 2048-bit or Ed25519). |
Git Username |
Optional. The Git account username. Required when using username and password authentication over HTTPS. |
Git Server Fingerprint |
Optional. The SSH public host key of your remote Git server (for example,
Configuring this parameter enables host fingerprint pinning, making sure GitSync connects exclusively to your verified Git host and mitigating person-in-the-middle (PITM) risks. To retrieve this value, see Enable host fingerprint pinning. |
Commit Author |
Optional. The author identity attached to outbound Git commits generated by GitSync. The format must follow standard Git authorship: |
Siemplify Verify SSL |
Required. If selected, the integration validates the SSL certificate of the Google SecOps API endpoint. Enabled by default. |
Git Verify SSL |
Required. If selected, the integration validates the SSL certificate of the remote Git provider server. Enabled by default. |
Actions
For more information about actions, see Respond to pending actions from Your Workdesk and Perform a manual action.
Ping
Use the Ping action to test network connectivity and verify authentication credentials against the configured Git repository and branch.
Action inputs
None.
Action outputs
The Ping action provides the following outputs:
| Action output type | Availability |
|---|---|
| Case wall attachment | Not available |
| Case wall link | Not available |
| Case wall table | Not available |
| Enrichment table | Not available |
| JSON result | Not available |
| Output messages | Available |
| Script result | Available |
Output messages
The Ping action can return the following output messages:
| Output message | Message description |
|---|---|
Successfully executed action "Ping". |
The action succeeded and repository connectivity was verified. |
Error executing action "Ping". Reason: ERROR_REASON |
The action failed. Verify repository URL, branch name, credentials, or network routes. |
Script result
The following table lists the script result value when using the Ping action:
| Script result name | Value |
|---|---|
is_success |
true or false |
Jobs
GitSync provides 16 synchronization job configurations (2 full instance jobs and 7 standalone job pairs) to manage platform assets. These jobs support the full instance-level and targeted standalone synchronization scopes.
Synchronization scope and supported assets
The integration organizes synchronization jobs into two distinct operational scopes to meet different administrative and automation needs:
Full instance synchronization (
Push ContentandPull Content): Synchronizes your complete Google SecOps platform in a single bulk operation.This encompasses 21 platform asset categories across three functional areas:
System and environment configurations: Environments, Domains, Dynamic Parameters, Custom Lists, Networks, Blacklists (Denylists), Case Title Settings, Email Templates, and Logo.
Alert and case management: Case Tags, Case Stages, Case Close Reasons, SLA Records, and Simulated Cases.
Security automation and integrations: Playbooks (including reusable workflow Blocks), Integrations, Integration Instances, Connectors, Scheduled Jobs, Ontology Mappings, and Visual Families.
Granular asset synchronization (standalone push and pull jobs):
Provides dedicated push and pull job pairs for seven specific assets. Use standalone jobs when developing, updating, or testing individual components without synchronizing or overwriting the rest of your environment:
Playbooks and workflow blocks:
Push PlaybookandPull PlaybookConnectors:
Push ConnectorsandPull ConnectorIntegrations:
Push IntegrationandPull IntegrationScheduled jobs:
Push JobandPull JobsOntology mappings:
Push MappingsandPull MappingsCustom visual families:
Push Custom FamilyandPull Custom FamilySimulated test cases:
Push Simulated CasesandPull Simulated Cases
Repository directory structure
Running an initial Push Content job (required before running any pull jobs on a new or
migrated branch) creates the following predefined directory structure, JSON configuration files,
root GitSync.json metadata file, and generated README.md documentation in your remote Git
repository.
├── Connectors/
│ └── <Integration_Name>/
│ └── <Connector_Name>/
│ ├── <Connector_Name>.json
│ └── README.md
├── Integrations/
│ └── <Integration_Identifier>/
│ ├── Actions/
│ ├── Connectors/
│ ├── Dependencies/
│ ├── Jobs/
│ ├── Managers/
│ ├── Resources/
│ ├── Integration-<Integration_Identifier>.def
│ └── README.md
├── Jobs/
│ ├── <Job_Name>.json
│ └── README.md
├── Ontology/
│ ├── Mappings/
│ │ └── <Source_Name>/
│ │ ├── <Source_Name>_Records.json
│ │ ├── <Source_Name>_Rules.json
│ │ └── README.md
│ └── VisualFamilies/
│ └── <Family_Name>/
│ ├── <Family_Name>.json
│ ├── <Family_Name>.png
│ └── README.md
├── Playbooks/
│ ├── README.md
│ └── <Folder_Name>/
│ └── <Playbook_Or_Block_Name>/
│ ├── <Playbook_Or_Block_Name>.json
│ └── README.md
├── Settings/
│ ├── blacklists.json
│ ├── caseCloseCauses.json
│ ├── caseTitles.json
│ ├── customLists.json
│ ├── domains.json
│ ├── dynamicParameters.json
│ ├── emailTemplates.json
│ ├── environments.json
│ ├── integrationInstances.json
│ ├── logo.json
│ ├── networks.json
│ ├── slaDefinitions.json
│ ├── stages.json
│ └── tags.json
├── SimulatedCases/
│ └── <Case_Name>.case
├── GitSync.json
└── README.md
Instance-level synchronization jobs
Instance-level jobs synchronize selected asset categories across an entire Google SecOps instance.
Push Content
Use the Push Content job to export selected asset categories from your Google SecOps instance and commit them to the configured Git repository branch. Always run Push Content first when initializing a new branch or migrating to a Chronicle API-enabled environment.
Job inputs
To configure the Push Content job, use the following parameters:
| Parameter | Description |
|---|---|
Commit |
Required. The Git commit message describing the exported content changes. |
Commit Passwords |
Optional. If selected, the job exports plaintext |
Asset selection parameters:Integrations, Playbooks, Jobs,
Connectors, Simulated Cases, Integration Instances,
Visual Families, Mappings, Environments,
Dynamic Parameters, Logo, Case Tags,
Case Stages, Case Title Settings, Case Close Reasons,
Networks, Domains, Custom Lists,
Email Templates, Blacklists, SLA Records |
Optional (Boolean toggles). Select each asset category you want to include in the export. |
Repo URL |
Optional. Overrides the repository URL configured in the integration instance. |
Branch |
Optional. Overrides the repository branch configured in the integration instance. |
Commit Author |
Optional. Overrides the commit author configured in the integration instance. Must use the format
|
Git Server Fingerprint |
Optional. Overrides the SSH host fingerprint configured in the integration instance. |
Job outputs
The job writes JSON configuration files and README.md summaries to the target Git branch under the
standard directory hierarchy (/Playbooks, /Connectors, /Integrations,
/Jobs, /Ontology/Mappings, /Ontology/VisualFamilies, /SimulatedCases, and /Settings) and
outputs execution logs to the job runner console. Custom integrations are exported as complete
packages, while commercial integrations export only custom scripts or modifications added to the
integration.
Pull Content
Use the Pull Content job to retrieve selected configuration categories from the configured Git repository branch and apply them to the Google SecOps platform.
Job inputs
To configure the Pull Content job, use the following parameters:
| Parameter | Description |
|---|---|
Asset selection parameters:Integrations, Playbooks, Jobs,
Connectors, Simulated Cases, Integration Instances,
Visual Families, Mappings, Environments,
Dynamic Parameters, Logo, Case Tags,
Case Stages, Case Title Settings, Case Close Reasons,
Networks, Domains, Custom Lists,
Email Templates, Blacklists, SLA Records |
Optional (Boolean toggles). Select each asset category you want to import from the repository into your environment. |
Repo URL |
Optional. Overrides the repository URL configured in the integration instance. |
Branch |
Optional. Overrides the repository branch configured in the integration instance. |
Git Server Fingerprint |
Optional. Overrides the SSH host fingerprint configured in the integration instance. |
Job outputs
The job imports the selected repository definitions into the platform, creates or updates integration instances, playbooks, connectors, jobs, ontology mappings, and settings, and outputs execution logs to the job runner console.
Standalone synchronization jobs
Standalone jobs allow granular synchronization of specific assets without requiring a full repository sync.
Push Playbook
Use the Push Playbook job to export individual playbooks or reusable workflow blocks to Git.
Job inputs
To configure the Push Playbook job, use the following parameters:
| Parameter | Description |
|---|---|
Commit |
Required. The Git commit message describing the playbook changes. |
Playbook Whitelist |
Optional. A comma-separated list of exact, case-sensitive playbook or block names to export.
Provide either |
Folders Whitelist |
Optional. A comma-separated list of playbook folder (category) names. All playbooks and blocks residing within these folders are exported. |
Include Playbook Blocks |
Optional. If selected, exports reusable workflow blocks alongside the selected playbooks, including any blocks referenced as steps within those playbooks. |
Repo URL |
Optional. Overrides the default repository URL. |
Branch |
Optional. Overrides the default branch. |
Commit Author |
Optional. Overrides the default commit author. |
Git Server Fingerprint |
Optional. Overrides the default SSH host fingerprint. |
Readme Addon |
Optional. Custom content appended to the generated Supports both Markdown syntax and Jinja templates. |
Job outputs
Exports selected playbooks and included workflow blocks to /Playbooks/<Folder_Name>/<Playbook_Name>/
and updates /Playbooks/README.md.
Pull Playbook
Use the Pull Playbook job to import specific playbooks or blocks from Git.
Job inputs
To configure the Pull Playbook job, use the following parameters:
| Parameter | Description |
|---|---|
Playbook Whitelist |
Required. A comma-separated list of exact playbook or block names to import from the repository. |
Include Playbook Blocks |
Optional. If selected, automatically imports any reusable workflow blocks referenced by the selected playbooks. |
Repo URL |
Optional. Overrides the default repository URL. |
Branch |
Optional. Overrides the default branch. |
Git Server Fingerprint |
Optional. Overrides the default SSH host fingerprint. |
Job outputs
Imports the specified playbooks and blocks from /Playbooks (or /Blocks) into the platform,
installing referenced blocks first before installing the parent playbooks.
Push Connectors
Use the Push Connectors job to export connector configurations to Git.
Job inputs
To configure the Push Connectors job, use the following parameters:
| Parameter | Description |
|---|---|
Connectors |
Required. A comma-separated list of connector display names to export. |
Commit |
Required. The Git commit message. |
Include Mappings |
Optional. If selected, exports the ontology mapping records and rules associated with the
connector's integration to |
Include Visual Families |
Optional. If selected, exports the custom visual families associated with the connector's
ontology records to |
Repo URL |
Optional. Overrides the default repository URL. |
Branch |
Optional. Overrides the default branch. |
Commit Author |
Optional. Overrides the default commit author. |
Git Server Fingerprint |
Optional. Overrides the default SSH host fingerprint. |
Readme Addon |
Optional. Custom content appended to the generated Supports both Markdown syntax and Jinja templates. |
Job outputs
Exports connector settings and schedules to /Connectors/<Integration_Name>/<Connector_Name>/
(along with associated ontology mappings and visual families, if selected).
Pull Connector
Use the Pull Connector job to import a connector configuration from Git. Before running this job, make sure the connector's underlying integration is already installed on the target environment.
Job inputs
To configure the Pull Connector job, use the following parameters:
| Parameter | Description |
|---|---|
Connector Name |
Required. The display name of the connector to import from the repository. |
Include Mappings |
Optional. If selected, imports the ontology mappings associated with the connector's integration. |
Include Visual Families |
Optional. If selected, imports the custom visual families associated with the connector's integration. |
Repo URL |
Optional. Overrides the default repository URL. |
Branch |
Optional. Overrides the default branch. |
Git Server Fingerprint |
Optional. Overrides the default SSH host fingerprint. |
Job outputs
Installs or updates the connector on the target environment (along with associated mappings or visual families, if selected).
Push Integration
Use the Push Integration job to export custom integrations or custom scripts added to commercial integrations to Git. Custom integrations are exported as full integration packages, whereas commercial integrations export only custom scripts or modifications added to the integration.
Job inputs
To configure the Push Integration job, use the following parameters:
| Parameter | Description |
|---|---|
Push Whitelist |
Required. A comma-separated list of integration identifiers to export. |
Commit |
Required. The Git commit message. |
Repo URL |
Optional. Overrides the default repository URL. |
Branch |
Optional. Overrides the default branch. |
Commit Author |
Optional. Overrides the default commit author. |
Git Server Fingerprint |
Optional. Overrides the default SSH host fingerprint. |
Readme Addon |
Optional. Custom content appended to the generated Supports both Markdown syntax and Jinja templates. |
Job outputs
Exports integration definitions, custom scripts (Actions/, Connectors/, Jobs/, Managers/),
dependencies, and README.md documentation to /Integrations/<Integration_Identifier>/.
Pull Integration
Use the Pull Integration job to import custom integrations or custom scripts for commercial integrations from Git. For commercial integrations, GitSync installs the latest version of the integration from Content Hub and saves the custom scripts into it.
Job inputs
To configure the Pull Integration job, use the following parameters:
| Parameter | Description |
|---|---|
Install Whitelist |
Required. A comma-separated list of integration identifiers to import from the repository. |
Repo URL |
Optional. Overrides the default repository URL. |
Branch |
Optional. Overrides the default branch. |
Git Server Fingerprint |
Optional. Overrides the default SSH host fingerprint. |
Job outputs
Installs custom integration packages or installs commercial integrations from Content Hub and updates their custom scripts on the target environment.
Push Job
Use the Push Job job to export scheduled platform job configurations to Git.
Job inputs
To configure the Push Job job, use the following parameters:
| Parameter | Description |
|---|---|
Job Whitelist |
Required. A comma-separated list of scheduled job names to export. |
Commit |
Required. The Git commit message. |
Repo URL |
Optional. Overrides the default repository URL. |
Branch |
Optional. Overrides the default branch. |
Commit Author |
Optional. Overrides the default commit author. |
Git Server Fingerprint |
Optional. Overrides the default SSH host fingerprint. |
Readme Addon |
Optional. Custom content appended to the generated Supports both Markdown syntax and Jinja templates. |
Job outputs
Exports job parameters and schedule intervals to /Jobs/<Job_Name>.json and updates /Jobs/README.md.
Pull Jobs
Use the Pull Jobs job to import scheduled platform jobs from Git.
Job inputs
To configure the Pull Jobs job, use the following parameters:
| Parameter | Description |
|---|---|
Job Whitelist |
Required. A comma-separated list of scheduled job names to import from the repository. |
Repo URL |
Optional. Overrides the default repository URL. |
Branch |
Optional. Overrides the default branch. |
Git Server Fingerprint |
Optional. Overrides the default SSH host fingerprint. |
Job outputs
Configures and registers the specified scheduled jobs in the platform job scheduler.
Push Mappings
Use the Push Mappings job to export ontology event mapping records and rules for a specific source to Git.
Job inputs
To configure the Push Mappings job, use the following parameters:
| Parameter | Description |
|---|---|
Source |
Required. The ontology source (integration name) whose mapping records and rules you want to export. |
Commit |
Required. The Git commit message. |
Repo URL |
Optional. Overrides the default repository URL. |
Branch |
Optional. Overrides the default branch. |
Commit Author |
Optional. Overrides the default commit author. |
Git Server Fingerprint |
Optional. Overrides the default SSH host fingerprint. |
Readme Addon |
Optional. Custom content appended to the generated Supports both Markdown syntax and Jinja templates. |
Job outputs
Writes ontology records (<Source>_Records.json), mapping rules (<Source>_Rules.json), and
README.md to /Ontology/Mappings/<Source>/.
Pull Mappings
Use the Pull Mappings job to import ontology mapping records and rules for a specific source from Git.
Job inputs
To configure the Pull Mappings job, use the following parameters:
| Parameter | Description |
|---|---|
Source |
Required. The ontology source (integration name) whose mapping records and rules you want to import. |
Repo URL |
Optional. Overrides the default repository URL. |
Branch |
Optional. Overrides the default branch. |
Git Server Fingerprint |
Optional. Overrides the default SSH host fingerprint. |
Job outputs
Registers ontology mapping rules and visual family assignments in the platform ontology settings. Mappings appear in the Ontology Status table after corresponding events are ingested.
Push Custom Family
Use the Push Custom Family job to export custom visual family definitions and icons to Git.
Job inputs
To configure the Push Custom Family job, use the following parameters:
| Parameter | Description |
|---|---|
Family Name |
Required. A comma-separated list of custom visual family names to export. |
Commit |
Required. The Git commit message. |
Repo URL |
Optional. Overrides the default repository URL. |
Branch |
Optional. Overrides the default branch. |
Commit Author |
Optional. Overrides the default commit author. |
Git Server Fingerprint |
Optional. Overrides the default SSH host fingerprint. |
Readme Addon |
Optional. Custom content appended to the generated Supports both Markdown syntax and Jinja templates. |
Job outputs
Exports visual family definitions (<Family_Name>.json), icon image files (<Family_Name>.png), and
README.md to /Ontology/VisualFamilies/<Family_Name>/.
Pull Custom Family
Use the Pull Custom Family job to import a custom visual family definition and icon from Git.
Job inputs
To configure the Pull Custom Family job, use the following parameters:
| Parameter | Description |
|---|---|
Family Name |
Required. The exact name of the custom visual family to import. |
Repo URL |
Optional. Overrides the default repository URL. |
Branch |
Optional. Overrides the default branch. |
Git Server Fingerprint |
Optional. Overrides the default SSH host fingerprint. |
Job outputs
Imports the custom visual family definition and icon into the platform ontology settings.
Push Simulated Cases
Use the Push Simulated Cases job to export simulated test cases to Git.
Job inputs
To configure the Push Simulated Cases job, use the following parameters:
| Parameter | Description |
|---|---|
Simulated Cases |
Required. A comma-separated list of simulated case names to export. |
Commit |
Required. The Git commit message. |
Repo URL |
Optional. Overrides the default repository URL. |
Branch |
Optional. Overrides the default branch. |
Commit Author |
Optional. Overrides the default commit author. |
Git Server Fingerprint |
Optional. Overrides the default SSH host fingerprint. |
Job outputs
Exports simulated cases as .case files to /SimulatedCases/<Case_Name>.case.
Pull Simulated Cases
Use the Pull Simulated Cases job to import simulated test cases from Git.
Job inputs
To configure the Pull Simulated Cases job, use the following parameters:
| Parameter | Description |
|---|---|
Simulated Cases |
Required. A comma-separated list of simulated case names to import from the repository. |
Repo URL |
Optional. Overrides the default repository URL. |
Branch |
Optional. Overrides the default branch. |
Git Server Fingerprint |
Optional. Overrides the default SSH host fingerprint. |
Job outputs
Imports the specified simulated cases into the platform's simulated cases catalog.
Troubleshooting
The following table provides remediation steps for common synchronization errors:
| Observed error message | Operational cause | Remediation procedure |
|---|---|---|
Authentication failed, 401 Unauthorized, or Connection refused during action or job execution |
Running this integration on an unmigrated legacy instance (*.siemplify-soar.com). GitSync communicates with Google SecOps exclusively through Chronicle REST APIs using Google Cloud IAM authentication and no longer supports legacy platform API endpoints (*.siemplify-soar.com/api/). |
Migrate your Google SecOps platform instance to a Chronicle API-enabled environment (accessible using secops.google.com or *.chronicle.security.google.com). For migration instructions, see Chronicle API-enabled environment migration. |
Permission denied (publickey) or Host key verification failed (or Authentication failed for 'https://...') |
Git authentication failure caused by an invalid credential format, missing deploy key write permissions, or mismatched host fingerprint. |
|
403 Forbidden: Insufficient permissions to modify playbook (or Failed to push playbook: Access denied) |
The target playbook has restricted default access permissions (such as Can View), and the Administrator SOC role hasn't been granted Can Edit permissions on the source system. |
In Google SecOps, go to Playbooks, select the affected playbook, open its permissions settings, and add the Administrator SOC role with Can Edit permissions. For detailed steps, see Configure playbook permissions. |
| Pull Content or Pull Integration job times out after 5 minutes | Installing multiple commercial integrations from Content Hub during a single pull operation exceeded the 5-minute job execution timeout. | Install the required commercial integrations manually from Content Hub before running Pull Content, or re-run the Pull Content job to continue importing the remaining assets. |
General error performing Job Pull Content (or 400 Bad Request / 404 Not Found when pulling from an existing legacy branch) |
Attempting to pull a repository branch containing pre-migration legacy configuration files into a Chronicle API-enabled environment. |
|
Playbook '<Playbook_Name>' is assigned to environment(s) that don't exist |
A playbook or block being imported is assigned to an environment or environment group that hasn't been created on the destination instance. | Run Pull Content with the Environments option selected first, or manually create the missing environment in Settings > Environments on the destination instance before pulling playbooks. |
Commit Author parameter must be in the following format: Name <example@gmail.com> |
The Commit Author parameter in the integration instance or job configuration is missing an email address in angle brackets. | Update the Commit Author parameter to match the required format: Name <email@domain.com> (for example, GitSync <gitsync@example.com>). |
400 Bad Request or 409 Conflict when importing ontology mappings |
Event mapping rules in the repository conflict with existing platform ontology rules, or were exported using an older GitSync version. | Execute a fresh Push Mappings job from your Chronicle API-enabled environment to re-export mapping definitions, or resolve duplicate event mapping rules in Settings > Ontology > Mapping Rules before re-running the job. |
Need more help? Get answers from Community members and Google SecOps professionals.