git0 0.2.3 → 0.2.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/docs/404.html +27 -0
  2. package/docs/CNAME +1 -0
  3. package/docs/Footer/index.html +27 -0
  4. package/docs/assets/css/styles.3dd00f8d.css +1 -0
  5. package/docs/assets/js/17896441.79ceefeb.js +1 -0
  6. package/docs/assets/js/1df93b7f.dfdf0ef3.js +2 -0
  7. package/docs/assets/js/1df93b7f.dfdf0ef3.js.LICENSE.txt +6 -0
  8. package/docs/assets/js/22dd74f7.5e857962.js +1 -0
  9. package/docs/assets/js/237.daf7efdf.js +1 -0
  10. package/docs/assets/js/278.1628756c.js +1 -0
  11. package/docs/assets/js/4a829dc8.728a4445.js +1 -0
  12. package/docs/assets/js/577.78325c02.js +1 -0
  13. package/docs/assets/js/591.2156b33d.js +2 -0
  14. package/docs/assets/js/591.2156b33d.js.LICENSE.txt +61 -0
  15. package/docs/assets/js/5e95c892.bd6c1093.js +1 -0
  16. package/docs/assets/js/a7456010.3054873b.js +1 -0
  17. package/docs/assets/js/a7bd4aaa.87229397.js +1 -0
  18. package/docs/assets/js/a94703ab.6d39a596.js +1 -0
  19. package/docs/assets/js/aba21aa0.dfebd789.js +1 -0
  20. package/docs/assets/js/ac46717f.32345167.js +2 -0
  21. package/docs/assets/js/ac46717f.32345167.js.LICENSE.txt +6 -0
  22. package/docs/assets/js/c3a618e1.50a89e4d.js +1 -0
  23. package/docs/assets/js/d140250a.62af53aa.js +1 -0
  24. package/docs/assets/js/main.c71c09a5.js +2 -0
  25. package/docs/assets/js/main.c71c09a5.js.LICENSE.txt +68 -0
  26. package/docs/assets/js/runtime~main.ef55418f.js +1 -0
  27. package/docs/functions/globals/index.html +57 -0
  28. package/docs/functions/index.html +74 -0
  29. package/docs/index.html +27 -0
  30. package/docs/lunr-index-1749601667754.json +1 -0
  31. package/docs/lunr-index.json +1 -0
  32. package/docs/search-doc-1749601667754.json +1 -0
  33. package/docs/search-doc.json +1 -0
  34. package/docs/sitemap.xml +1 -0
  35. package/docs-config/config/customize-docs.js +29 -0
  36. package/docs-config/config/docs-theme.css +358 -0
  37. package/docs-config/config/openapi.mustache +39 -0
  38. package/docs-config/config/sidebars.ts +21 -0
  39. package/docs-config/config/typedoc.json +40 -0
  40. package/docs-config/docusaurus.config.ts +350 -0
  41. package/docs-config/package.json +40 -0
  42. package/docs-config/src/functions/globals.md +153 -0
  43. package/docs-config/src/functions/index.md +114 -0
  44. package/docs-config/src/functions/typedoc-sidebar.cjs +6 -0
  45. package/docs-config/src/index.md +127 -0
  46. package/docs-config/src/pages/Footer.tsx +67 -0
  47. package/docs-config/src/pages/index.tsx +424 -0
  48. package/docs-config/static/CNAME +1 -0
  49. package/docs-config/tailwind.config.js +13 -0
  50. package/docs-config/tsconfig.json +27 -0
  51. package/git0.js +6 -6
  52. package/package.json +15 -15
  53. package/readme.md +37 -38
