> 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/xsoar-6-administrator-guide/6.15/onboard-cortex-xsoar/remote-repositories-in-cortex-xsoar/edit-and-push-content-to-a-remote-repository.md).

# Edit and Push Content to a Remote Repository

Edit and push Cortex XSOAR 6.15 content to a remote repository.

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 feature. If you don't want to save versions, you can click and save the changes.

![multi-tenant-remote-rep.png](https://content.gitbook.com/content/8xEMUKpU65o1wagTHaO3/blobs/dqvJsZESAQo86FTyMFaL/cef13aecc60229f4dc1e2f12fd5a4866326142c5bb0b5b5495663040af133913.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 following server configuration.

| Key                                     | Value  |
| --------------------------------------- | ------ |
| `ui.version.control.push.partial.packs` | `true` |

**Exclude Content**

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**.

{% hint style="info" %}

### Note

* You can only exclude individual content items, not content packs.
* When working with remote repositories and upgrading to v6.0 and above, push your classifiers and mappers on the development environment before upgrading the production environment.
  {% endhint %}

**RBAC Control**

To restrict access when pushing content on the remote repository, add the following server configuration.

| Key                             | Value  |
| ------------------------------- | ------ |
| `UI.version.control.admin.only` | `true` |

{% hint style="info" %}

### Note

This key also removes the **Save Version** feature, which prevents users, who don't have administration permissions, from pushing content changes to the remote repository.
{% endhint %}

**Push and Install Content**

1. 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/8xEMUKpU65o1wagTHaO3/blobs/EP0WVUrFR0GIvsJTWKvD/b57129f379bdd04dcc357de28a381016ab7001d694834aa2816f98dd94788741.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.
2. 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.


---

# 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 dynamically 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/xsoar-6-administrator-guide/6.15/onboard-cortex-xsoar/remote-repositories-in-cortex-xsoar/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 `build a script that syncs our docs to a CMS` 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.
