[{"data":1,"prerenderedAt":467},["ShallowReactive",2],{"navigation_docs":3,"-getting-started-installation":195,"-getting-started-installation-surround":462},[4,23,65,87,133,155,173],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":22},"Getting started","i-lucide-rocket","\u002Fgetting-started","1.getting-started",[10,14,18],{"title":11,"path":12,"stem":13},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F1.introduction",{"title":15,"path":16,"stem":17},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F2.installation",{"title":19,"path":20,"stem":21},"Quick start","\u002Fgetting-started\u002Fquick-start","1.getting-started\u002F3.quick-start",false,{"title":24,"icon":25,"path":26,"stem":27,"children":28,"page":22},"Guides","i-lucide-compass","\u002Fguides","2.guides",[29,33,37,41,45,49,53,57,61],{"title":30,"path":31,"stem":32},"Authenticate","\u002Fguides\u002Fauthentication","2.guides\u002F1.authentication",{"title":34,"path":35,"stem":36},"Work with several forges","\u002Fguides\u002Fmultiple-forges","2.guides\u002F2.multiple-forges",{"title":38,"path":39,"stem":40},"Configure from the environment","\u002Fguides\u002Fenvironment","2.guides\u002F3.environment",{"title":42,"path":43,"stem":44},"Receive webhooks","\u002Fguides\u002Fwebhooks","2.guides\u002F4.webhooks",{"title":46,"path":47,"stem":48},"Check what a forge supports","\u002Fguides\u002Fcapabilities","2.guides\u002F5.capabilities",{"title":50,"path":51,"stem":52},"Handle errors and rate limits","\u002Fguides\u002Ferrors","2.guides\u002F6.errors",{"title":54,"path":55,"stem":56},"Page through results","\u002Fguides\u002Fpagination","2.guides\u002F7.pagination",{"title":58,"path":59,"stem":60},"Browser bundles","\u002Fguides\u002Fbundling","2.guides\u002F8.bundling",{"title":62,"path":63,"stem":64},"Test your code","\u002Fguides\u002Ftesting","2.guides\u002F9.testing",{"title":66,"icon":67,"path":68,"stem":69,"children":70,"page":22},"Concepts","i-lucide-lightbulb","\u002Fconcepts","3.concepts",[71,75,79,83],{"title":72,"path":73,"stem":74},"Data model","\u002Fconcepts\u002Fdata-model","3.concepts\u002F1.data-model",{"title":76,"path":77,"stem":78},"Capabilities","\u002Fconcepts\u002Fcapabilities","3.concepts\u002F2.capabilities",{"title":80,"path":81,"stem":82},"Providers and factories","\u002Fconcepts\u002Fproviders","3.concepts\u002F3.providers",{"title":84,"path":85,"stem":86},"Events","\u002Fconcepts\u002Fevents","3.concepts\u002F4.events",{"title":88,"icon":89,"path":90,"stem":91,"children":92,"page":22},"Providers","i-lucide-server","\u002Fproviders","4.providers",[93,97,101,105,109,113,117,121,125,129],{"title":94,"path":95,"stem":96},"Azure DevOps","\u002Fproviders\u002Fazure-devops","4.providers\u002Fazure-devops",{"title":98,"path":99,"stem":100},"Bitbucket Cloud","\u002Fproviders\u002Fbitbucket","4.providers\u002Fbitbucket",{"title":102,"path":103,"stem":104},"Cursor Origin","\u002Fproviders\u002Fcursor-origin","4.providers\u002Fcursor-origin",{"title":106,"path":107,"stem":108},"Forgejo and Codeberg","\u002Fproviders\u002Fforgejo","4.providers\u002Fforgejo",{"title":110,"path":111,"stem":112},"Gitea","\u002Fproviders\u002Fgitea","4.providers\u002Fgitea",{"title":114,"path":115,"stem":116},"Gitee","\u002Fproviders\u002Fgitee","4.providers\u002Fgitee",{"title":118,"path":119,"stem":120},"GitHub","\u002Fproviders\u002Fgithub","4.providers\u002Fgithub",{"title":122,"path":123,"stem":124},"GitLab","\u002Fproviders\u002Fgitlab","4.providers\u002Fgitlab",{"title":126,"path":127,"stem":128},"pushin.eu","\u002Fproviders\u002Fpushin","4.providers\u002Fpushin",{"title":130,"path":131,"stem":132},"Tangled","\u002Fproviders\u002Ftangled","4.providers\u002Ftangled",{"title":134,"icon":135,"path":136,"stem":137,"children":138,"page":22},"Reference","i-lucide-book-marked","\u002Freference","5.reference",[139,143,147,151],{"title":140,"path":141,"stem":142},"Provider API","\u002Freference\u002Fprovider-api","5.reference\u002F1.provider-api",{"title":144,"path":145,"stem":146},"Capability matrix","\u002Freference\u002Fcapability-matrix","5.reference\u002F2.capability-matrix",{"title":148,"path":149,"stem":150},"Errors","\u002Freference\u002Ferrors","5.reference\u002F3.errors",{"title":152,"path":153,"stem":154},"JSON Schemas","\u002Freference\u002Fjson-schemas","5.reference\u002F5.json-schemas",{"title":156,"icon":157,"path":158,"stem":159,"children":160,"page":22},"Examples","i-lucide-boxes","\u002Fexamples","6.examples",[161,165,169],{"title":162,"path":163,"stem":164},"Inbox CLI","\u002Fexamples\u002Finbox-cli","6.examples\u002F1.inbox-cli",{"title":166,"path":167,"stem":168},"Label bot","\u002Fexamples\u002Flabel-bot","6.examples\u002F2.label-bot",{"title":170,"path":171,"stem":172},"Release digest","\u002Fexamples\u002Frelease-digest","6.examples\u002F3.release-digest",{"title":174,"icon":175,"path":176,"stem":177,"children":178,"page":22},"Contributing","i-lucide-git-pull-request","\u002Fcontributing","7.contributing",[179,183,187,191],{"title":180,"path":181,"stem":182},"Contribution guide","\u002Fcontributing\u002Fguidelines","7.contributing\u002F1.guidelines",{"title":184,"path":185,"stem":186},"Write a provider","\u002Fcontributing\u002Fwrite-a-provider","7.contributing\u002F2.write-a-provider",{"title":188,"path":189,"stem":190},"Record fixtures","\u002Fcontributing\u002Frecord-fixtures","7.contributing\u002F3.record-fixtures",{"title":192,"path":193,"stem":194},"Contributors","\u002Fcontributing\u002Fcontributors","7.contributing\u002F4.contributors",{"id":196,"title":15,"body":197,"description":454,"extension":455,"links":456,"meta":457,"navigation":459,"path":16,"seo":460,"stem":17,"__hash__":461},"docs\u002F1.getting-started\u002F2.installation.md",{"type":198,"value":199,"toc":449},"minimark",[200,204,255,268,273,276,318,321,345,431,435,445],[201,202,203],"p",{},"Install the package from npm:",[205,206,207,225,235,245],"code-group",{},[208,209,215],"pre",{"className":210,"code":211,"filename":212,"language":213,"meta":214,"style":214},"language-sh shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","pnpm add forges\n","pnpm","sh","",[216,217,218],"code",{"__ignoreMap":214},[219,220,223],"span",{"class":221,"line":222},"line",1,[219,224,211],{},[208,226,229],{"className":210,"code":227,"filename":228,"language":213,"meta":214,"style":214},"npm install forges\n","npm",[216,230,231],{"__ignoreMap":214},[219,232,233],{"class":221,"line":222},[219,234,227],{},[208,236,239],{"className":210,"code":237,"filename":238,"language":213,"meta":214,"style":214},"yarn add forges\n","yarn",[216,240,241],{"__ignoreMap":214},[219,242,243],{"class":221,"line":222},[219,244,237],{},[208,246,249],{"className":210,"code":247,"filename":248,"language":213,"meta":214,"style":214},"bun add forges\n","bun",[216,250,251],{"__ignoreMap":214},[219,252,253],{"class":221,"line":222},[219,254,247],{},[201,256,257,260,261,264,265,267],{},[216,258,259],{},"forges"," requires Node.js 22.18 or later. The package is ESM only and ships its own types. It has no runtime dependencies and uses the global ",[216,262,263],{},"fetch",". To use another implementation, pass a ",[216,266,263],{}," option to a provider.",[269,270,272],"h2",{"id":271},"import-paths","Import paths",[201,274,275],{},"The root entry exports every provider and the shared helpers:",[208,277,281],{"className":278,"code":279,"language":280,"meta":214,"style":214},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { createForges, github } from 'forges'\n","ts",[216,282,283],{"__ignoreMap":214},[219,284,285,289,293,297,300,303,306,309,312,315],{"class":221,"line":222},[219,286,288],{"class":287},"s7zQu","import",[219,290,292],{"class":291},"sMK4o"," {",[219,294,296],{"class":295},"sTEyZ"," createForges",[219,298,299],{"class":291},",",[219,301,302],{"class":295}," github",[219,304,305],{"class":291}," }",[219,307,308],{"class":287}," from",[219,310,311],{"class":291}," '",[219,313,259],{"class":314},"sfazB",[219,316,317],{"class":291},"'\n",[201,319,320],{},"Each provider also has its own subpath. A bundle that imports one subpath contains one forge:",[208,322,324],{"className":278,"code":323,"language":280,"meta":214,"style":214},"import { github } from 'forges\u002Fgithub'\n",[216,325,326],{"__ignoreMap":214},[219,327,328,330,332,334,336,338,340,343],{"class":221,"line":222},[219,329,288],{"class":287},[219,331,292],{"class":291},[219,333,302],{"class":295},[219,335,305],{"class":291},[219,337,308],{"class":287},[219,339,311],{"class":291},[219,341,342],{"class":314},"forges\u002Fgithub",[219,344,317],{"class":291},[346,347,348,361],"table",{},[349,350,351],"thead",{},[352,353,354,358],"tr",{},[355,356,357],"th",{},"Subpath",[355,359,360],{},"Contents",[362,363,364,382,394,407,419],"tbody",{},[352,365,366,376],{},[367,368,369,371,372,375],"td",{},[216,370,342],{},", ",[216,373,374],{},"forges\u002Fgitlab"," and so on",[367,377,378,379],{},"One provider. See ",[380,381,88],"a",{"href":90},[352,383,384,389],{},[367,385,386],{},[216,387,388],{},"forges\u002Fenv",[367,390,391],{},[380,392,393],{"href":39},"Configure providers from the environment",[352,395,396,401],{},[367,397,398],{},[216,399,400],{},"forges\u002Ffake",[367,402,403,404],{},"An in-memory forge for ",[380,405,406],{"href":63},"tests",[352,408,409,414],{},[367,410,411],{},[216,412,413],{},"forges\u002Ftesting",[367,415,416,417],{},"Fixture replay and webhook signing for ",[380,418,406],{"href":63},[352,420,421,426],{},[367,422,423],{},[216,424,425],{},"forges\u002Fschema",[367,427,428,430],{},[380,429,152],{"href":153}," for the model types",[269,432,434],{"id":433},"browsers","Browsers",[201,436,437,438,441,442,444],{},"Every provider except pushin.eu has a Lite factory, such as ",[216,439,440],{},"githubLite()",", that leaves out webhook code. Use it in browser code. Read ",[380,443,58],{"href":59}," for sizes and details.",[446,447,448],"style",{},"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 pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}",{"title":214,"searchDepth":450,"depth":450,"links":451},2,[452,453],{"id":271,"depth":450,"text":272},{"id":433,"depth":450,"text":434},"Add forges to your project.","md",null,{"icon":458},"i-lucide-download",true,{"title":15,"description":454},"ClUGihfus-ImyUzdqyRyEcFfzN0YYr7_Aik25ZMeDTs",[463,465],{"title":11,"path":12,"stem":13,"description":464,"children":-1},"What forges is, and what you can build with it.",{"title":19,"path":20,"stem":21,"description":466,"children":-1},"Read an issue, write a comment and add a second forge.",1791294007696]