[{"data":1,"prerenderedAt":1518},["ShallowReactive",2],{"navigation_docs":3,"-systems-serverless-registry-github-actions":296,"-systems-serverless-registry-github-actions-surround":1513},[4,65,110],{"title":5,"path":6,"stem":7,"children":8,"icon":64},"Systems & Solutions","\u002Fsystems","1.systems\u002F0.index",[9,11,29,46],{"title":10,"path":6,"stem":7},"Overview",{"title":12,"path":13,"stem":14,"children":15},"Serverless Registry","\u002Fsystems\u002Fserverless-registry","1.systems\u002Fserverless-registry\u002F0.index",[16,17,21,25],{"title":10,"path":13,"stem":14},{"title":18,"path":19,"stem":20},"CloudFlare Worker","\u002Fsystems\u002Fserverless-registry\u002Fworker","1.systems\u002Fserverless-registry\u002F1.worker",{"title":22,"path":23,"stem":24},"sreg CLI","\u002Fsystems\u002Fserverless-registry\u002Fsreg-cli","1.systems\u002Fserverless-registry\u002F2.sreg-cli",{"title":26,"path":27,"stem":28},"GitHub Actions","\u002Fsystems\u002Fserverless-registry\u002Fgithub-actions","1.systems\u002Fserverless-registry\u002F3.github-actions",{"title":30,"path":31,"stem":32,"children":33},"Serverless Satis","\u002Fsystems\u002Fserverless-satis","1.systems\u002Fserverless-satis\u002F0.index",[34,35,39,43],{"title":10,"path":31,"stem":32},{"title":36,"path":37,"stem":38},"CLI generator","\u002Fsystems\u002Fserverless-satis\u002Fs3-satis","1.systems\u002Fserverless-satis\u002F1.s3-satis",{"title":40,"path":41,"stem":42},"GitHub Action","\u002Fsystems\u002Fserverless-satis\u002Fs3-satis-github-action","1.systems\u002Fserverless-satis\u002F2.s3-satis-github-action",{"title":18,"path":44,"stem":45},"\u002Fsystems\u002Fserverless-satis\u002Fcloudflare-worker","1.systems\u002Fserverless-satis\u002F3.cloudflare-worker",{"title":47,"path":48,"stem":49,"children":50},"WebPrint","\u002Fsystems\u002Fwebprint","1.systems\u002Fwebprint\u002F0.index",[51,52,56,60],{"title":10,"path":48,"stem":49},{"title":53,"path":54,"stem":55},"Server","\u002Fsystems\u002Fwebprint\u002Fserver","1.systems\u002Fwebprint\u002F1.server",{"title":57,"path":58,"stem":59},"Host Service","\u002Fsystems\u002Fwebprint\u002Fservice","1.systems\u002Fwebprint\u002F2.service",{"title":61,"path":62,"stem":63},"API","\u002Fsystems\u002Fwebprint\u002Fapi","1.systems\u002Fwebprint\u002F3.api","mdi:monitor",{"title":66,"path":67,"stem":68,"children":69,"icon":109},"Apps & Tools","\u002Fapps","2.apps\u002F0.index",[70,71,75,79,83,87,91],{"title":10,"path":67,"stem":68},{"title":72,"path":73,"stem":74},"File Hasher.NET","\u002Fapps\u002Ffile-hasher","2.apps\u002F1.file-hasher",{"title":76,"path":77,"stem":78},"GitFlow Tool","\u002Fapps\u002Fgit-flow","2.apps\u002F1.git-flow",{"title":80,"path":81,"stem":82},"NFC to RFID","\u002Fapps\u002Fnfc-to-rfid","2.apps\u002F1.nfc-to-rfid",{"title":84,"path":85,"stem":86},"PDF Scan Splitter","\u002Fapps\u002Fpdf-scan-splitter","2.apps\u002F1.pdf-scan-splitter",{"title":88,"path":89,"stem":90},"USB Scale Counter","\u002Fapps\u002Fusb-scale-counter","2.apps\u002F1.usb-scale-counter",{"title":92,"path":93,"stem":94,"children":95,"page":108},"Deprecated","\u002Fapps\u002Fdeprecated","2.apps\u002F9.deprecated",[96,100,104],{"title":97,"path":98,"stem":99},"Batch Comparator","\u002Fapps\u002Fdeprecated\u002Fcomparator","2.apps\u002F9.deprecated\u002Fcomparator",{"title":101,"path":102,"stem":103},"ContactBridge","\u002Fapps\u002Fdeprecated\u002Fcontact-bridge","2.apps\u002F9.deprecated\u002Fcontact-bridge",{"title":105,"path":106,"stem":107},"File Hasher.PY","\u002Fapps\u002Fdeprecated\u002Ffile-hasher-python","2.apps\u002F9.deprecated\u002Ffile-hasher-python",false,"teenyicons:terminal-outline",{"title":111,"path":112,"stem":113,"children":114,"icon":295},"Libraries & Packages","\u002Flibraries","3.libraries\u002F0.index",[115,116,173,214,227,239],{"title":10,"path":112,"stem":113},{"title":117,"path":118,"stem":119,"children":120,"page":108},"PHP & Laravel","\u002Flibraries\u002Fphp","3.libraries\u002F100.php",[121,125,129,133,137,141,145,149,153,157,161,165,169],{"title":122,"path":123,"stem":124},"Binary Tools","\u002Flibraries\u002Fphp\u002Fbinary-tools","3.libraries\u002F100.php\u002Fbinary-tools",{"title":126,"path":127,"stem":128},"Certificate Chain","\u002Flibraries\u002Fphp\u002Fcert-chain","3.libraries\u002F100.php\u002Fcert-chain",{"title":130,"path":131,"stem":132},"Eloquent Sluggable","\u002Flibraries\u002Fphp\u002Feloquent-sluggable","3.libraries\u002F100.php\u002Feloquent-sluggable",{"title":134,"path":135,"stem":136},"Eloquent Tokenable","\u002Flibraries\u002Fphp\u002Feloquent-tokenable","3.libraries\u002F100.php\u002Feloquent-tokenable",{"title":138,"path":139,"stem":140},"Eloquent ULID-able","\u002Flibraries\u002Fphp\u002Feloquent-ulidable","3.libraries\u002F100.php\u002Feloquent-ulidable",{"title":142,"path":143,"stem":144},"Eloquent UUID-able","\u002Flibraries\u002Fphp\u002Feloquent-uuidable","3.libraries\u002F100.php\u002Feloquent-uuidable",{"title":146,"path":147,"stem":148},"emSzmal Banking API wrapper","\u002Flibraries\u002Fphp\u002Femszmal","3.libraries\u002F100.php\u002Femszmal",{"title":150,"path":151,"stem":152},"EPC Tag Data Standard","\u002Flibraries\u002Fphp\u002Fepc-tds","3.libraries\u002F100.php\u002Fepc-tds",{"title":154,"path":155,"stem":156},"File Hasher.PHP","\u002Flibraries\u002Fphp\u002Ffile-hasher","3.libraries\u002F100.php\u002Ffile-hasher",{"title":158,"path":159,"stem":160},"Content Negotiable Responses for Laravel","\u002Flibraries\u002Fphp\u002Flaravel-content-negotiable-responses","3.libraries\u002F100.php\u002Flaravel-content-negotiable-responses",{"title":162,"path":163,"stem":164},"LPD Client and Server","\u002Flibraries\u002Fphp\u002Flpd","3.libraries\u002F100.php\u002Flpd",{"title":166,"path":167,"stem":168},"Partial Key Verification Library for PHP","\u002Flibraries\u002Fphp\u002Fpartial-key-verification","3.libraries\u002F100.php\u002Fpartial-key-verification",{"title":170,"path":171,"stem":172},"WebPrint.PHP","\u002Flibraries\u002Fphp\u002Fwebprint","3.libraries\u002F100.php\u002Fwebprint",{"title":174,"path":175,"stem":176,"children":177,"page":108},"Capacitor.JS","\u002Flibraries\u002Fcapacitor","3.libraries\u002F200.capacitor",[178,182,186,190,194,198,202,206,210],{"title":179,"path":180,"stem":181},"SPP Bluetooth Printer for Capacitor.js","\u002Flibraries\u002Fcapacitor\u002Fbluetooth-printer","3.libraries\u002F200.capacitor\u002Fbluetooth-printer",{"title":183,"path":184,"stem":185},"Sunmi Camera Scanner for Capacitor.js","\u002Flibraries\u002Fcapacitor\u002Fsunmi-camera-scanner","3.libraries\u002F200.capacitor\u002Fsunmi-camera-scanner",{"title":187,"path":188,"stem":189},"Sunmi Keyboard Handler for Capacitor.js","\u002Flibraries\u002Fcapacitor\u002Fsunmi-keyboard-handler","3.libraries\u002F200.capacitor\u002Fsunmi-keyboard-handler",{"title":191,"path":192,"stem":193},"Sunmi Inner Printer SDK for Capacitor.js","\u002Flibraries\u002Fcapacitor\u002Fsunmi-printer","3.libraries\u002F200.capacitor\u002Fsunmi-printer",{"title":195,"path":196,"stem":197},"Sunmi Scan Head  SDK for Capacitor.js","\u002Flibraries\u002Fcapacitor\u002Fsunmi-scanhead","3.libraries\u002F200.capacitor\u002Fsunmi-scanhead",{"title":199,"path":200,"stem":201},"Sunmi Scan Head (lite) SDK for Capacitor.js","\u002Flibraries\u002Fcapacitor\u002Fsunmi-scanhead-lite","3.libraries\u002F200.capacitor\u002Fsunmi-scanhead-lite",{"title":203,"path":204,"stem":205},"Sunmi UHF RFID SDK for Capacitor.js","\u002Flibraries\u002Fcapacitor\u002Fsunmi-uhf","3.libraries\u002F200.capacitor\u002Fsunmi-uhf",{"title":207,"path":208,"stem":209},"Dymo M10 USB Scale driver for Capacitor.js","\u002Flibraries\u002Fcapacitor\u002Fusb-scale","3.libraries\u002F200.capacitor\u002Fusb-scale",{"title":211,"path":212,"stem":213},"WebView WatchDog for Capacitor.js","\u002Flibraries\u002Fcapacitor\u002Fwebview-watchdog","3.libraries\u002F200.capacitor\u002Fwebview-watchdog",{"title":215,"path":216,"stem":217,"children":218,"page":108},"JavaScript & TypeScript","\u002Flibraries\u002Fjs","3.libraries\u002F300.js",[219,223],{"title":220,"path":221,"stem":222},"Partial Key Verification Library for TS\u002FJS","\u002Flibraries\u002Fjs\u002Fpartial-key-verification","3.libraries\u002F300.js\u002Fpartial-key-verification",{"title":224,"path":225,"stem":226},"WebPrint.JS","\u002Flibraries\u002Fjs\u002Fwebprint","3.libraries\u002F300.js\u002Fwebprint",{"title":228,"path":229,"stem":230,"children":231,"page":108},".NET & C#","\u002Flibraries\u002Fnet","3.libraries\u002F400.net",[232,235],{"title":72,"path":233,"stem":234},"\u002Flibraries\u002Fnet\u002Ffile-hasher","3.libraries\u002F400.net\u002Ffile-hasher",{"title":236,"path":237,"stem":238},"Partial Key Verification Library for Compact Framework","\u002Flibraries\u002Fnet\u002Fpartial-key-verification","3.libraries\u002F400.net\u002Fpartial-key-verification",{"title":92,"path":240,"stem":241,"children":242,"page":108},"\u002Flibraries\u002Fdeprecated","3.libraries\u002F999.deprecated",[243,247,251,255,259,263,267,271,275,279,283,287,291],{"title":244,"path":245,"stem":246},"CoinHive API and Captcha","\u002Flibraries\u002Fdeprecated\u002Fcoinhive-api","3.libraries\u002F999.deprecated\u002Fcoinhive-api",{"title":248,"path":249,"stem":250},"Eloquent Encryptable","\u002Flibraries\u002Fdeprecated\u002Feloquent-encryptable","3.libraries\u002F999.deprecated\u002Feloquent-encryptable",{"title":252,"path":253,"stem":254},"Eloquent GUID-able","\u002Flibraries\u002Fdeprecated\u002Feloquent-guidable","3.libraries\u002F999.deprecated\u002Feloquent-guidable",{"title":256,"path":257,"stem":258},"Laravel Web Cron","\u002Flibraries\u002Fdeprecated\u002Flaravel-cron","3.libraries\u002F999.deprecated\u002Flaravel-cron",{"title":260,"path":261,"stem":262},"Laravel .env filler","\u002Flibraries\u002Fdeprecated\u002Flaravel-dotenv-filler","3.libraries\u002F999.deprecated\u002Flaravel-dotenv-filler",{"title":264,"path":265,"stem":266},"Laravel Permissions","\u002Flibraries\u002Fdeprecated\u002Flaravel-permissions","3.libraries\u002F999.deprecated\u002Flaravel-permissions",{"title":268,"path":269,"stem":270},"Polish Validator Rules for Laravel","\u002Flibraries\u002Fdeprecated\u002Flaravel-polish-validator","3.libraries\u002F999.deprecated\u002Flaravel-polish-validator",{"title":272,"path":273,"stem":274},"Laravel SMS Notification Channel","\u002Flibraries\u002Fdeprecated\u002Flaravel-sms","3.libraries\u002F999.deprecated\u002Flaravel-sms",{"title":276,"path":277,"stem":278},"Laravel SMS Notification Channel - JustSend.pl Driver","\u002Flibraries\u002Fdeprecated\u002Flaravel-sms-justsend","3.libraries\u002F999.deprecated\u002Flaravel-sms-justsend",{"title":280,"path":281,"stem":282},"Laravel SMS Notification Channel - SerwerSMS.pl Driver","\u002Flibraries\u002Fdeprecated\u002Flaravel-sms-serwersms","3.libraries\u002F999.deprecated\u002Flaravel-sms-serwersms",{"title":284,"path":285,"stem":286},"Diceware Generator","\u002Flibraries\u002Fdeprecated\u002Fpassphrase-generator","3.libraries\u002F999.deprecated\u002Fpassphrase-generator",{"title":288,"path":289,"stem":290},"Raw Printer tools for C#","\u002Flibraries\u002Fdeprecated\u002Fraw-printer","3.libraries\u002F999.deprecated\u002Fraw-printer",{"title":292,"path":293,"stem":294},"Signed Document","\u002Flibraries\u002Fdeprecated\u002Fsigned-document","3.libraries\u002F999.deprecated\u002Fsigned-document","charm:package",{"id":297,"title":298,"active":299,"body":300,"description":1504,"extension":1505,"featured":1506,"featured_description":1506,"featured_icon":1506,"github":335,"layout":1506,"links":1506,"list_title":1507,"meta":1508,"navigation":1509,"path":27,"platform":26,"seo":1510,"stem":28,"system":12,"system_url":13,"type":1511,"__hash__":1512},"docs\u002F1.systems\u002Fserverless-registry\u002F3.github-actions.md","Serverless Registry GitHub Actions",true,{"type":301,"value":302,"toc":1493},"minimark",[303,329,343,410,415,486,503,716,730,735,745,835,844,848,1025,1029,1045,1171,1210,1214,1217,1267,1306,1310,1410,1419,1423,1452,1468,1472,1489],[304,305,306,307,314,315,317,318,325,326,328],"p",{},"Composite ",[308,309,26],"a",{"href":310,":target":311,"rel":312},"https:\u002F\u002Fgithub.com\u002Ffeatures\u002Factions","_blank",[313],"nofollow"," for ",[308,316,12],{"href":13},",\nbuilt on the ",[308,319,320,324],{"href":23},[321,322,323],"code",{},"sreg"," CLI",". Every action installs ",[321,327,323],{}," from its GitHub releases\n(checksum verified) on Linux, macOS and Windows runners.",[330,331,332,338],"u-button-group",{},[333,334,337],"u-button",{"href":335,"icon":336,"target":311},"https:\u002F\u002Fgithub.com\u002Fkduma-OSS\u002Fserverless-registry-action","bxl:github","GitHub Repository",[333,339,342],{"href":340,"icon":341,"target":311},"https:\u002F\u002Fgithub.com\u002Fkduma-OSS\u002Fserverless-registry-action#readme","material-symbols:menu-book","Marketplace README",[344,345,346,359],"table",{},[347,348,349],"thead",{},[350,351,352,356],"tr",{},[353,354,355],"th",{},"Action",[353,357,358],{},"What it does",[360,361,362,373,390,400],"tbody",{},[350,363,364,370],{},[365,366,367],"td",{},[321,368,369],{},"kduma-OSS\u002Fserverless-registry-action\u002Fpublish@v1",[365,371,372],{},"Publishes one package version.",[350,374,375,380],{},[365,376,377],{},[321,378,379],{},"kduma-OSS\u002Fserverless-registry-action\u002Fsetup@v1",[365,381,382,383,385,386,389],{},"Only installs ",[321,384,323],{}," and adds it to ",[321,387,388],{},"PATH",".",[350,391,392,397],{},[365,393,394],{},[321,395,396],{},"kduma-OSS\u002Fserverless-registry-action\u002Fauth@v1",[365,398,399],{},"Writes registry credentials for a package manager so installs work.",[350,401,402,407],{},[365,403,404],{},[321,405,406],{},"kduma-OSS\u002Fserverless-registry-action\u002Fget@v1",[365,408,409],{},"Downloads files of a generic package version.",[411,412,414],"h2",{"id":413},"publish","Publish",[416,417,422],"pre",{"className":418,"code":419,"language":420,"meta":421,"style":421},"language-yaml shiki shiki-themes material-theme-lighter github-light github-dark monokai","- uses: kduma-OSS\u002Fserverless-registry-action\u002Fpublish@v1\n  with:\n    ecosystem: composer\n    registry: https:\u002F\u002Fpackages.example.com\n    token: ${{ secrets.REGISTRY_PUBLISH_TOKEN }}\n","yaml","",[321,423,424,444,453,464,475],{"__ignoreMap":421},[425,426,429,433,437,440],"span",{"class":427,"line":428},"line",1,[425,430,432],{"class":431},"swvn1","-",[425,434,436],{"class":435},"sHsBP"," uses",[425,438,439],{"class":431},":",[425,441,443],{"class":442},"sLACW"," kduma-OSS\u002Fserverless-registry-action\u002Fpublish@v1\n",[425,445,447,450],{"class":427,"line":446},2,[425,448,449],{"class":435},"  with",[425,451,452],{"class":431},":\n",[425,454,456,459,461],{"class":427,"line":455},3,[425,457,458],{"class":435},"    ecosystem",[425,460,439],{"class":431},[425,462,463],{"class":442}," composer\n",[425,465,467,470,472],{"class":427,"line":466},4,[425,468,469],{"class":435},"    registry",[425,471,439],{"class":431},[425,473,474],{"class":442}," https:\u002F\u002Fpackages.example.com\n",[425,476,478,481,483],{"class":427,"line":477},5,[425,479,480],{"class":435},"    token",[425,482,439],{"class":431},[425,484,485],{"class":442}," ${{ secrets.REGISTRY_PUBLISH_TOKEN }}\n",[304,487,488,489,492,493,492,496,492,499,502],{},"Packaging tools (",[321,490,491],{},"npm",", ",[321,494,495],{},"cargo",[321,497,498],{},"dotnet",[321,500,501],{},"swift",", Maven\u002FGradle) are not installed by the action - set them up in earlier steps.\nMain inputs:",[344,504,505,515],{},[347,506,507],{},[350,508,509,512],{},[353,510,511],{},"Input",[353,513,514],{},"Description",[360,516,517,546,559,569,583,611,624,652,665,684,703],{},[350,518,519,524],{},[365,520,521],{},[321,522,523],{},"ecosystem",[365,525,526,527,492,530,492,532,492,534,492,537,492,540,542,543,389],{},"Required: ",[321,528,529],{},"composer",[321,531,491],{},[321,533,495],{},[321,535,536],{},"nuget",[321,538,539],{},"generic",[321,541,501],{}," or ",[321,544,545],{},"maven",[350,547,548,553],{},[365,549,550],{},[321,551,552],{},"registry",[365,554,555,556,389],{},"Required: registry URL, exactly its ",[321,557,558],{},"PUBLIC_URL",[350,560,561,566],{},[365,562,563],{},[321,564,565],{},"token",[365,567,568],{},"Publish token. Empty: OIDC.",[350,570,571,580],{},[365,572,573,576,577],{},[321,574,575],{},"version"," \u002F ",[321,578,579],{},"tag-prefix",[365,581,582],{},"Explicit version, or take it from the tag with this prefix (monorepos).",[350,584,585,608],{},[365,586,587,492,590,492,593,492,596,492,599,492,602,492,605],{},[321,588,589],{},"path",[321,591,592],{},"workspace",[321,594,595],{},"package",[321,597,598],{},"project",[321,600,601],{},"from-dir",[321,603,604],{},"coords",[321,606,607],{},"scope",[365,609,610],{},"Ecosystem specific selectors.",[350,612,613,621],{},[365,614,615,492,618],{},[321,616,617],{},"generic-files",[321,619,620],{},"generic-labels",[365,622,623],{},"Files and labels for generic packages.",[350,625,626,631],{},[365,627,628],{},[321,629,630],{},"archive",[365,632,633,634,492,637,492,640,492,643,646,647,651],{},"composer, npm, cargo, nuget: publish this archive (",[321,635,636],{},".zip",[321,638,639],{},".tgz",[321,641,642],{},".crate",[321,644,645],{},".nupkg","), built earlier, byte for byte (",[308,648,650],{"href":649},"#publishing-a-prebuilt-archive","see below",").",[350,653,654,659],{},[365,655,656],{},[321,657,658],{},"source-registry-index",[365,660,661,662,664],{},"cargo, with ",[321,663,630],{},": index URL of the retired registry the crate was built for.",[350,666,667,675],{},[365,668,669,492,672],{},[321,670,671],{},"extra-flags",[321,673,674],{},"args",[365,676,677,678,680,681,389],{},"Extra ",[321,679,323],{}," flags \u002F packaging tool arguments after ",[321,682,683],{},"--",[350,685,686,694],{},[365,687,688,492,691],{},[321,689,690],{},"dry-run",[321,692,693],{},"skip-existing",[365,695,696,698,699,702],{},[321,697,693],{}," defaults to ",[321,700,701],{},"true",", so re-running a workflow is safe.",[350,704,705,710],{},[365,706,707],{},[321,708,709],{},"sreg-version",[365,711,712,713,715],{},"Pin a ",[321,714,323],{}," release.",[304,717,718,719,492,722,492,724,492,727,389],{},"Outputs: ",[321,720,721],{},"name",[321,723,575],{},[321,725,726],{},"url",[321,728,729],{},"skipped",[731,732,734],"h3",{"id":733},"authentication","Authentication",[304,736,737,738,740,741,744],{},"Without secrets, using GitHub Actions OIDC (the registry needs a ",[321,739,413],{}," credential with a ",[321,742,743],{},"gh"," secret trusting the repository):",[416,746,748],{"className":418,"code":747,"language":420,"meta":421,"style":421},"permissions:\n  contents: read\n  id-token: write\nsteps:\n  - uses: actions\u002Fcheckout@v4\n  - uses: kduma-OSS\u002Fserverless-registry-action\u002Fpublish@v1\n    with:\n      ecosystem: composer\n      registry: https:\u002F\u002Fpackages.example.com\n",[321,749,750,757,767,777,784,796,807,815,825],{"__ignoreMap":421},[425,751,752,755],{"class":427,"line":428},[425,753,754],{"class":435},"permissions",[425,756,452],{"class":431},[425,758,759,762,764],{"class":427,"line":446},[425,760,761],{"class":435},"  contents",[425,763,439],{"class":431},[425,765,766],{"class":442}," read\n",[425,768,769,772,774],{"class":427,"line":455},[425,770,771],{"class":435},"  id-token",[425,773,439],{"class":431},[425,775,776],{"class":442}," write\n",[425,778,779,782],{"class":427,"line":466},[425,780,781],{"class":435},"steps",[425,783,452],{"class":431},[425,785,786,789,791,793],{"class":427,"line":477},[425,787,788],{"class":431},"  -",[425,790,436],{"class":435},[425,792,439],{"class":431},[425,794,795],{"class":442}," actions\u002Fcheckout@v4\n",[425,797,799,801,803,805],{"class":427,"line":798},6,[425,800,788],{"class":431},[425,802,436],{"class":435},[425,804,439],{"class":431},[425,806,443],{"class":442},[425,808,810,813],{"class":427,"line":809},7,[425,811,812],{"class":435},"    with",[425,814,452],{"class":431},[425,816,818,821,823],{"class":427,"line":817},8,[425,819,820],{"class":435},"      ecosystem",[425,822,439],{"class":431},[425,824,463],{"class":442},[425,826,828,831,833],{"class":427,"line":827},9,[425,829,830],{"class":435},"      registry",[425,832,439],{"class":431},[425,834,474],{"class":442},[304,836,837,838,840,841,843],{},"Alternatively pass a ",[321,839,565],{},", or put credentials into the ",[321,842,552],{}," URL (store it as a secret).",[731,845,847],{"id":846},"monorepos","Monorepos",[416,849,851],{"className":418,"code":850,"language":420,"meta":421,"style":421},"on:\n  push:\n    tags: [\"sdk\u002Fv*\"]\njobs:\n  publish:\n    runs-on: ubuntu-latest\n    permissions: { contents: read, id-token: write }\n    steps:\n      - uses: actions\u002Fcheckout@v4\n      - uses: kduma-OSS\u002Fserverless-registry-action\u002Fpublish@v1\n        with:\n          ecosystem: composer\n          registry: https:\u002F\u002Fpackages.example.com\n          path: packages\u002Fsdk\n          tag-prefix: sdk\u002Fv\n",[321,852,853,861,868,890,897,904,914,946,953,964,975,983,993,1003,1014],{"__ignoreMap":421},[425,854,855,859],{"class":427,"line":428},[425,856,858],{"class":857},"s8HiA","on",[425,860,452],{"class":431},[425,862,863,866],{"class":427,"line":446},[425,864,865],{"class":435},"  push",[425,867,452],{"class":431},[425,869,870,873,875,878,882,885,887],{"class":427,"line":455},[425,871,872],{"class":435},"    tags",[425,874,439],{"class":431},[425,876,877],{"class":431}," [",[425,879,881],{"class":880},"siCPE","\"",[425,883,884],{"class":442},"sdk\u002Fv*",[425,886,881],{"class":880},[425,888,889],{"class":431},"]\n",[425,891,892,895],{"class":427,"line":466},[425,893,894],{"class":435},"jobs",[425,896,452],{"class":431},[425,898,899,902],{"class":427,"line":477},[425,900,901],{"class":435},"  publish",[425,903,452],{"class":431},[425,905,906,909,911],{"class":427,"line":798},[425,907,908],{"class":435},"    runs-on",[425,910,439],{"class":431},[425,912,913],{"class":442}," ubuntu-latest\n",[425,915,916,919,921,924,927,929,932,935,938,940,943],{"class":427,"line":809},[425,917,918],{"class":435},"    permissions",[425,920,439],{"class":431},[425,922,923],{"class":431}," {",[425,925,926],{"class":435}," contents",[425,928,439],{"class":431},[425,930,931],{"class":442}," read",[425,933,934],{"class":431},",",[425,936,937],{"class":435}," id-token",[425,939,439],{"class":431},[425,941,942],{"class":442}," write",[425,944,945],{"class":431}," }\n",[425,947,948,951],{"class":427,"line":817},[425,949,950],{"class":435},"    steps",[425,952,452],{"class":431},[425,954,955,958,960,962],{"class":427,"line":827},[425,956,957],{"class":431},"      -",[425,959,436],{"class":435},[425,961,439],{"class":431},[425,963,795],{"class":442},[425,965,967,969,971,973],{"class":427,"line":966},10,[425,968,957],{"class":431},[425,970,436],{"class":435},[425,972,439],{"class":431},[425,974,443],{"class":442},[425,976,978,981],{"class":427,"line":977},11,[425,979,980],{"class":435},"        with",[425,982,452],{"class":431},[425,984,986,989,991],{"class":427,"line":985},12,[425,987,988],{"class":435},"          ecosystem",[425,990,439],{"class":431},[425,992,463],{"class":442},[425,994,996,999,1001],{"class":427,"line":995},13,[425,997,998],{"class":435},"          registry",[425,1000,439],{"class":431},[425,1002,474],{"class":442},[425,1004,1006,1009,1011],{"class":427,"line":1005},14,[425,1007,1008],{"class":435},"          path",[425,1010,439],{"class":431},[425,1012,1013],{"class":442}," packages\u002Fsdk\n",[425,1015,1017,1020,1022],{"class":427,"line":1016},15,[425,1018,1019],{"class":435},"          tag-prefix",[425,1021,439],{"class":431},[425,1023,1024],{"class":442}," sdk\u002Fv\n",[731,1026,1028],{"id":1027},"publishing-a-prebuilt-archive","Publishing a prebuilt archive",[304,1030,1031,1032,1034,1035,492,1037,492,1039,542,1041,1044],{},"Build, test and protect the archive in one job, download that artifact in the publishing job and pass it as ",[321,1033,630],{},": exactly\nthose bytes are uploaded, the package, version and dependencies are read from the manifest inside the archive, and neither a\ncheckout nor ",[321,1036,491],{},[321,1038,495],{},[321,1040,498],{},[321,1042,1043],{},"git"," is needed.",[416,1046,1048],{"className":418,"code":1047,"language":420,"meta":421,"style":421},"publish:\n  runs-on: ubuntu-latest\n  permissions:\n    id-token: write\n  steps:\n    - uses: actions\u002Fdownload-artifact@v4\n      with:\n        name: dist\n        path: dist\n    - uses: kduma-OSS\u002Fserverless-registry-action\u002Fpublish@v1\n      with:\n        ecosystem: npm\n        registry: https:\u002F\u002Fpackages.example.com\n        archive: dist\u002Fpackage.tgz\n",[321,1049,1050,1056,1065,1072,1081,1088,1100,1107,1117,1126,1136,1142,1152,1161],{"__ignoreMap":421},[425,1051,1052,1054],{"class":427,"line":428},[425,1053,413],{"class":435},[425,1055,452],{"class":431},[425,1057,1058,1061,1063],{"class":427,"line":446},[425,1059,1060],{"class":435},"  runs-on",[425,1062,439],{"class":431},[425,1064,913],{"class":442},[425,1066,1067,1070],{"class":427,"line":455},[425,1068,1069],{"class":435},"  permissions",[425,1071,452],{"class":431},[425,1073,1074,1077,1079],{"class":427,"line":466},[425,1075,1076],{"class":435},"    id-token",[425,1078,439],{"class":431},[425,1080,776],{"class":442},[425,1082,1083,1086],{"class":427,"line":477},[425,1084,1085],{"class":435},"  steps",[425,1087,452],{"class":431},[425,1089,1090,1093,1095,1097],{"class":427,"line":798},[425,1091,1092],{"class":431},"    -",[425,1094,436],{"class":435},[425,1096,439],{"class":431},[425,1098,1099],{"class":442}," actions\u002Fdownload-artifact@v4\n",[425,1101,1102,1105],{"class":427,"line":809},[425,1103,1104],{"class":435},"      with",[425,1106,452],{"class":431},[425,1108,1109,1112,1114],{"class":427,"line":817},[425,1110,1111],{"class":435},"        name",[425,1113,439],{"class":431},[425,1115,1116],{"class":442}," dist\n",[425,1118,1119,1122,1124],{"class":427,"line":827},[425,1120,1121],{"class":435},"        path",[425,1123,439],{"class":431},[425,1125,1116],{"class":442},[425,1127,1128,1130,1132,1134],{"class":427,"line":966},[425,1129,1092],{"class":431},[425,1131,436],{"class":435},[425,1133,439],{"class":431},[425,1135,443],{"class":442},[425,1137,1138,1140],{"class":427,"line":977},[425,1139,1104],{"class":435},[425,1141,452],{"class":431},[425,1143,1144,1147,1149],{"class":427,"line":985},[425,1145,1146],{"class":435},"        ecosystem",[425,1148,439],{"class":431},[425,1150,1151],{"class":442}," npm\n",[425,1153,1154,1157,1159],{"class":427,"line":995},[425,1155,1156],{"class":435},"        registry",[425,1158,439],{"class":431},[425,1160,474],{"class":442},[425,1162,1163,1166,1168],{"class":427,"line":1005},[425,1164,1165],{"class":435},"        archive",[425,1167,439],{"class":431},[425,1169,1170],{"class":442}," dist\u002Fpackage.tgz\n",[304,1172,1173,1175,1176,492,1178,492,1180,492,1182,492,1184,1186,1187,1189,1190,1192,1193,1196,1197,1199,1200,1202,1203,1206,1207,1209],{},[321,1174,575],{}," is then only a consistency check; ",[321,1177,579],{},[321,1179,589],{},[321,1181,592],{},[321,1183,595],{},[321,1185,598],{}," and ",[321,1188,674],{}," cannot be\ncombined with ",[321,1191,630],{},". To migrate a crate built for a retired registry add ",[321,1194,1195],{},"source-registry-index: sparse+https:\u002F\u002Fold.example.com\u002Fcargo\u002Findex\u002F",".\n",[321,1198,630],{}," needs an ",[321,1201,323],{}," release that has ",[321,1204,1205],{},"--archive"," (0.1.3 or newer) - set ",[321,1208,709],{}," accordingly if the action's default is older.",[411,1211,1213],{"id":1212},"auth","Auth",[304,1215,1216],{},"Lets package managers install from the registry, right before the install step:",[416,1218,1220],{"className":418,"code":1219,"language":420,"meta":421,"style":421},"- uses: kduma-OSS\u002Fserverless-registry-action\u002Fauth@v1\n  with:\n    ecosystem: composer\n    registry: https:\u002F\u002Fpackages.example.com\n- run: composer install\n",[321,1221,1222,1233,1239,1247,1255],{"__ignoreMap":421},[425,1223,1224,1226,1228,1230],{"class":427,"line":428},[425,1225,432],{"class":431},[425,1227,436],{"class":435},[425,1229,439],{"class":431},[425,1231,1232],{"class":442}," kduma-OSS\u002Fserverless-registry-action\u002Fauth@v1\n",[425,1234,1235,1237],{"class":427,"line":446},[425,1236,449],{"class":435},[425,1238,452],{"class":431},[425,1240,1241,1243,1245],{"class":427,"line":455},[425,1242,458],{"class":435},[425,1244,439],{"class":431},[425,1246,463],{"class":442},[425,1248,1249,1251,1253],{"class":427,"line":466},[425,1250,469],{"class":435},[425,1252,439],{"class":431},[425,1254,474],{"class":442},[425,1256,1257,1259,1262,1264],{"class":427,"line":477},[425,1258,432],{"class":431},[425,1260,1261],{"class":435}," run",[425,1263,439],{"class":431},[425,1265,1266],{"class":442}," composer install\n",[304,1268,1269,1270,492,1272,492,1274,492,1276,492,1278,1186,1280,1282,1283,1285,1286,1289,1290,492,1293,492,1296,492,1299,1302,1303,389],{},"Supports ",[321,1271,529],{},[321,1273,491],{},[321,1275,495],{},[321,1277,536],{},[321,1279,501],{},[321,1281,545],{},"; takes a read ",[321,1284,565],{}," or OIDC. Optional inputs:\n",[321,1287,1288],{},"write"," (credentials file), ",[321,1291,1292],{},"registry-name",[321,1294,1295],{},"npm-scope",[321,1297,1298],{},"cargo-config",[321,1300,1301],{},"swift-scope",". Output: ",[321,1304,1305],{},"file",[411,1307,1309],{"id":1308},"get","Get",[416,1311,1313],{"className":418,"code":1312,"language":420,"meta":421,"style":421},"- id: tool\n  uses: kduma-OSS\u002Fserverless-registry-action\u002Fget@v1\n  with:\n    registry: https:\u002F\u002Fpackages.example.com\n    token: ${{ secrets.REGISTRY_TOKEN }}\n    name: tools\u002Facme-tool\n    version: ^1.2\n    labels: os=linux\n    sole: true\n    out: bin\u002Facme-tool.tar.gz\n",[321,1314,1315,1327,1337,1343,1351,1360,1370,1380,1390,1400],{"__ignoreMap":421},[425,1316,1317,1319,1322,1324],{"class":427,"line":428},[425,1318,432],{"class":431},[425,1320,1321],{"class":435}," id",[425,1323,439],{"class":431},[425,1325,1326],{"class":442}," tool\n",[425,1328,1329,1332,1334],{"class":427,"line":446},[425,1330,1331],{"class":435},"  uses",[425,1333,439],{"class":431},[425,1335,1336],{"class":442}," kduma-OSS\u002Fserverless-registry-action\u002Fget@v1\n",[425,1338,1339,1341],{"class":427,"line":455},[425,1340,449],{"class":435},[425,1342,452],{"class":431},[425,1344,1345,1347,1349],{"class":427,"line":466},[425,1346,469],{"class":435},[425,1348,439],{"class":431},[425,1350,474],{"class":442},[425,1352,1353,1355,1357],{"class":427,"line":477},[425,1354,480],{"class":435},[425,1356,439],{"class":431},[425,1358,1359],{"class":442}," ${{ secrets.REGISTRY_TOKEN }}\n",[425,1361,1362,1365,1367],{"class":427,"line":798},[425,1363,1364],{"class":435},"    name",[425,1366,439],{"class":431},[425,1368,1369],{"class":442}," tools\u002Facme-tool\n",[425,1371,1372,1375,1377],{"class":427,"line":809},[425,1373,1374],{"class":435},"    version",[425,1376,439],{"class":431},[425,1378,1379],{"class":442}," ^1.2\n",[425,1381,1382,1385,1387],{"class":427,"line":817},[425,1383,1384],{"class":435},"    labels",[425,1386,439],{"class":431},[425,1388,1389],{"class":442}," os=linux\n",[425,1391,1392,1395,1397],{"class":427,"line":827},[425,1393,1394],{"class":435},"    sole",[425,1396,439],{"class":431},[425,1398,1399],{"class":857}," true\n",[425,1401,1402,1405,1407],{"class":427,"line":966},[425,1403,1404],{"class":435},"    out",[425,1406,439],{"class":431},[425,1408,1409],{"class":442}," bin\u002Facme-tool.tar.gz\n",[304,1411,718,1412,492,1414,492,1417,389],{},[321,1413,575],{},[321,1415,1416],{},"files",[321,1418,589],{},[411,1420,1422],{"id":1421},"versioning-and-pinning","Versioning and pinning",[304,1424,1425,1428,1429,1432,1433,1436,1437,1439,1440,1442,1443,1445,1446,1448,1449,651],{},[321,1426,1427],{},"@v1"," follows the latest ",[321,1430,1431],{},"1.x"," release; ",[321,1434,1435],{},"@v1.2.3"," or a commit SHA pins it. Each release installs a default ",[321,1438,323],{},"\nrelease, and a new stable ",[321,1441,323],{}," is picked up by a patch release within an hour. Use ",[321,1444,709],{}," to pin ",[321,1447,323],{},"\nyourself (a pinned version must be raised manually when the registry requires a newer client - exit code ",[321,1450,1451],{},"3",[1453,1454,1455,1456,1459,1460,1463,1464,1467],"note",{},"The repository was formerly ",[321,1457,1458],{},"serverless-registry-publish-action","; the old name and the root action still work in ",[321,1461,1462],{},"v1","\nbut are deprecated. Use the ",[321,1465,1466],{},"publish\u002F"," subdirectory.",[411,1469,1471],{"id":1470},"documentation","Documentation",[1473,1474,1475,1482],"ul",{},[1476,1477,1478],"li",{},[308,1479,1481],{"href":340,":target":311,"rel":1480},[313],"README with all inputs and per-ecosystem examples",[1476,1483,1484],{},[308,1485,1488],{"href":1486,":target":311,"rel":1487},"https:\u002F\u002Fgithub.com\u002Fkduma-OSS\u002Fserverless-registry-action\u002Fblob\u002Fmain\u002Fdocs\u002Freleasing.md",[313],"Release process",[1490,1491,1492],"style",{},"html pre.shiki code .swvn1, html code.shiki .swvn1{--shiki-light:#39ADB5;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-sepia:#F8F8F2}html pre.shiki code .sHsBP, html code.shiki .sHsBP{--shiki-light:#E53935;--shiki-default:#22863A;--shiki-dark:#85E89D;--shiki-sepia:#F92672}html pre.shiki code .sLACW, html code.shiki .sLACW{--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-sepia:#E6DB74}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}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 .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .sepia .shiki span {color: var(--shiki-sepia);background: var(--shiki-sepia-bg);font-style: var(--shiki-sepia-font-style);font-weight: var(--shiki-sepia-font-weight);text-decoration: var(--shiki-sepia-text-decoration);}html.sepia .shiki span {color: var(--shiki-sepia);background: var(--shiki-sepia-bg);font-style: var(--shiki-sepia-font-style);font-weight: var(--shiki-sepia-font-weight);text-decoration: var(--shiki-sepia-text-decoration);}html pre.shiki code .s8HiA, html code.shiki .s8HiA{--shiki-light:#FF5370;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-sepia:#AE81FF}html pre.shiki code .siCPE, html code.shiki .siCPE{--shiki-light:#39ADB5;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-sepia:#E6DB74}",{"title":421,"searchDepth":446,"depth":446,"links":1494},[1495,1500,1501,1502,1503],{"id":413,"depth":446,"text":414,"children":1496},[1497,1498,1499],{"id":733,"depth":455,"text":734},{"id":846,"depth":455,"text":847},{"id":1027,"depth":455,"text":1028},{"id":1212,"depth":446,"text":1213},{"id":1308,"depth":446,"text":1309},{"id":1421,"depth":446,"text":1422},{"id":1470,"depth":446,"text":1471},"Composite GitHub Actions for publishing to and installing from Serverless Registry.","md",null,"Serverless Registry Actions",{},{"title":26},{"title":298,"description":1504},"app","E9pwam0tsQsNDWSDeQBKpLbyGKdFJzSXk5yEaK5pd5Y",[1514,1516],{"title":22,"path":23,"stem":24,"description":1515,"children":-1},"Command line tool for publishing packages to Serverless Registry and writing package manager credentials.",{"title":10,"path":31,"stem":32,"description":1517,"children":-1},"Solution for hosting a private Composer repository without running any servers.",1793220976459]