[{"data":1,"prerenderedAt":421},["ShallowReactive",2],{"docs-paket-veroeffentlichen-en":3},{"id":4,"title":5,"body":6,"category":410,"description":411,"draft":412,"extension":413,"meta":414,"navigation":415,"order":416,"path":417,"seo":418,"stem":419,"__hash__":420},"docsEn\u002Fdocs\u002Fpaket-veroeffentlichen.md","Publish a Package on Open ITSM Hub",{"type":7,"value":8,"toc":404},"minimark",[9,13,35,40,71,78,82,89,118,125,129,140,360,364,392,400],[10,11,5],"h1",{"id":12},"publish-a-package-on-open-itsm-hub",[14,15,16,17,21,22,29,30,34],"p",{},"Open ITSM Hub is an open, versioned directory where every package lives as a JSON file under ",[18,19,20],"code",{},"content\u002Fpackages\u002F"," in the ",[23,24,28],"a",{"href":25,"rel":26},"https:\u002F\u002Fgithub.com\u002FSoftoft-Orga\u002Fopen-itsm-hub",[27],"nofollow","GitHub repository",". \"Publishing\" simply means adding a JSON file via a pull request. There is ",[31,32,33],"strong",{},"no registration and no separate backend",".",[36,37,39],"h2",{"id":38},"method-1-directly-from-the-sopm-generator-recommended","Method 1: Directly from the .sopm Generator (Recommended)",[41,42,43,52,62,68],"ol",{},[44,45,46,47,51],"li",{},"Open the ",[23,48,50],{"href":49},"\u002Ftools\u002Fsopm-generator",".sopm Generator"," and fill out the form.",[44,53,54,55,58,59,34],{},"In the ",[31,56,57],{},"\"Publish on Open ITSM Hub\""," section, click ",[31,60,61],{},"Prepare Pull Request",[44,63,64,65,34],{},"GitHub opens the \"new file\" view with the catalog JSON ",[31,66,67],{},"already pre-filled",[44,69,70],{},"Commit to a branch and open the pull request — you're done.",[14,72,73,74,77],{},"The generator automatically takes care of the name, version, vendor, license, and — thanks to compatibility analysis — all matching ",[18,75,76],{},"compatibility.systems"," entries.",[36,79,81],{"id":80},"method-2-from-an-existing-sopm-cli","Method 2: From an Existing .sopm (CLI)",[14,83,84,85,88],{},"If you already have a ",[18,86,87],{},".sopm",", convert it using the provided script:",[90,91,96],"pre",{"className":92,"code":93,"language":94,"meta":95,"style":95},"language-bash shiki shiki-themes one-dark-pro","python data-scrape\u002Fsopm_to_catalogue.py path\u002Fto\u002FMyPackage.sopm --write\n","bash","",[18,97,98],{"__ignoreMap":95},[99,100,103,107,111,114],"span",{"class":101,"line":102},"line",1,[99,104,106],{"class":105},"sVbv2","python",[99,108,110],{"class":109},"subq3"," data-scrape\u002Fsopm_to_catalogue.py",[99,112,113],{"class":109}," path\u002Fto\u002FMyPackage.sopm",[99,115,117],{"class":116},"sVC51"," --write\n",[14,119,120,121,124],{},"This writes ",[18,122,123],{},"content\u002Fpackages\u002F\u003Cslug>.json",". Afterward, commit the file and open a pull request.",[36,126,128],{"id":127},"the-catalog-entry","The Catalog Entry",[14,130,131,132,135,136,139],{},"The generated JSON follows the ",[18,133,134],{},"packages"," schema (see ",[18,137,138],{},"content.config.ts",") and includes, among other things:",[90,141,145],{"className":142,"code":143,"language":144,"meta":95,"style":95},"language-json shiki shiki-themes one-dark-pro","{\n  \"basic_info\": { \"title\": \"MyPackage\", \"slug\": \"my-package\", \"summary\": \"...\" },\n  \"provider\": { \"vendor_name\": \"Example GmbH\", \"vendor_type\": \"community\" },\n  \"compatibility\": {\n    \"systems\": [\n      { \"system_id\": \"otobo\", \"system_name\": \"OTOBO\", \"supported_versions\": [\"11.0.x\"] },\n      { \"system_id\": \"znuny\", \"system_name\": \"Znuny\", \"supported_versions\": [\"7.0.x\"] }\n    ]\n  },\n  \"technical_details\": { \"latest_version\": \"1.0.0\", \"package_type\": \".opm\" }\n}\n","json",[18,146,147,153,196,224,233,242,280,313,319,325,354],{"__ignoreMap":95},[99,148,149],{"class":101,"line":102},[99,150,152],{"class":151},"sn6KH","{\n",[99,154,156,160,163,166,169,172,175,178,180,183,185,188,190,193],{"class":101,"line":155},2,[99,157,159],{"class":158},"sVyAn","  \"basic_info\"",[99,161,162],{"class":151},": { ",[99,164,165],{"class":158},"\"title\"",[99,167,168],{"class":151},": ",[99,170,171],{"class":109},"\"MyPackage\"",[99,173,174],{"class":151},", ",[99,176,177],{"class":158},"\"slug\"",[99,179,168],{"class":151},[99,181,182],{"class":109},"\"my-package\"",[99,184,174],{"class":151},[99,186,187],{"class":158},"\"summary\"",[99,189,168],{"class":151},[99,191,192],{"class":109},"\"...\"",[99,194,195],{"class":151}," },\n",[99,197,199,202,204,207,209,212,214,217,219,222],{"class":101,"line":198},3,[99,200,201],{"class":158},"  \"provider\"",[99,203,162],{"class":151},[99,205,206],{"class":158},"\"vendor_name\"",[99,208,168],{"class":151},[99,210,211],{"class":109},"\"Example GmbH\"",[99,213,174],{"class":151},[99,215,216],{"class":158},"\"vendor_type\"",[99,218,168],{"class":151},[99,220,221],{"class":109},"\"community\"",[99,223,195],{"class":151},[99,225,227,230],{"class":101,"line":226},4,[99,228,229],{"class":158},"  \"compatibility\"",[99,231,232],{"class":151},": {\n",[99,234,236,239],{"class":101,"line":235},5,[99,237,238],{"class":158},"    \"systems\"",[99,240,241],{"class":151},": [\n",[99,243,245,248,251,253,256,258,261,263,266,268,271,274,277],{"class":101,"line":244},6,[99,246,247],{"class":151},"      { ",[99,249,250],{"class":158},"\"system_id\"",[99,252,168],{"class":151},[99,254,255],{"class":109},"\"otobo\"",[99,257,174],{"class":151},[99,259,260],{"class":158},"\"system_name\"",[99,262,168],{"class":151},[99,264,265],{"class":109},"\"OTOBO\"",[99,267,174],{"class":151},[99,269,270],{"class":158},"\"supported_versions\"",[99,272,273],{"class":151},": [",[99,275,276],{"class":109},"\"11.0.x\"",[99,278,279],{"class":151},"] },\n",[99,281,283,285,287,289,292,294,296,298,301,303,305,307,310],{"class":101,"line":282},7,[99,284,247],{"class":151},[99,286,250],{"class":158},[99,288,168],{"class":151},[99,290,291],{"class":109},"\"znuny\"",[99,293,174],{"class":151},[99,295,260],{"class":158},[99,297,168],{"class":151},[99,299,300],{"class":109},"\"Znuny\"",[99,302,174],{"class":151},[99,304,270],{"class":158},[99,306,273],{"class":151},[99,308,309],{"class":109},"\"7.0.x\"",[99,311,312],{"class":151},"] }\n",[99,314,316],{"class":101,"line":315},8,[99,317,318],{"class":151},"    ]\n",[99,320,322],{"class":101,"line":321},9,[99,323,324],{"class":151},"  },\n",[99,326,328,331,333,336,338,341,343,346,348,351],{"class":101,"line":327},10,[99,329,330],{"class":158},"  \"technical_details\"",[99,332,162],{"class":151},[99,334,335],{"class":158},"\"latest_version\"",[99,337,168],{"class":151},[99,339,340],{"class":109},"\"1.0.0\"",[99,342,174],{"class":151},[99,344,345],{"class":158},"\"package_type\"",[99,347,168],{"class":151},[99,349,350],{"class":109},"\".opm\"",[99,352,353],{"class":151}," }\n",[99,355,357],{"class":101,"line":356},11,[99,358,359],{"class":151},"}\n",[36,361,363],{"id":362},"why-this-works-well","Why This Works Well",[365,366,367,380,386],"ul",{},[44,368,369,372,373,174,376,379],{},[31,370,371],{},"Discoverability"," — Your package appears in fork-specific directories (",[18,374,375],{},"\u002Fotobo-plugins",[18,377,378],{},"\u002Fznuny-plugins",", etc.) and in search results.",[44,381,382,385],{},[31,383,384],{},"Greater Reach"," — Cross-compatible packages are displayed to all matching communities.",[44,387,388,391],{},[31,389,390],{},"Transparency"," — Data origins are versioned and fully traceable.",[14,393,394,395,399],{},"Tip: Use the ",[23,396,398],{"href":397},"\u002Ftools\u002Fcompatibility-checker","Compatibility Checker"," beforehand to see which forks you should declare.",[401,402,403],"style",{},"html pre.shiki code .sVbv2, html code.shiki .sVbv2{--shiki-default:#61AFEF}html pre.shiki code .subq3, html code.shiki .subq3{--shiki-default:#98C379}html pre.shiki code .sVC51, html code.shiki .sVC51{--shiki-default:#D19A66}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html pre.shiki code .sn6KH, html code.shiki .sn6KH{--shiki-default:#ABB2BF}html pre.shiki code .sVyAn, html code.shiki .sVyAn{--shiki-default:#E06C75}",{"title":95,"searchDepth":155,"depth":155,"links":405},[406,407,408,409],{"id":38,"depth":155,"text":39},{"id":80,"depth":155,"text":81},{"id":127,"depth":155,"text":128},{"id":362,"depth":155,"text":363},"Publishing","List your OTOBO or Znuny package for free in the Open ITSM Hub directory via a pre-filled GitHub pull request — no backend login required.",false,"md",{},true,50,"\u002Fdocs\u002Fpaket-veroeffentlichen",{"title":5,"description":411},"docs\u002Fpaket-veroeffentlichen","AnR_PeiXjrw3twAX2KVdR62AYN2qRfn_nD1TOEU6rPo",1787732996813]