> For the complete documentation index, see [llms.txt](https://cortex-docs.paloaltonetworks.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://cortex-docs.paloaltonetworks.com/cortex-xsoar-6-multi-tenant-guides/6.15/configure-multi-tenant/remote-repositories-for-multi-tenant-deployments/edit-and-push-content-to-a-remote-repository.md).

# Edit and Push Content to a Remote Repository

Edit and push content to remote repositories in Cortex XSOAR 6.15 multi-tenant deployments.

Once you develop your content, for it to be available as part of a content update for the production environment, you must push the changes to the remote repository.

{% hint style="warning" %}
You should not manually push content to the remote repository. Use only the procedures outlined in the documentation to ensure that your content is properly updated in the production environment
{% endhint %}

You can save versions and manage revisions locally using the Save Version button. Alternatively, you can click and save the changes.

![multi-tenant-remote-rep.png](https://content.gitbook.com/content/yHZcShtJK1E6ap1UmjwI/blobs/vD4lQPKApoyRxaBXmzaF/8350681788bad4ae6f572d5f46519e8c9e2a1f82cdc96431d123249e1772f173.png)

These options are only available for the following content types:

* Automation
* Playbooks
* Integrations
* Classifiers
* Layouts
* Reports
* Dashboards
* Incident types
* Fields
* Preprocess rules
* Lists
* Jobs

For all other content types, your changes are automatically saved locally.

You can push individual items such as a playbook, or content packs as a whole. If you want to have more granular control over the items in the content packs that you push, add the `ui.version.control.push.partial.packs` server configuration and set the value to `true`.

In some cases, you may want to exclude items from being included in the local changes list, preventing them from being pushed to production, on a temporary or permanent basis. To exclude items, go to Settings → **LOCAL CHANGES**. Select the item(s) and click **Exclude**. Excluded items do not appear in the Local Changes list. To move items back to the Local Changes list, click on the **Excluded Changes** tab, select the item(s), and click **Include**. Note that you can only exclude individual content items, not content packs.

{% hint style="info" %}
When working with remote repositories and upgrading to v6.0 and above, push your classifiers and mappers to the development environment before upgrading the production environment.
{% endhint %}

{% stepper %}
{% step %}

### Push content to the Remote Repository

1. Go to Settings → **Local Changes**. Push the following content according to the tabs:

   * **Items**: Content that is not related specifically to a content pack. For example, customized automations or playbooks.

     If you have already pushed a content pack and later edit one of its content items, the edited items will appear in the **Items** tab, not the **Packs** tab.
   * **Packs**: All of the content that is specific to the content packs you installed from Marketplace.

   ![remote-manage.png](https://content.gitbook.com/content/yHZcShtJK1E6ap1UmjwI/blobs/dsGTB61qZYGxnzhIKMCE/c0217bf01a993cabe01e2928f642fabd860cbba4dc22f2e392d069fa5d867e24.png)
2. Select the changes that you want to push to the remote repository, and click **Push**.
3. In the dialog box, add an optional message and click **Push**.
4. If the items have dependencies, review the contents and click **Push**.

   Sometimes you may not want to push all content, content pack dependencies, etc. For example, when a user makes a change in a playbook that includes an automation dependency to which another user is adding a feature, and the change does not require the new feature (version) of the automation, you can push the playbook without the new automation.
   {% endstep %}

{% step %}

### On the remote repository, install the new content

1. At the top of any page, click **Install New Content**.
2. In the dialog box, click **Install Content**.

   You can also check for new content that has been pushed.
3. If conflicts appear, click **Resolve conflicts**.
4. In the **Action** column, select one of the following:
   * **Skip**: Keeps the local content in your production environment.
   * **Replace**: Deletes the local content and installs the content from the remote repository.
5. Click **OK** to save the changes.
   {% endstep %}

{% step %}

### (Optional) On the remote repository, control access when pushing content

1. Select Settings → About → Troubleshooting → **Server Configuration**
2. Click **Add Configuration**.
3. Under Key, enter `UI.version.control.admin.only.`
4. Under Value, enter `true`.
5. Click **Save**.
   {% endstep %}
   {% endstepper %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://cortex-docs.paloaltonetworks.com/cortex-xsoar-6-multi-tenant-guides/6.15/configure-multi-tenant/remote-repositories-for-multi-tenant-deployments/edit-and-push-content-to-a-remote-repository.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
