From 4f73a23db6ccd01a18004353bd0e6be6739ec74c Mon Sep 17 00:00:00 2001 From: sberman Date: Mon, 1 Sep 2025 10:31:34 +0300 Subject: [PATCH] Added support to test-conf pack --- content-repo/create-docs.sh | 42 +++++++++++++++++++++++++++++++++++++ content-repo/gendocs.py | 11 ++++++++++ 2 files changed, 53 insertions(+) diff --git a/content-repo/create-docs.sh b/content-repo/create-docs.sh index 8d7d6b883..f45fdb42d 100755 --- a/content-repo/create-docs.sh +++ b/content-repo/create-docs.sh @@ -11,6 +11,12 @@ if [[ "${SCRIPT_DIR}" != /* ]]; then SCRIPT_DIR="${CURRENT_DIR}/${SCRIPT_DIR}" fi +# --- Private pack config --- +PRIVATE_REPO_URL="git@gitlab.xdr.pan.local:xdr/cortex-content/content-test-conf.git" +PRIVATE_PACK_NAME="CortexResponseAndRemediation" +PRIVATE_REPO_BRANCH="master" + + export GIT_LFS_SKIP_SMUDGE=1 if [[ -n "$CONTENT_REPO_DIR" ]]; then @@ -140,6 +146,42 @@ mkdir ${TARGET_DIR}/playbooks mkdir ${TARGET_DIR}/scripts mkdir ${REL_IMGS_DIR} +# === Handle private repo pack for playbook READMEs (sparse checkout) === +if [[ -n "$PRIVATE_REPO_URL" && -n "$PRIVATE_PACK_NAME" ]]; then + PRIVATE_REPO_DIR="${SCRIPT_DIR}/.private-packs" + PRIVATE_BRANCH="${PRIVATE_REPO_BRANCH:-main}" + SPARSE_PATH="content/PrivatePacks/${PRIVATE_PACK_NAME}/Playbooks" + + if [ ! -d "${PRIVATE_REPO_DIR}" ]; then + echo "Cloning only private pack: $PRIVATE_PACK_NAME from $PRIVATE_REPO_URL ..." + git clone --filter=blob:none --no-checkout --depth 1 -b "${PRIVATE_BRANCH}" "${PRIVATE_REPO_URL}" "${PRIVATE_REPO_DIR}" + cd "${PRIVATE_REPO_DIR}" + git sparse-checkout init --cone + git sparse-checkout set "${SPARSE_PATH}" + git checkout "${PRIVATE_BRANCH}" + cd "${SCRIPT_DIR}" + else + echo "Updating private pack repo..." + cd "${PRIVATE_REPO_DIR}" + git fetch origin "${PRIVATE_BRANCH}" + git sparse-checkout set "${SPARSE_PATH}" + git checkout "${PRIVATE_BRANCH}" + git pull + cd "${SCRIPT_DIR}" + fi + + PRIVATE_PACK_PATH="${PRIVATE_REPO_DIR}/${SPARSE_PATH}" + echo "Looking for private pack playbooks at: ${PRIVATE_PACK_PATH}" + + if [ -d "${PRIVATE_PACK_PATH}" ]; then + echo "Copying playbook READMEs from private pack: ${PRIVATE_PACK_NAME}" + cp -r "${PRIVATE_PACK_PATH}"/* "${TARGET_DIR}/playbooks/" + else + echo "Directory does not exist: ${PRIVATE_PACK_PATH}" + echo "No playbooks found for private pack ${PRIVATE_PACK_NAME}" + fi +fi + echo "Copying CommonServerPython.py, demistomock.py, approved_tags.json and approved_usecases.json" cp ${CONTENT_GIT_DIR}/Packs/Base/Scripts/CommonServerPython/CommonServerPython.py . cp ${CONTENT_GIT_DIR}/Tests/demistomock/demistomock.py . diff --git a/content-repo/gendocs.py b/content-repo/gendocs.py index 2a7afb5dc..6bdd2f381 100755 --- a/content-repo/gendocs.py +++ b/content-repo/gendocs.py @@ -40,6 +40,13 @@ def timestamped_print(*args, **kwargs): BASE_URL = "https://xsoar.pan.dev/docs/" MARKETPLACE_URL = "https://cortex.marketplace.pan.dev/marketplace/" + +# Path to private pack playbooks +PRIVATE_PACK_PLAYBOOKS = os.path.abspath(os.path.join( + os.path.dirname(__file__), + ".private-packs/content/PrivatePacks/CortexResponseAndRemediation/Playbooks" +)) + DOCS_LINKS_JSON = {} INTEGRATION_YML_MATCH = [ @@ -521,6 +528,10 @@ def create_docs(content_dir: str, target_dir: str, regex_list: List[str], prefix print(f'Using BRANCH: {BRANCH}') # Search for readme files readme_files = findfiles(regex_list, content_dir) + # Include private pack playbooks if they exist + if os.path.exists(PRIVATE_PACK_PLAYBOOKS): + print(f"Including private pack playbooks from {PRIVATE_PACK_PLAYBOOKS}") + readme_files += findfiles(regex_list, PRIVATE_PACK_PLAYBOOKS) print(f'Processing: {len(readme_files)} {prefix} files ...') if MAX_FILES > 0: print(f'PREVIEW MODE. Truncating file list to: {MAX_FILES}')