@@ -0,0 +1,350 @@
1
+ import type * as Preset from "@docusaurus/preset-classic";
2
+ import type { Config } from "@docusaurus/types";
3
+ import type * as Plugin from "@docusaurus/types/src/plugin";
4
+ import type * as OpenApiPlugin from "docusaurus-plugin-openapi-docs";
5
+ import { type ApiPageMetadata } from "docusaurus-plugin-openapi-docs/lib/types";
6
+ import { type MediaTypeObject } from "docusaurus-plugin-openapi-docs/lib/openapi/types";
7
+ //OpenAPI integration
8
+ import { createAuthorization } from "docusaurus-plugin-openapi-docs/lib/markdown/createAuthorization";
9
+ import { createCallbacks } from "docusaurus-plugin-openapi-docs/lib/markdown/createCallbacks";
10
+ import { createDeprecationNotice } from "docusaurus-plugin-openapi-docs/lib/markdown/createDeprecationNotice";
11
+ import { createDescription } from "docusaurus-plugin-openapi-docs/lib/markdown/createDescription";
12
+ import { createHeading } from "docusaurus-plugin-openapi-docs/lib/markdown/createHeading";
13
+ import { createMethodEndpoint } from "docusaurus-plugin-openapi-docs/lib/markdown/createMethodEndpoint";
14
+ import { createParamsDetails } from "docusaurus-plugin-openapi-docs/lib/markdown/createParamsDetails";
15
+ import { createRequestBodyDetails } from "docusaurus-plugin-openapi-docs/lib/markdown/createRequestBodyDetails";
16
+ import { createRequestHeader } from "docusaurus-plugin-openapi-docs/lib/markdown/createRequestHeader";
17
+ import { createStatusCodes } from "docusaurus-plugin-openapi-docs/lib/markdown/createStatusCodes";
18
+ import { createVendorExtensions } from "docusaurus-plugin-openapi-docs/lib/markdown/createVendorExtensions";
19
+ import { render } from "docusaurus-plugin-openapi-docs/lib/markdown/utils";
20
+ import customizeDocs from "./config/customize-docs";
21
+ import fs from "fs";
22
+
23
+ /**
24
+ * Generate docs from JSDoc comments in files, OpenAPI.yml spec for
25
+ * routes, search index of everything, custom pages, sidebar & theme.
26
+ *
27
+ * Files: openapi-docs.yaml, docs-theme.css, plugin-openapi.mustache,
28
+ * plugin-typedoc.js, sidebars.ts, docusaurus.config.ts, typedoc.json, tsconfig.json
29
+ *
30
+ * *Install dependencies*:
31
+ * bun install -D @docusaurus/core @docusaurus/faster @docusaurus/plugin-google-gtag
32
+ * @docusaurus/preset-classic docusaurus-lunr-search docusaurus-plugin-openapi-docs
33
+ * docusaurus-plugin-typedoc docusaurus-theme-openapi-docs prism-react-renderer react
34
+ * react-dom clsx typedoc typedoc-plugin-markdown typescript
35
+ * https://github.com/vtempest/ai-research-agent/blob/master/docs/api.mustache
36
+ * *Add to package.json*:
37
+ * "docs": "docusaurus serve --dir web-app/static/docs",
38
+ * "docs:build": "NODE_NO_WARNINGS=1 docusaurus clean-api-docs all --all-versions ;
39
+ * NODE_NO_WARNINGS=1 docusaurus gen-api-docs all --all-versions ;
40
+ * rm -rf web-app/static/docs; DOCUSAURUS_IGNORE_SSG_WARNINGS=true docusaurus
41
+ * build --out-dir web-app/static/docs",
42
+ *
43
+ * For homepage Add to docs/functions/index.md
44
+ *
45
+ ---
46
+ sidebar_position: 1
47
+ sidebar_label: Introduction
48
+ title: Introduction
49
+ slug: /
50
+ ---
51
+
52
+ * @see
53
+ * [Docusaurus Docs](https://docusaurus.io/docs)
54
+ * [Typedoc Docs](https://typedoc.org/documents/)
55
+ * [Typedoc Plugin Docs](https://typedoc-plugin-markdown.org/docs/options)
56
+ * [OpenAPI Plugin Docs](https://docusaurus-openapi.tryingpan.dev)
57
+ * @returns {Promise<Config>}
58
+ * @author [vtempest](https://github.com/vtempest/)
59
+ */
60
+ export default async function createConfig(options: any = {}) {
61
+ const {
62
+ name = "App",
63
+ domain = "https://example.org",
64
+ baseFolder = "./",
65
+ typedocFolders = [],
66
+ showEditsOnGitHub = true,
67
+ GOOGLE_ANALYTICS_ID = undefined,
68
+ compileForSubdomain = !!process.env.DOCS_ON_SUBDOMAIN,
69
+ tsconfig = "./tsconfig.json",
70
+ readme = "../readme.md",
71
+ sanitizeComments = false,
72
+ favicon = undefined,
73
+ logo = undefined,
74
+ logoURL = "/",
75
+ topbar = [],
76
+ enableFasterBuildV4 = false,
77
+ enableReadmeAsHome = true,
78
+ } = { ...customizeDocs, ...options };
79
+
80
+
81
+ // make sure src folder exists
82
+ if (!fs.existsSync(baseFolder + "src")) {
83
+ fs.mkdirSync(baseFolder + "src");
84
+ }
85
+
86
+ //copy readme into ./src
87
+ if (fs.existsSync(readme) && enableReadmeAsHome) {
88
+
89
+
90
+ var index_frontmatter = '---\nid: index\ntitle: Overview\n' +
91
+ 'sidebar_position: 1\ndisplayed_sidebar: '
92
+ + 'default' + '\n---\n\n'
93
+
94
+ var readmeContent = fs.readFileSync(readme, "utf8")
95
+ fs.writeFileSync(baseFolder + "src/index.md",
96
+ index_frontmatter + readmeContent);
97
+ }
98
+
99
+ //prepend to index
100
+
101
+
102
+ // foldersWithFunctions - should also add to tsconfig.json include:[]
103
+ // compileForSubdomain is used to generate at domain.com/docs
104
+ // but on github pages workflow, it outputs to
105
+ // subdomain like docprojects.user.github.io
106
+ // sanitizeComments helps avoid errors in markdown like <> {} etc
107
+ return {
108
+ future: enableFasterBuildV4 ? {
109
+ v4: {
110
+ removeLegacyPostBuildHeadAttribute: true, // REQUIRED for ssgWorkerThreads
111
+ },
112
+ experimental_faster: true,
113
+ } : undefined,
114
+ title: name + " Docs",
115
+ url: domain,
116
+ baseUrl: compileForSubdomain ? "/" : "/docs/",
117
+ onBrokenLinks: "ignore",
118
+ onBrokenMarkdownLinks: "ignore",
119
+ favicon,
120
+ projectName: name.replaceAll(" ", "-"),
121
+ presets: [
122
+ [
123
+ "classic",
124
+ {
125
+ docs: {
126
+ path: "src",
127
+ routeBasePath: "/",
128
+ sidebarPath: "./config/sidebars.ts",
129
+ },
130
+ blog: false,
131
+ theme: {
132
+ customCss: baseFolder + "config/docs-theme.css",
133
+ },
134
+ gtag: {
135
+ trackingID: GOOGLE_ANALYTICS_ID,
136
+ anonymizeIP: false,
137
+ },
138
+ } satisfies Preset.Options,
139
+ ],
140
+ ],
141
+
142
+ headTags: [
143
+ {
144
+ tagName: 'script',
145
+ attributes: {
146
+ src: 'https://cdn.tailwindcss.com',
147
+ },
148
+ },
149
+ ],
150
+
151
+ plugins: [
152
+
153
+
154
+ require.resolve("docusaurus-lunr-search"),
155
+
156
+ ...(typedocFolders.map(({ id, entryPoints }) => [
157
+ "docusaurus-plugin-typedoc",
158
+ {
159
+ id,
160
+ entryPoints,
161
+ exclude: [
162
+ "**/node_modules/**/*",
163
+ "pages/**/*"
164
+ ],
165
+ tsconfig,
166
+ out: baseFolder + "src/" + id,
167
+ readme,
168
+ disableSources: !showEditsOnGitHub,
169
+ sidebar: { pretty: true },
170
+ textContentMappings: {
171
+ "title.indexPage": name + " API",
172
+ "title.memberPage": "{name}",
173
+ },
174
+ parametersFormat: "htmlTable",
175
+ indexFormat: "list",
176
+ expandParameters: true,
177
+ interfacePropertiesFormat: "htmlTable",
178
+ propertyMembersFormat: "htmlTable",
179
+ enumMembersFormat: "htmlTable",
180
+ typeDeclarationFormat: "htmlTable",
181
+ typeDeclarationVisibility: "compact",
182
+ sanitizeComments,
183
+ useHTMLEncodedBrackets: true,
184
+ hideBreadcrumbs: false,
185
+ hideGroupHeadings: true,
186
+ hidePageHeader: true,
187
+ hidePageTitle: true,
188
+ outputFileStrategy: "modules",
189
+ useCodeBlocks: true,
190
+ },
191
+ ]))
192
+ ],
193
+
194
+ themeConfig: {
195
+ src: {
196
+ sidebar: {
197
+ hideable: true,
198
+ },
199
+ },
200
+ navbar: {
201
+ title: name + " Docs",
202
+ logo: {
203
+ alt: "logo",
204
+ src: logo,
205
+ href: logoURL || "/",
206
+ },
207
+ items: topbar
208
+ },
209
+
210
+ languageTabs: [
211
+ {
212
+ highlight: "javascript",
213
+ language: "nodejs",
214
+ logoClass: "nodejs",
215
+ },
216
+ {
217
+ highlight: "javascript",
218
+ language: "javascript",
219
+ logoClass: "javascript",
220
+ },
221
+ {
222
+ highlight: "python",
223
+ language: "python",
224
+ logoClass: "python",
225
+ },
226
+ {
227
+ highlight: "bash",
228
+ language: "curl",
229
+ logoClass: "curl",
230
+ },
231
+ {
232
+ highlight: "powershell",
233
+ language: "powershell",
234
+ logoClass: "powershell",
235
+ },
236
+
237
+ {
238
+ highlight: "rust",
239
+ language: "rust",
240
+ logoClass: "rust",
241
+ },
242
+ {
243
+ highlight: "c",
244
+ language: "c",
245
+ logoClass: "c",
246
+ },
247
+ {
248
+ highlight: "swift",
249
+ language: "swift",
250
+ logoClass: "swift",
251
+ },
252
+ {
253
+ highlight: "kotlin",
254
+ language: "kotlin",
255
+ logoClass: "kotlin",
256
+ },
257
+ {
258
+ highlight: "java",
259
+ language: "java",
260
+ logoClass: "java",
261
+ },
262
+ {
263
+ highlight: "php",
264
+ language: "php",
265
+ logoClass: "php",
266
+ },
267
+ ],
268
+ } satisfies Preset.ThemeConfig,
269
+
270
+ themes: [
271
+ "docusaurus-theme-openapi-docs"
272
+ ],
273
+ stylesheets: [
274
+ {
275
+ href: "https://use.fontawesome.com/releases/v5.11.0/css/all.css",
276
+ type: "text/css",
277
+ },
278
+ ],
279
+ } satisfies Config;
280
+ }
281
+
282
+
283
+ function createServersTable(servers: any = []) {
284
+ if (typeof servers === 'object' && servers && servers.length) {
285
+ return `| URL | Description |
286
+ | ---- | ----- |
287
+ ${servers
288
+ .map((server) => {
289
+ return `| ${server.url} | ${server.description} | `.replace("\n", "<br/>");
290
+ })
291
+ .join("\n")}
292
+ `;
293
+ }
294
+ }
295
+
296
+ export function createApiPageMD({
297
+ title,
298
+ api: {
299
+ deprecated,
300
+ "x-deprecated-description": deprecatedDescription,
301
+ description,
302
+ method,
303
+ path,
304
+ extensions,
305
+ parameters,
306
+ requestBody,
307
+ responses,
308
+ callbacks,
309
+ servers, // destructure servers here
310
+ },
311
+ infoPath,
312
+ frontMatter,
313
+ }: ApiPageMetadata) {
314
+ return render([
315
+ `import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint";\n`,
316
+ `import ParamsDetails from "@theme/ParamsDetails";\n`,
317
+ `import RequestSchema from "@theme/RequestSchema";\n`,
318
+ `import StatusCodes from "@theme/StatusCodes";\n`,
319
+ `import OperationTabs from "@theme/OperationTabs";\n`,
320
+ `import TabItem from "@theme/TabItem";\n`,
321
+ `import Heading from "@theme/Heading";\n\n`,
322
+ createHeading(title),
323
+ createMethodEndpoint(method, path),
324
+ // createServersTable(servers),
325
+ infoPath && createAuthorization(infoPath),
326
+ frontMatter.show_extensions
327
+ ? createVendorExtensions(extensions)
328
+ : undefined,
329
+ createDeprecationNotice({ deprecated, description: deprecatedDescription }),
330
+ createDescription(description),
331
+ requestBody || parameters ? createRequestHeader("Request") : undefined,
332
+ createParamsDetails({ parameters }),
333
+ createRequestBodyDetails({
334
+ title: "Body",
335
+ body: requestBody,
336
+ } as RequestBodyProps),
337
+ createStatusCodes({ responses }),
338
+ createCallbacks({ callbacks }),
339
+ ]);
340
+ }
341
+ interface RequestBodyProps {
342
+ title: string;
343
+ body: {
344
+ content?: {
345
+ [key: string]: MediaTypeObject;
346
+ };
347
+ description?: string;
348
+ required?: boolean;
349
+ };
350
+ }
@@ -0,0 +1,40 @@
1
+ {
2
+ "name": "create-apidocs",
3
+ "version": "4.2.0",
4
+ "description": "Docusaurus autogenerated from OpenAPI spec & Typedoc functions (with Lunr Search)",
5
+ "bin": {
6
+ "create-apidocs": "./bin/create-apidocs"
7
+ },
8
+ "scripts": {
9
+ "docs": "concurrently \"npx docusaurus serve --dir ../docs\" \"wait-on http://localhost:3000 && opener http://localhost:3000\"",
10
+ "build:docs:subdomain": "DOCS_ON_SUBDOMAIN=true npm run docs:build",
11
+ "build:docs": " mkdir ../docs; NODE_NO_WARNINGS=1 npx docusaurus clean-api-docs all --all-versions ; NODE_NO_WARNINGS=1 npx docusaurus gen-api-docs all --all-versions ; DOCUSAURUS_IGNORE_SSG_WARNINGS=true npx docusaurus build --out-dir ../docs; npm run docs",
12
+ "docs:copy": "cp ../docs/functions/index.html ../docs/index.html; rm -rf ../web-app/static/docs; cp -r ../docs ../web-app/static; mv ../web-app/static/dist ../web-app/static/docs"
13
+ },
14
+ "dependencies": {
15
+ "@docusaurus/core": "^3.8.0",
16
+ "@docusaurus/faster": "^3.8.0",
17
+ "@docusaurus/plugin-google-gtag": "^3.8.0",
18
+ "@docusaurus/preset-classic": "^3.8.0",
19
+ "@tailwindcss/postcss": "^4.1.8",
20
+ "ajv": "^8.17.1",
21
+ "clsx": "^2.1.1",
22
+ "docusaurus": "^1.14.7",
23
+ "docusaurus-lunr-search": "^3.6.0",
24
+ "docusaurus-plugin-openapi-docs": "^4.4.0",
25
+ "docusaurus-plugin-typedoc": "^1.4.0",
26
+ "docusaurus-theme-openapi-docs": "^4.4.0",
27
+ "eslint-plugin-prettier": "^5.4.0",
28
+ "postcss": "^8.5.4",
29
+ "prism-react-renderer": "^2.4.1",
30
+ "react": "^19.1.0",
31
+ "react-dom": "^19.1.0",
32
+ "tailwindcss": "^4.1.8"
33
+ },
34
+ "devDependencies": {
35
+ "concurrently": "^9.1.2",
36
+ "lucide-react": "^0.513.0",
37
+ "opener": "^1.5.2",
38
+ "wait-on": "^8.0.3"
39
+ }
40
+ }
@@ -0,0 +1,153 @@
1
+ ## downloadRepo()
2
+
3
+ ```ts
4
+ function downloadRepo(repo: any): Promise<void>;
5
+ ```
6
+
7
+ Defined in: [git0.js:506](https://github.com/vtempest/git0/blob/f5565c601a25c627e02f22dfda1f72982fbcaeae/git0.js#L506)
8
+
9
+ ### Parameters
10
+
11
+ <table>
12
+ <thead>
13
+ <tr>
14
+ <th>Parameter</th>
15
+ <th>Type</th>
16
+ </tr>
17
+ </thead>
18
+ <tbody>
19
+ <tr>
20
+ <td>
21
+
22
+ `repo`
23
+
24
+ </td>
25
+ <td>
26
+
27
+ `any`
28
+
29
+ </td>
30
+ </tr>
31
+ </tbody>
32
+ </table>
33
+
34
+ ### Returns
35
+
36
+ `Promise`&lt;`void`&gt;
37
+
38
+ ***
39
+
40
+ ## installDependencies()
41
+
42
+ ```ts
43
+ function installDependencies(targetDir: any): Promise<void>;
44
+ ```
45
+
46
+ Defined in: [git0.js:397](https://github.com/vtempest/git0/blob/f5565c601a25c627e02f22dfda1f72982fbcaeae/git0.js#L397)
47
+
48
+ ### Parameters
49
+
50
+ <table>
51
+ <thead>
52
+ <tr>
53
+ <th>Parameter</th>
54
+ <th>Type</th>
55
+ </tr>
56
+ </thead>
57
+ <tbody>
58
+ <tr>
59
+ <td>
60
+
61
+ `targetDir`
62
+
63
+ </td>
64
+ <td>
65
+
66
+ `any`
67
+
68
+ </td>
69
+ </tr>
70
+ </tbody>
71
+ </table>
72
+
73
+ ### Returns
74
+
75
+ `Promise`&lt;`void`&gt;
76
+
77
+ ***
78
+
79
+ ## openInIDE()
80
+
81
+ ```ts
82
+ function openInIDE(targetDir: any): void;
83
+ ```
84
+
85
+ Defined in: [git0.js:354](https://github.com/vtempest/git0/blob/f5565c601a25c627e02f22dfda1f72982fbcaeae/git0.js#L354)
86
+
87
+ ### Parameters
88
+
89
+ <table>
90
+ <thead>
91
+ <tr>
92
+ <th>Parameter</th>
93
+ <th>Type</th>
94
+ </tr>
95
+ </thead>
96
+ <tbody>
97
+ <tr>
98
+ <td>
99
+
100
+ `targetDir`
101
+
102
+ </td>
103
+ <td>
104
+
105
+ `any`
106
+
107
+ </td>
108
+ </tr>
109
+ </tbody>
110
+ </table>
111
+
112
+ ### Returns
113
+
114
+ `void`
115
+
116
+ ***
117
+
118
+ ## searchRepositories()
119
+
120
+ ```ts
121
+ function searchRepositories(query: any): Promise<any>;
122
+ ```
123
+
124
+ Defined in: [git0.js:467](https://github.com/vtempest/git0/blob/f5565c601a25c627e02f22dfda1f72982fbcaeae/git0.js#L467)
125
+
126
+ ### Parameters
127
+
128
+ <table>
129
+ <thead>
130
+ <tr>
131
+ <th>Parameter</th>
132
+ <th>Type</th>
133
+ </tr>
134
+ </thead>
135
+ <tbody>
136
+ <tr>
137
+ <td>
138
+
139
+ `query`
140
+
141
+ </td>
142
+ <td>
143
+
144
+ `any`
145
+
146
+ </td>
147
+ </tr>
148
+ </tbody>
149
+ </table>
150
+
151
+ ### Returns
152
+
153
+ `Promise`&lt;`any`&gt;
@@ -0,0 +1,114 @@
1
+ <p align="center">
2
+ <img src="https://i.imgur.com/poOtI3N.png" />
3
+ </p>
4
+ <p align="center">
5
+ <a href="https://discord.gg/SJdBqBz3tV">
6
+ <img src="https://img.shields.io/discord/1110227955554209923.svg?label=Chat&logo=Discord&colorB=7289da&style=flat"
7
+ alt="Join Discord" />
8
+ </a>
9
+ <a href="https://github.com/vtempest/git0/discussions">
10
+ <img alt="GitHub Stars" src="https://img.shields.io/github/stars/vtempest/git0" /></a>
11
+ <a href="https://github.com/vtempest/git0/discussions">
12
+ <img alt="GitHub Discussions"
13
+ src="https://img.shields.io/github/discussions/vtempest/git0" />
14
+ </a>
15
+ <a href="https://github.com/vtempest/git0/pulse" alt="Activity">
16
+ <img src="https://img.shields.io/github/commit-activity/m/vtempest/git0" />
17
+ </a>
18
+ <img src="https://img.shields.io/github/last-commit/vtempest/git0.svg?style=flat-square" alt="GitHub last commit" />
19
+ </p>
20
+ <p align="center">
21
+ <img src="https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square"
22
+ alt="PRs Welcome" />
23
+ <a href="https://codespaces.new/vtempest/git0">
24
+ <img src="https://github.com/codespaces/badge.svg" width="150" height="20" />
25
+ </a>
26
+ </p>
27
+
28
+ # Git0: Download Git Repo on Step Zero
29
+ CLI tool to search GitHub repositories, download source & releases for your system, and instantly set up, then install dependencies and open code editor.
30
+
31
+ ## 🚀 Installation
32
+
33
+ ```bash
34
+ npm install -g git0
35
+ ```
36
+
37
+ ```bash
38
+ bun install -g git0
39
+ ```
40
+
41
+ ![livepreview](https://i.imgur.com/Io3ukRC.gif)
42
+ ![preview](https://i.imgur.com/K22NiBq.png)
43
+
44
+ ## ✨ Features
45
+
46
+ - **Search GitHub repositories** by name with fuzzy matching
47
+ - **Download repositories** directly from GitHub URLs or owner/repo shortcuts. Skip the manual git clone, cd, install dance
48
+ - **Get Releases** instantly download latest release for your system or all systems
49
+ - **Automatic dependency detection** and installation for multiple project types
50
+ - **Smart IDE integration** - automatically opens projects in your preferred editor
51
+ - **Cross-platform support** - works on Windows, macOS, and Linux
52
+ - **Conflict resolution** - handles directory naming conflicts automatically
53
+
54
+ ## 🎯 Usage
55
+
56
+ ```bash
57
+ # Search for repositories by name
58
+ gg react starter
59
+
60
+ # Direct download from GitHub URL
61
+ ## gg and git0 both work
62
+ gg https://github.com/facebook/react
63
+
64
+ # Download using owner/repo shorthand
65
+ git0 react starter
66
+
67
+ ## Use git0 without installing, (only node needed)
68
+ # (copy into your project's readme for quick setup)
69
+ npx git0 facebook/react
70
+ ```
71
+
72
+ ### Supported Project Types
73
+
74
+ git0 automatically detects and sets up the following project types:
75
+
76
+ | Project Type | Detection | Installation |
77
+ |-------------|-----------|-------------|
78
+ | **Node.js** | `package.json` | `bun install` (fallback to `npm install`) |
79
+ | **Docker** | `Dockerfile`, `docker-compose.yml` | `docker-compose up -d` or `docker build` |
80
+ | **Python** | `requirements.txt`, `setup.py` | Virtual environment + pip install |
81
+ | **Rust** | `Cargo.toml` | `cargo build` |
82
+ | **Go** | `go.mod` | `go mod tidy` |
83
+
84
+ ### Supported IDEs
85
+
86
+ git0 automatically detects and opens projects in your preferred IDE:
87
+
88
+ - **Cursor** (`cursor`)
89
+ - **Windsurf** (`windsurf`)
90
+ - **VS Code** (`code`)
91
+ - **Code Server** (`code-server`)
92
+ - **Neovim** (`nvim`)
93
+
94
+ ## 🔧 Configuration
95
+
96
+ ### What Happens After Download
97
+
98
+ 1. **Repository is downloaded** to your current directory
99
+ 2. **Project type is detected** automatically
100
+ 3. **Dependencies are installed** based on project type
101
+ 4. **IDE is launched** automatically (if available)
102
+ 5. **Development server starts** (for Node.js projects)
103
+
104
+ If a directory with the same name exists, git0 automatically appends a number (e.g., `react-2`, `react-3`).
105
+
106
+ ### GitHub Token (Optional)
107
+
108
+ For higher API rate limits, set [your GitHub token](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-fine-grained-personal-access-token):
109
+
110
+ ```bash
111
+ export GITHUB_TOKEN=your_github_token_here
112
+ ```
113
+
114
+ Without a token, you're limited to 60 requests per hour. With a token, you get 5,000 requests per hour.
@@ -0,0 +1,6 @@
1
+ // @ts-check
2
+ /** @type {import("@docusaurus/plugin-content-docs").SidebarsConfig} */
3
+ const typedocSidebar = {
4
+ items: []
5
+ };
6
+ module.exports = typedocSidebar.items;