[{"data":1,"prerenderedAt":353},["ShallowReactive",2],{"navigation_docs":3,"-platforms-gitbucket":80,"-platforms-gitbucket-surround":350},[4,56],{"title":5,"path":6,"stem":7,"children":8,"icon":55},"Guide","\u002Fguide","1.guide\u002F01.index",[9,11,15,19,23,27,31,35,39,43,47,51],{"title":10,"path":6,"stem":7},"Getting Started",{"title":12,"path":13,"stem":14},"Authentication","\u002Fguide\u002Fauth","1.guide\u002F02.auth",{"title":16,"path":17,"stem":18},"Repositories","\u002Fguide\u002Frepositories","1.guide\u002F03.repositories",{"title":20,"path":21,"stem":22},"Issues","\u002Fguide\u002Fissues","1.guide\u002F04.issues",{"title":24,"path":25,"stem":26},"Pull requests","\u002Fguide\u002Fpull-requests","1.guide\u002F05.pull-requests",{"title":28,"path":29,"stem":30},"Review threads","\u002Fguide\u002Fthreads","1.guide\u002F06.threads",{"title":32,"path":33,"stem":34},"Commits and CI","\u002Fguide\u002Fcommits","1.guide\u002F07.commits",{"title":36,"path":37,"stem":38},"Contribution templates","\u002Fguide\u002Ftemplates","1.guide\u002F08.templates",{"title":40,"path":41,"stem":42},"Code search","\u002Fguide\u002Fcode-search","1.guide\u002F09.code-search",{"title":44,"path":45,"stem":46},"Agents","\u002Fguide\u002Fagents","1.guide\u002F10.agents",{"title":48,"path":49,"stem":50},"Custom providers","\u002Fguide\u002Fcustom","1.guide\u002F11.custom",{"title":52,"path":53,"stem":54},"Explorer","\u002Fguide\u002Fexplorer","1.guide\u002F12.explorer","i-lucide-book-open",{"title":57,"path":58,"stem":59,"children":60,"icon":79},"Platforms","\u002Fplatforms","2.platforms\u002F0.index",[61,63,67,71,75],{"title":62,"path":58,"stem":59},"Overview",{"title":64,"path":65,"stem":66},"GitHub","\u002Fplatforms\u002Fgithub","2.platforms\u002F01.github",{"title":68,"path":69,"stem":70},"GitLab","\u002Fplatforms\u002Fgitlab","2.platforms\u002F02.gitlab",{"title":72,"path":73,"stem":74},"Gitea","\u002Fplatforms\u002Fgitea","2.platforms\u002F03.gitea",{"title":76,"path":77,"stem":78},"GitBucket","\u002Fplatforms\u002Fgitbucket","2.platforms\u002F04.gitbucket","i-lucide-library",{"id":81,"title":76,"body":82,"description":343,"extension":344,"links":345,"meta":346,"navigation":147,"path":77,"seo":348,"stem":78,"__hash__":349},"docs\u002F2.platforms\u002F04.gitbucket.md",{"type":83,"value":84,"toc":336},"minimark",[85,89,94,221,240,244,251,255,291,295,319,323,332],[86,87],"platform-facts",{"platform":88},"gitbucket",[90,91,93],"h2",{"id":92},"address-it","Address it",[95,96,101],"pre",{"className":97,"code":98,"language":99,"meta":100,"style":100},"language-ts shiki shiki-themes github-light github-light poimandres","import { createProvider } from \"@agntn\u002Fforges\";\n\nconst gitbucket = createProvider(\"github\", {\n  token: \"…\",\n  baseURL: \"https:\u002F\u002Fgitbucket.example.com\u002Fapi\u002Fv3\",\n});\n","ts","",[102,103,104,142,149,179,198,215],"code",{"__ignoreMap":100},[105,106,109,113,117,121,124,128,132,136,139],"span",{"class":107,"line":108},"line",1,[105,110,112],{"class":111},"sP0CR","import",[105,114,116],{"class":115},"sKlNE"," {",[105,118,120],{"class":119},"snHMy"," createProvider",[105,122,123],{"class":115}," }",[105,125,127],{"class":126},"stCPd"," from",[105,129,131],{"class":130},"scVjq"," \"",[105,133,135],{"class":134},"sQ7BG","@agntn\u002Fforges",[105,137,138],{"class":130},"\"",[105,140,141],{"class":115},";\n",[105,143,145],{"class":107,"line":144},2,[105,146,148],{"emptyLinePlaceholder":147},true,"\n",[105,150,152,156,160,163,166,169,171,174,176],{"class":107,"line":151},3,[105,153,155],{"class":154},"s1TYA","const",[105,157,159],{"class":158},"saoiD"," gitbucket",[105,161,162],{"class":154}," =",[105,164,120],{"class":165},"sULi6",[105,167,168],{"class":115},"(",[105,170,138],{"class":130},[105,172,173],{"class":134},"github",[105,175,138],{"class":130},[105,177,178],{"class":115},", {\n",[105,180,182,185,188,190,193,195],{"class":107,"line":181},4,[105,183,184],{"class":119},"  token",[105,186,187],{"class":115},":",[105,189,131],{"class":130},[105,191,192],{"class":134},"…",[105,194,138],{"class":130},[105,196,197],{"class":115},",\n",[105,199,201,204,206,208,211,213],{"class":107,"line":200},5,[105,202,203],{"class":119},"  baseURL",[105,205,187],{"class":115},[105,207,131],{"class":130},[105,209,210],{"class":134},"https:\u002F\u002Fgitbucket.example.com\u002Fapi\u002Fv3",[105,212,138],{"class":130},[105,214,197],{"class":115},[105,216,218],{"class":107,"line":217},6,[105,219,220],{"class":115},"});\n",[222,223,224,225,227,228,231,232,235,236,239],"p",{},"GitBucket implements the GitHub REST v3 API, so there is no separate provider and I am not writing one. The platform string is ",[102,226,173],{},", the host is the ",[102,229,230],{},"baseURL"," with ",[102,233,234],{},"\u002Fapi\u002Fv3"," spelled out. The token chain would ask ",[102,237,238],{},"gh"," for that host, which is almost never what you want, so pass the token.",[90,241,243],{"id":242},"what-works","What works",[222,245,246,247,250],{},"Repositories, issues, pull requests, comments, commits and users through the same endpoints the ",[248,249,64],"a",{"href":65}," page lists, as far as your GitBucket version serves them.",[90,252,254],{"id":253},"what-does-not","What does not",[256,257,258,266,277,284],"ul",{},[259,260,261,262,265],"li",{},"Review threads. GitBucket is REST v3 only, no GraphQL. ",[102,263,264],{},"threads.*"," fails with an explicit unsupported endpoint error rather than a bare 404.",[259,267,268,269,272,273,276],{},"Code search. No ",[102,270,271],{},"\u002Fsearch\u002Fcode"," endpoint, ",[102,274,275],{},"code.search"," fails explicitly.",[259,278,279,280,283],{},"Owner templates. A host without the GitHub Enterprise header is repository scope only. The owner's ",[102,281,282],{},".github"," repository is not consulted.",[259,285,286,287,290],{},"GitHub Actions runs and check runs depend on the instance. Expect ",[102,288,289],{},"NotFoundError"," where the endpoint is missing.",[90,292,294],{"id":293},"gotchas","Gotchas",[256,296,297,308],{},[259,298,299,300,303,304,307],{},"Pagination follows whatever ",[102,301,302],{},"Link"," header GitBucket emits. When there is none, a list is one page with ",[102,305,306],{},"hasNextPage: false",".",[259,309,310,311,314,315,318],{},"The rate limit headers GitHub sends are usually absent, so a 403 is a ",[102,312,313],{},"PermissionError"," unless the response carries ",[102,316,317],{},"Retry-After"," or says rate limit in the body.",[90,320,322],{"id":321},"where-it-lives","Where it lives",[222,324,325,328,329,331],{},[102,326,327],{},"src\u002Fproviders\u002Fgithub.ts",", the same class. Anything GitBucket needs is a ",[102,330,230],{}," away.",[333,334,335],"style",{},"html pre.shiki code .sP0CR, html code.shiki .sP0CR{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#5DE4C7}html pre.shiki code .sKlNE, html code.shiki .sKlNE{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#A6ACCD}html pre.shiki code .snHMy, html code.shiki .snHMy{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#ADD7FF}html pre.shiki code .stCPd, html code.shiki .stCPd{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#A6ACCD}html pre.shiki code .scVjq, html code.shiki .scVjq{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#A6ACCD}html pre.shiki code .sQ7BG, html code.shiki .sQ7BG{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#5DE4C7}html pre.shiki code .s1TYA, html code.shiki .s1TYA{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#91B4D5}html pre.shiki code .saoiD, html code.shiki .saoiD{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#E4F0FB}html pre.shiki code .sULi6, html code.shiki .sULi6{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#E4F0FBD0}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);}",{"title":100,"searchDepth":144,"depth":144,"links":337},[338,339,340,341,342],{"id":92,"depth":144,"text":93},{"id":242,"depth":144,"text":243},{"id":253,"depth":144,"text":254},{"id":293,"depth":144,"text":294},{"id":321,"depth":144,"text":322},"The GitHub provider pointed at a GitBucket \u002Fapi\u002Fv3. What GitBucket does not serve fails with a sentence, not a 404.","md",null,{"icon":347},"i-lucide-server",{"title":76,"description":343},"sPi5aUtZ001qzbQ5_AwJj5GMNvL4_I_BHVP2_uXmP20",[351,345],{"title":72,"path":73,"stem":74,"description":352,"children":-1},"API v1 with limit instead of per_page, empty strings and nulls where fields are missing, and Codeberg or any Forgejo instance through baseURL.",1788525966686]