git0 0.2.5 → 0.2.7
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.
- package/bun.lock +159 -0
- package/docs/404.html +2 -3
- package/docs/Footer/index.html +2 -3
- package/docs/assets/js/1df93b7f.d8c05d2c.js +2 -0
- package/docs/assets/js/22dd74f7.237398b4.js +1 -0
- package/docs/assets/js/28ab763d.5714aa16.js +1 -0
- package/docs/assets/js/299d276b.1a1baa1c.js +1 -0
- package/docs/assets/js/68cef36b.c312447e.js +1 -0
- package/docs/assets/js/c3a618e1.965a31da.js +1 -0
- package/docs/assets/js/{main.c71c09a5.js → main.cf858a7d.js} +2 -2
- package/docs/assets/js/runtime~main.7520dc36.js +1 -0
- package/docs/functions/git0/index.html +48 -0
- package/docs/functions/github-api/index.html +149 -0
- package/docs/functions/index.html +4 -5
- package/docs/functions/modules/index.html +30 -0
- package/docs/index.html +3 -4
- package/docs/lunr-index-1749613752315.json +1 -0
- package/docs/lunr-index.json +1 -1
- package/docs/search-doc-1749613752315.json +1 -0
- package/docs/search-doc.json +1 -1
- package/docs/sitemap.xml +1 -1
- package/docs-config/.docusaurus/DONT-EDIT-THIS-FOLDER +5 -0
- package/docs-config/.docusaurus/client-manifest.json +259 -0
- package/docs-config/.docusaurus/client-modules.js +8 -0
- package/docs-config/.docusaurus/codeTranslations.json +1 -0
- package/docs-config/.docusaurus/docusaurus-lunr-search/default/__plugin.json +4 -0
- package/docs-config/.docusaurus/docusaurus-plugin-content-docs/default/__mdx-loader-dependency.json +1 -0
- package/docs-config/.docusaurus/docusaurus-plugin-content-docs/default/__plugin.json +4 -0
- package/docs-config/.docusaurus/docusaurus-plugin-content-docs/default/p/docs-175.json +1 -0
- package/docs-config/.docusaurus/docusaurus-plugin-content-docs/default/p/index-466.json +1 -0
- package/docs-config/.docusaurus/docusaurus-plugin-content-docs/default/site-src-functions-git-0-1-md-d3e.json +19 -0
- package/docs-config/.docusaurus/docusaurus-plugin-content-docs/default/site-src-functions-git-0-md-299.json +19 -0
- package/docs-config/.docusaurus/docusaurus-plugin-content-docs/default/site-src-functions-github-api-md-28a.json +23 -0
- package/docs-config/.docusaurus/docusaurus-plugin-content-docs/default/site-src-functions-globals-md-4a8.json +19 -0
- package/docs-config/.docusaurus/docusaurus-plugin-content-docs/default/site-src-functions-index-md-c3a.json +23 -0
- package/docs-config/.docusaurus/docusaurus-plugin-content-docs/default/site-src-functions-modules-md-68c.json +19 -0
- package/docs-config/.docusaurus/docusaurus-plugin-content-docs/default/site-src-index-md-d14.json +21 -0
- package/docs-config/.docusaurus/docusaurus-plugin-content-pages/default/__plugin.json +4 -0
- package/docs-config/.docusaurus/docusaurus-plugin-google-gtag/default/__plugin.json +4 -0
- package/docs-config/.docusaurus/docusaurus.config.mjs +378 -0
- package/docs-config/.docusaurus/globalData.json +65 -0
- package/docs-config/.docusaurus/i18n.json +17 -0
- package/docs-config/.docusaurus/lunr.client.js +5 -0
- package/docs-config/.docusaurus/registry.js +15 -0
- package/docs-config/.docusaurus/routes.js +61 -0
- package/docs-config/.docusaurus/routesChunkNames.json +45 -0
- package/docs-config/.docusaurus/site-metadata.json +51 -0
- package/docs-config/.docusaurus/site-storage.json +4 -0
- package/docs-config/bun.lock +6139 -0
- package/docs-config/config/customize-docs.js +4 -2
- package/docs-config/docusaurus.config.ts +0 -9
- package/docs-config/src/functions/git0.md +101 -0
- package/docs-config/src/functions/github-api.md +744 -0
- package/docs-config/src/functions/modules.md +4 -0
- package/docs-config/src/functions/typedoc-sidebar.cjs +12 -1
- package/docs-config/src/pages/index.tsx +289 -279
- package/docs-config/tsconfig.json +1 -1
- package/package.json +10 -7
- package/src/git0.js +380 -0
- package/src/github-api.js +473 -0
- package/docs/assets/js/1df93b7f.dfdf0ef3.js +0 -2
- package/docs/assets/js/22dd74f7.5e857962.js +0 -1
- package/docs/assets/js/4a829dc8.728a4445.js +0 -1
- package/docs/assets/js/c3a618e1.50a89e4d.js +0 -1
- package/docs/assets/js/d140250a.62af53aa.js +0 -1
- package/docs/assets/js/runtime~main.ef55418f.js +0 -1
- package/docs/functions/globals/index.html +0 -57
- package/docs/lunr-index-1749601667754.json +0 -1
- package/docs/search-doc-1749601667754.json +0 -1
- package/docs-config/src/functions/globals.md +0 -153
- package/docs-config/src/index.md +0 -127
- package/docs-config/tailwind.config.js +0 -13
- package/git0.js +0 -646
- /package/docs/assets/js/{1df93b7f.dfdf0ef3.js.LICENSE.txt → 1df93b7f.d8c05d2c.js.LICENSE.txt} +0 -0
- /package/docs/assets/js/{main.c71c09a5.js.LICENSE.txt → main.cf858a7d.js.LICENSE.txt} +0 -0
|
@@ -0,0 +1,473 @@
|
|
|
1
|
+
import grab from 'grab-api.js';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import gitUrlParse from 'git-url-parse';
|
|
4
|
+
import os from 'os';
|
|
5
|
+
import fs from 'fs';
|
|
6
|
+
import * as tar from 'tar';
|
|
7
|
+
import path from 'path';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* GitHub API client for downloading repositories, searching, and managing releases
|
|
11
|
+
* @class GithubAPI
|
|
12
|
+
* @example
|
|
13
|
+
* const github = new GithubAPI();
|
|
14
|
+
* const repos = await github.searchRepositories('nodejs');
|
|
15
|
+
* await github.downloadRepo('user/repo', './my-downloads');
|
|
16
|
+
*/
|
|
17
|
+
class GithubAPI {
|
|
18
|
+
/** @constant {number} Number of results to return per page for repository searches */
|
|
19
|
+
static DEFAULT_RESULTS_PER_PAGE = 10;
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Creates a new GithubAPI instance
|
|
23
|
+
* @param {Object} [options={}] - Configuration options
|
|
24
|
+
* @param {string} [options.token] - GitHub personal access token (defaults to GITHUB_TOKEN env var)
|
|
25
|
+
* @param {boolean} [options.debug=false] - Enable debug logging
|
|
26
|
+
* @param {string} [options.baseURL='https://api.github.com'] - GitHub API base URL
|
|
27
|
+
* @example
|
|
28
|
+
* // Use default settings with environment token
|
|
29
|
+
*
|
|
30
|
+
* // Use custom token
|
|
31
|
+
* const github = new GithubAPI({ token: 'ghp_xxxxxxxxxxxx' });
|
|
32
|
+
*
|
|
33
|
+
* // Enable debug mode
|
|
34
|
+
* const github = new GithubAPI({ debug: true });
|
|
35
|
+
*/
|
|
36
|
+
constructor(options = {}) {
|
|
37
|
+
this.token = options.token || process.env.GITHUB_TOKEN;
|
|
38
|
+
this.debug = options.debug || false;
|
|
39
|
+
this.baseURL = options.baseURL || 'https://api.github.com';
|
|
40
|
+
|
|
41
|
+
this.client = grab.instance({
|
|
42
|
+
debug: this.debug,
|
|
43
|
+
baseURL: this.baseURL,
|
|
44
|
+
headers: this.token ? { Authorization: `token ${this.token}` } : {},
|
|
45
|
+
onError: (error) => {
|
|
46
|
+
if (error.includes('403')) {
|
|
47
|
+
const githubHelpUrl = 'https://github.com/settings/personal-access-tokens/new';
|
|
48
|
+
console.log(chalk.red('Rate limit exceeded. Please set env var GITHUB_TOKEN. Help:\n' + githubHelpUrl));
|
|
49
|
+
process.exit(1);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Downloads a GitHub repository as a tarball and extracts it to a local directory
|
|
57
|
+
* @param {string} repo - Repository URL or owner/name format
|
|
58
|
+
* @param {string|null} [targetDir=null] - Target directory name (defaults to repo name)
|
|
59
|
+
* @returns {Promise<string>} Path to the extracted repository directory
|
|
60
|
+
* @throws {Error} When repository download fails
|
|
61
|
+
* @example
|
|
62
|
+
*
|
|
63
|
+
* // Download repository to current directory
|
|
64
|
+
* const repoPath = await github.downloadRepo('https://github.com/user/repo');
|
|
65
|
+
*
|
|
66
|
+
* // Download to specific directory
|
|
67
|
+
* const repoPath = await github.downloadRepo('user/repo', 'my-custom-dir');
|
|
68
|
+
*/
|
|
69
|
+
async downloadRepo(repo, targetDir = null) {
|
|
70
|
+
const parsed = gitUrlParse(repo);
|
|
71
|
+
const defaultDir = path.resolve(process.cwd(), targetDir?.length ? targetDir : parsed.name);
|
|
72
|
+
const extractPath = this._getAvailableDirectoryName(defaultDir);
|
|
73
|
+
|
|
74
|
+
// if it picks up a larger owner name, slice to the last part
|
|
75
|
+
if (parsed.owner.includes('/')) {
|
|
76
|
+
parsed.owner = parsed.owner.split('/').slice(-1).join('');
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
fs.mkdirSync(extractPath, { recursive: true });
|
|
80
|
+
|
|
81
|
+
let url = `/repos/${parsed.owner}/${parsed.name}/tarball/${parsed.default_branch || 'master'}`;
|
|
82
|
+
|
|
83
|
+
console.log(chalk.blue(`📦 Downloading ${parsed.name} into ${path.basename(extractPath)}...`));
|
|
84
|
+
|
|
85
|
+
const params = {
|
|
86
|
+
onStream: async (res) => {
|
|
87
|
+
const nodeStream = (await import('stream'))?.Readable.fromWeb(res);
|
|
88
|
+
await new Promise((resolve, reject) => {
|
|
89
|
+
nodeStream.pipe(tar.x({
|
|
90
|
+
C: extractPath,
|
|
91
|
+
strip: 1
|
|
92
|
+
})).on('finish', resolve).on('error', reject);
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
let response = await this.client(url, params);
|
|
98
|
+
|
|
99
|
+
if (response.error) {
|
|
100
|
+
response = await this.client(url.replace("/master", "/main"), params);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
return extractPath;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* Searches for GitHub repositories by name and enriches results with release information
|
|
108
|
+
* @param {string} query - Search query for repository names
|
|
109
|
+
* @param {Object} [options={}] - Search options
|
|
110
|
+
*
|
|
111
|
+
* @param {number} [options.perPage] - Number of results per page (defaults to DEFAULT_RESULTS_PER_PAGE)
|
|
112
|
+
* @param {string} [options.sort='stars'] - Sort field (stars, forks, updated)
|
|
113
|
+
* @param {string} [options.order='desc'] - Sort order (asc, desc)
|
|
114
|
+
* @returns {Promise<Array<Object>>} Array of repository objects with release information
|
|
115
|
+
* @throws {Error} When search fails
|
|
116
|
+
* @example
|
|
117
|
+
*
|
|
118
|
+
* const repos = await github.searchRepositories('nodejs');
|
|
119
|
+
* repos.forEach(repo => {
|
|
120
|
+
* console.log(`${repo.name}: ${repo.hasReleases ? 'Has releases' : 'No releases'}`);
|
|
121
|
+
* });
|
|
122
|
+
*
|
|
123
|
+
* // Custom search options
|
|
124
|
+
* const repos = await github.searchRepositories('react', {
|
|
125
|
+
* perPage: 5,
|
|
126
|
+
* sort: 'updated',
|
|
127
|
+
* order: 'desc'
|
|
128
|
+
* });
|
|
129
|
+
*/
|
|
130
|
+
async searchRepositories(query, options = {}) {
|
|
131
|
+
try {
|
|
132
|
+
const {
|
|
133
|
+
perPage = GithubAPI.DEFAULT_RESULTS_PER_PAGE,
|
|
134
|
+
sort = 'stars',
|
|
135
|
+
order = 'desc',
|
|
136
|
+
getReleaseInfo = true
|
|
137
|
+
} = options;
|
|
138
|
+
|
|
139
|
+
const response = await this.client('/search/repositories', {
|
|
140
|
+
q: `${query} in:name`,
|
|
141
|
+
sort,
|
|
142
|
+
order,
|
|
143
|
+
per_page: perPage,
|
|
144
|
+
});
|
|
145
|
+
|
|
146
|
+
if (response.error || !response.items) {
|
|
147
|
+
console.log("No response");
|
|
148
|
+
return [];
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
return !getReleaseInfo ? response :
|
|
152
|
+
// Check for releases for each repository
|
|
153
|
+
await Promise.all(
|
|
154
|
+
response.items.map(async (repo) => {
|
|
155
|
+
const releases = await this.client(`/repos/${repo.owner.login}/${repo.name}/releases`);
|
|
156
|
+
|
|
157
|
+
const currentPlatform = this.getCurrentPlatform();
|
|
158
|
+
const compatibleReleases = this._filterReleasesByPlatform(releases, currentPlatform);
|
|
159
|
+
const categorizedReleases = this._categorizeReleasesByPlatform(releases);
|
|
160
|
+
|
|
161
|
+
return {
|
|
162
|
+
...repo,
|
|
163
|
+
hasReleases: releases?.length > 0,
|
|
164
|
+
hasCompatibleReleases: compatibleReleases.length > 0,
|
|
165
|
+
releases: compatibleReleases,
|
|
166
|
+
allReleases: categorizedReleases
|
|
167
|
+
};
|
|
168
|
+
})
|
|
169
|
+
);
|
|
170
|
+
|
|
171
|
+
} catch (error) {
|
|
172
|
+
console.error(chalk.red('Search failed:'), error.message);
|
|
173
|
+
throw error;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
/**
|
|
178
|
+
* Downloads a release asset from GitHub and provides installation instructions
|
|
179
|
+
* @param {Object} packageURL - Download URL for the asset
|
|
180
|
+
* @param {string} downloadPath - Directory to download the asset to
|
|
181
|
+
* @returns {Promise<string>} Path to the downloaded file
|
|
182
|
+
* @throws {Error} When download fails
|
|
183
|
+
* @example
|
|
184
|
+
*
|
|
185
|
+
* const asset = 'https://github.com/user/repo/releases/download/v1.0.0/myapp-v1.0.0-linux-x64'
|
|
186
|
+
* const downloadPath = await github.downloadPackage(asset, './downloads/myapp');
|
|
187
|
+
*/
|
|
188
|
+
async downloadPackage(packageURL, downloadPath) {
|
|
189
|
+
const fileName = downloadPath.split('/').slice(-1)?.[0];
|
|
190
|
+
|
|
191
|
+
console.log(chalk.blue(`📦 Downloading ${fileName}...`));
|
|
192
|
+
|
|
193
|
+
try {
|
|
194
|
+
await this.client(packageURL, {
|
|
195
|
+
onStream: async (res) => {
|
|
196
|
+
const nodeStream = (await import('stream'))?.Readable.fromWeb(res);
|
|
197
|
+
await new Promise((resolve, reject) => {
|
|
198
|
+
nodeStream.pipe(fs.createWriteStream(downloadPath)).on('finish', resolve).on('error', reject);
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
});
|
|
202
|
+
|
|
203
|
+
console.log(chalk.green(`✅ Downloaded ${fileName} to ${downloadPath}`));
|
|
204
|
+
|
|
205
|
+
// Try to make executable if it's a binary
|
|
206
|
+
if (process.platform !== 'win32' && !fileName.includes('.')) {
|
|
207
|
+
try {
|
|
208
|
+
fs.chmodSync(downloadPath, '755');
|
|
209
|
+
console.log(chalk.green(`✅ Made ${fileName} executable`));
|
|
210
|
+
} catch (error) {
|
|
211
|
+
console.log(chalk.yellow(`⚠️ Could not make ${fileName} executable`));
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
// Provide installation instructions
|
|
216
|
+
this._provideInstallationInstructions(downloadPath, asset);
|
|
217
|
+
|
|
218
|
+
return downloadPath;
|
|
219
|
+
} catch (error) {
|
|
220
|
+
console.error(chalk.red(`❌ Failed to download ${fileName}:`), error.message);
|
|
221
|
+
throw error;
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
/**
|
|
226
|
+
* Parses a GitHub URL or shorthand repository reference
|
|
227
|
+
* @param {string} query - GitHub URL or owner/repo format
|
|
228
|
+
* @returns {Object|false} Parsed git URL object or false if invalid
|
|
229
|
+
* @example
|
|
230
|
+
*
|
|
231
|
+
* // Parse full URL
|
|
232
|
+
* const parsed = github.parseURL('https://github.com/user/repo');
|
|
233
|
+
*
|
|
234
|
+
* // Parse shorthand
|
|
235
|
+
* const parsed = github.parseURL('user/repo');
|
|
236
|
+
*
|
|
237
|
+
* if (parsed) {
|
|
238
|
+
* console.log(`Owner: ${parsed.owner}, Name: ${parsed.name}`);
|
|
239
|
+
* }
|
|
240
|
+
*/
|
|
241
|
+
parseURL(query) {
|
|
242
|
+
if (query.includes('github.com') || query.startsWith('git@github.com:') ||
|
|
243
|
+
query.startsWith('https://') || query.startsWith('git://')) {
|
|
244
|
+
return gitUrlParse(query);
|
|
245
|
+
} else if (/^[\w-]+\/[\w.-]+$/.test(query)) {
|
|
246
|
+
return gitUrlParse(`https://github.com/${query}`);
|
|
247
|
+
}
|
|
248
|
+
return false;
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
/**
|
|
252
|
+
* Detects the current operating system and architecture
|
|
253
|
+
* @returns {Object} Platform information object
|
|
254
|
+
* @returns {string} returns.os - Normalized OS name (windows, macos, linux)
|
|
255
|
+
* @returns {string} returns.arch - Normalized architecture (x86_64, arm64, arm, i386)
|
|
256
|
+
* @returns {string} returns.platform - Raw Node.js platform string
|
|
257
|
+
* @returns {string} returns.architecture - Raw Node.js architecture string
|
|
258
|
+
* @example
|
|
259
|
+
* const platform = github.getCurrentPlatform();
|
|
260
|
+
* console.log(`Running on ${platform.os} ${platform.arch}`);
|
|
261
|
+
*/
|
|
262
|
+
getCurrentPlatform() {
|
|
263
|
+
const platform = os.platform();
|
|
264
|
+
const arch = os.arch();
|
|
265
|
+
|
|
266
|
+
const platformMap = {
|
|
267
|
+
'win32': 'windows',
|
|
268
|
+
'darwin': 'macos',
|
|
269
|
+
'linux': 'linux'
|
|
270
|
+
};
|
|
271
|
+
|
|
272
|
+
const archMap = {
|
|
273
|
+
'x64': 'x86_64',
|
|
274
|
+
'arm64': 'arm64',
|
|
275
|
+
'arm': 'arm',
|
|
276
|
+
'ia32': 'i386'
|
|
277
|
+
};
|
|
278
|
+
|
|
279
|
+
return {
|
|
280
|
+
os: platformMap[platform] || platform,
|
|
281
|
+
arch: archMap[arch] || arch,
|
|
282
|
+
platform,
|
|
283
|
+
architecture: arch
|
|
284
|
+
};
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
/**
|
|
288
|
+
* Gets repository releases with platform categorization
|
|
289
|
+
* @param {string} owner - Repository owner
|
|
290
|
+
* @param {string} repo - Repository name
|
|
291
|
+
* @returns {Promise<Array<Object>>} Array of categorized releases
|
|
292
|
+
* @example
|
|
293
|
+
* const releases = await github.getReleases('microsoft', 'vscode');
|
|
294
|
+
* console.log(`Found ${releases.length} releases`);
|
|
295
|
+
*/
|
|
296
|
+
async getReleases(owner, repo) {
|
|
297
|
+
const releases = await this.client(`/repos/${owner}/${repo}/releases`);
|
|
298
|
+
return this._categorizeReleasesByPlatform(releases);
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
/**
|
|
302
|
+
* Gets releases compatible with the current platform
|
|
303
|
+
* @param {string} owner - Repository owner
|
|
304
|
+
* @param {string} repo - Repository name
|
|
305
|
+
* @returns {Promise<Array<Object>>} Array of compatible releases
|
|
306
|
+
* @example
|
|
307
|
+
* const compatible = await github.getCompatibleReleases('user', 'repo');
|
|
308
|
+
* console.log(`Found ${compatible.length} compatible releases`);
|
|
309
|
+
*/
|
|
310
|
+
async getCompatibleReleases(owner, repo) {
|
|
311
|
+
const releases = await this.client(`/repos/${owner}/${repo}/releases`);
|
|
312
|
+
const currentPlatform = this.getCurrentPlatform();
|
|
313
|
+
return this._filterReleasesByPlatform(releases, currentPlatform);
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
/**
|
|
317
|
+
* Generates an available directory name by appending a counter if the base path exists
|
|
318
|
+
* @private
|
|
319
|
+
* @param {string} basePath - The desired base directory path
|
|
320
|
+
* @returns {string} An available directory path
|
|
321
|
+
*/
|
|
322
|
+
_getAvailableDirectoryName(basePath) {
|
|
323
|
+
if (!fs.existsSync(basePath)) return basePath;
|
|
324
|
+
let counter = 2;
|
|
325
|
+
let newPath;
|
|
326
|
+
while (true) {
|
|
327
|
+
newPath = `${basePath}-${counter}`;
|
|
328
|
+
if (!fs.existsSync(newPath)) return newPath;
|
|
329
|
+
counter++;
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
/**
|
|
334
|
+
* Categorizes GitHub releases by platform and architecture based on asset names
|
|
335
|
+
* @private
|
|
336
|
+
* @param {Array<Object>} releases - Array of GitHub release objects
|
|
337
|
+
* @returns {Array<Object>} Releases with platformAssets property containing categorized assets
|
|
338
|
+
*/
|
|
339
|
+
_categorizeReleasesByPlatform(releases) {
|
|
340
|
+
const platformKeywords = {
|
|
341
|
+
windows: ['win', 'windows', 'win32', 'win64', '.exe', '.msi'],
|
|
342
|
+
macos: ['mac', 'macos', 'darwin', 'osx', '.dmg', '.pkg'],
|
|
343
|
+
linux: ['linux', 'ubuntu', 'debian', '.deb', '.rpm', '.tar.gz', '.AppImage']
|
|
344
|
+
};
|
|
345
|
+
|
|
346
|
+
const archKeywords = {
|
|
347
|
+
x86_64: ['x86_64', 'x64', 'amd64', '64'],
|
|
348
|
+
arm64: ['arm64', 'aarch64'],
|
|
349
|
+
arm: ['arm', 'armv7'],
|
|
350
|
+
i386: ['i386', 'x86', '32']
|
|
351
|
+
};
|
|
352
|
+
|
|
353
|
+
const categorizedReleases = [];
|
|
354
|
+
|
|
355
|
+
Object.entries(releases).forEach(([key, release]) => {
|
|
356
|
+
const platformAssets = {
|
|
357
|
+
windows: [],
|
|
358
|
+
macos: [],
|
|
359
|
+
linux: [],
|
|
360
|
+
universal: []
|
|
361
|
+
};
|
|
362
|
+
|
|
363
|
+
release?.assets?.forEach(asset => {
|
|
364
|
+
const name = asset.name.toLowerCase();
|
|
365
|
+
let categorized = false;
|
|
366
|
+
|
|
367
|
+
// Check each platform
|
|
368
|
+
Object.entries(platformKeywords).forEach(([platform, keywords]) => {
|
|
369
|
+
if (keywords.some(keyword => name.includes(keyword.toLowerCase()))) {
|
|
370
|
+
// Determine architecture
|
|
371
|
+
let detectedArch = 'unknown';
|
|
372
|
+
Object.entries(archKeywords).forEach(([arch, archKeys]) => {
|
|
373
|
+
if (archKeys.some(archKey => name.includes(archKey.toLowerCase()))) {
|
|
374
|
+
detectedArch = arch;
|
|
375
|
+
}
|
|
376
|
+
});
|
|
377
|
+
|
|
378
|
+
platformAssets[platform].push({
|
|
379
|
+
...asset,
|
|
380
|
+
detectedArch,
|
|
381
|
+
platform
|
|
382
|
+
});
|
|
383
|
+
categorized = true;
|
|
384
|
+
}
|
|
385
|
+
});
|
|
386
|
+
|
|
387
|
+
// If not categorized, check for universal binaries
|
|
388
|
+
if (!categorized && (name.includes('universal') || name.includes('all') ||
|
|
389
|
+
(!name.includes('win') && !name.includes('mac') && !name.includes('linux')))) {
|
|
390
|
+
platformAssets.universal.push({
|
|
391
|
+
...asset,
|
|
392
|
+
detectedArch: 'universal',
|
|
393
|
+
platform: 'universal'
|
|
394
|
+
});
|
|
395
|
+
}
|
|
396
|
+
});
|
|
397
|
+
|
|
398
|
+
// Only include releases that have assets
|
|
399
|
+
const hasAssets = Object.values(platformAssets).some(assets => assets.length > 0);
|
|
400
|
+
if (hasAssets) {
|
|
401
|
+
categorizedReleases.push({
|
|
402
|
+
...release,
|
|
403
|
+
platformAssets
|
|
404
|
+
});
|
|
405
|
+
}
|
|
406
|
+
});
|
|
407
|
+
|
|
408
|
+
return categorizedReleases;
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
/**
|
|
412
|
+
* Filters releases to only include those compatible with the specified platform
|
|
413
|
+
* @private
|
|
414
|
+
* @param {Array<Object>} releases - Array of GitHub release objects
|
|
415
|
+
* @param {Object} currentPlatform - Platform information from getCurrentPlatform()
|
|
416
|
+
* @returns {Array<Object>} Filtered array of compatible releases
|
|
417
|
+
*/
|
|
418
|
+
_filterReleasesByPlatform(releases, currentPlatform) {
|
|
419
|
+
const categorized = this._categorizeReleasesByPlatform(releases);
|
|
420
|
+
return categorized.filter(release =>
|
|
421
|
+
release.platformAssets[currentPlatform.os].length > 0 ||
|
|
422
|
+
release.platformAssets.universal.length > 0
|
|
423
|
+
);
|
|
424
|
+
}
|
|
425
|
+
|
|
426
|
+
/**
|
|
427
|
+
* Provides platform-specific installation instructions for a downloaded asset
|
|
428
|
+
* @private
|
|
429
|
+
* @param {string} filePath - Path to the downloaded file
|
|
430
|
+
* @param {Object} asset - GitHub release asset object
|
|
431
|
+
* @param {string} asset.name - Name of the asset file
|
|
432
|
+
*/
|
|
433
|
+
_provideInstallationInstructions(filePath, asset) {
|
|
434
|
+
const fileName = asset.name;
|
|
435
|
+
const platform = this.getCurrentPlatform();
|
|
436
|
+
|
|
437
|
+
if (platform.platform === 'win32') {
|
|
438
|
+
if (fileName.endsWith('.exe')) {
|
|
439
|
+
console.log(chalk.white(' Run the executable:'));
|
|
440
|
+
console.log(chalk.gray(` ${filePath}`));
|
|
441
|
+
} else if (fileName.endsWith('.msi')) {
|
|
442
|
+
console.log(chalk.white(' Install the MSI package:'));
|
|
443
|
+
console.log(chalk.gray(` msiexec /i "${filePath}"`));
|
|
444
|
+
}
|
|
445
|
+
} else if (platform.platform === 'darwin') {
|
|
446
|
+
if (fileName.endsWith('.dmg')) {
|
|
447
|
+
console.log(chalk.white(' Mount and install the DMG:'));
|
|
448
|
+
console.log(chalk.gray(` open "${filePath}"`));
|
|
449
|
+
} else if (fileName.endsWith('.pkg')) {
|
|
450
|
+
console.log(chalk.white(' Install the package:'));
|
|
451
|
+
console.log(chalk.gray(` sudo installer -pkg "${filePath}" -target /`));
|
|
452
|
+
}
|
|
453
|
+
} else {
|
|
454
|
+
if (fileName.endsWith('.deb')) {
|
|
455
|
+
console.log(chalk.white(' Install the DEB package:'));
|
|
456
|
+
console.log(chalk.gray(` sudo dpkg -i "${filePath}"`));
|
|
457
|
+
} else if (fileName.endsWith('.rpm')) {
|
|
458
|
+
console.log(chalk.white(' Install the RPM package:'));
|
|
459
|
+
console.log(chalk.gray(` sudo rpm -i "${filePath}"`));
|
|
460
|
+
} else if (fileName.endsWith('.AppImage')) {
|
|
461
|
+
console.log(chalk.white(' Run the AppImage:'));
|
|
462
|
+
console.log(chalk.gray(` chmod +x "${filePath}" && "${filePath}"`));
|
|
463
|
+
} else if (!fileName.includes('.')) {
|
|
464
|
+
console.log(chalk.white(' Binary is ready to use:'));
|
|
465
|
+
console.log(chalk.gray(` "${filePath}"`));
|
|
466
|
+
console.log(chalk.white(' Consider moving to PATH:'));
|
|
467
|
+
console.log(chalk.gray(` sudo mv "${filePath}" /usr/local/bin/`));
|
|
468
|
+
}
|
|
469
|
+
}
|
|
470
|
+
}
|
|
471
|
+
}
|
|
472
|
+
|
|
473
|
+
export default GithubAPI;
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
/*! For license information please see 1df93b7f.dfdf0ef3.js.LICENSE.txt */
|
|
2
|
-
"use strict";(self.webpackChunkcreate_apidocs=self.webpackChunkcreate_apidocs||[]).push([[583,682],{3378:(e,t,a)=>{a.d(t,{A:()=>r});const r=(0,a(4722).A)("github",[["path",{d:"M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4",key:"tonef"}],["path",{d:"M9 18c-4.51 2-5-2-7-2",key:"9comsn"}]])},4722:(e,t,a)=>{a.d(t,{A:()=>c});var r=a(6540);const s=e=>{const t=(e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,((e,t,a)=>a?a.toUpperCase():t.toLowerCase())))(e);return t.charAt(0).toUpperCase()+t.slice(1)},l=(...e)=>e.filter(((e,t,a)=>Boolean(e)&&""!==e.trim()&&a.indexOf(e)===t)).join(" ").trim(),o=e=>{for(const t in e)if(t.startsWith("aria-")||"role"===t||"title"===t)return!0};var i={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};const n=(0,r.forwardRef)((({color:e="currentColor",size:t=24,strokeWidth:a=2,absoluteStrokeWidth:s,className:n="",children:c,iconNode:d,...m},x)=>(0,r.createElement)("svg",{ref:x,...i,width:t,height:t,stroke:e,strokeWidth:s?24*Number(a)/Number(t):a,className:l("lucide",n),...!c&&!o(m)&&{"aria-hidden":"true"},...m},[...d.map((([e,t])=>(0,r.createElement)(e,t))),...Array.isArray(c)?c:[c]]))),c=(e,t)=>{const a=(0,r.forwardRef)((({className:a,...o},i)=>{return(0,r.createElement)(n,{ref:i,iconNode:t,className:l(`lucide-${c=s(e),c.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${e}`,a),...o});var c}));return a.displayName=s(e),a}},4905:(e,t,a)=>{a.r(t),a.d(t,{default:()=>w});var r=a(6540),s=a(7851),l=a(4722);const o=(0,l.A)("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]),i=(0,l.A)("download",[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]]),n=(0,l.A)("package",[["path",{d:"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z",key:"1a0edw"}],["path",{d:"M12 22V12",key:"d0xqtd"}],["polyline",{points:"3.29 7 12 12 20.71 7",key:"ousv84"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}]]),c=(0,l.A)("zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]]),d=(0,l.A)("code",[["path",{d:"m16 18 6-6-6-6",key:"eg8j8"}],["path",{d:"m8 6-6 6 6 6",key:"ppft3o"}]]),m=(0,l.A)("shield",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}]]),x=(0,l.A)("layers",[["path",{d:"M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z",key:"zw3jo"}],["path",{d:"M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12",key:"1wduqc"}],["path",{d:"M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17",key:"kqbvx6"}]]),u=(0,l.A)("file-code",[["path",{d:"M10 12.5 8 15l2 2.5",key:"1tg20x"}],["path",{d:"m14 12.5 2 2.5-2 2.5",key:"yinavb"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7z",key:"1mlx9k"}]]),h=(0,l.A)("settings",[["path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z",key:"1qme2f"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]),p=(0,l.A)("play",[["polygon",{points:"6 3 20 12 6 21 6 3",key:"1oa8hb"}]]);var g=a(3378);const b=(0,l.A)("sparkles",[["path",{d:"M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z",key:"4pj2yx"}],["path",{d:"M20 3v4",key:"1olli1"}],["path",{d:"M22 5h-4",key:"1gvqau"}],["path",{d:"M4 17v2",key:"vumght"}],["path",{d:"M5 18H3",key:"zchphs"}]]),y=(0,l.A)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]),f=(0,l.A)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);var v=a(4848),j={installCommands:{bun:"bun install -g git0",npm:"npm install -g git0",npx:"npx git0 react starter"},coreFeatures:[{icon:o,title:"Search GitHub Repositories",description:"Search repositories by name with intelligent fuzzy matching and instant results",gradient:"from-blue-500 via-cyan-500 to-teal-500",example:"git0 react starter"},{icon:i,title:"Direct Repository Download",description:"Download from GitHub URLs or owner/repo shortcuts. Skip the manual git clone dance",gradient:"from-purple-500 via-pink-500 to-rose-500",example:"git0 facebook/react"},{icon:n,title:"Git Release Package Manager",description:"Instantly download latest release binaries for your system or all platforms",gradient:"from-green-500 via-emerald-500 to-cyan-500",example:"gg user/repo"},{icon:c,title:"Automatic Dependency Installation",description:"Smart detection and installation of dependencies for multiple project types",gradient:"from-orange-500 via-red-500 to-pink-500",example:"Auto-detects package.json, requirements.txt, Cargo.toml"},{icon:d,title:"Smart IDE Integration",description:"Automatically opens projects in Cursor, Windsurf, VS Code, or your preferred editor",gradient:"from-indigo-500 via-purple-500 to-blue-500",example:"Opens in cursor, windsurf, code, nvim"},{icon:m,title:"Conflict Resolution",description:"Handles directory naming conflicts automatically with smart numbering",gradient:"from-yellow-500 via-orange-500 to-red-500",example:"react \u2192 react-2 \u2192 react-3"}],projectTypes:[{name:"Node.js",file:"package.json",install:"bun install (fallback to npm)",color:"text-green-400",icon:n},{name:"Docker",file:"Dockerfile, docker-compose.yml",install:"docker-compose up -d",color:"text-blue-400",icon:x},{name:"Python",file:"requirements.txt, setup.py",install:"Virtual env + pip install",color:"text-yellow-400",icon:u},{name:"Rust",file:"Cargo.toml",install:"cargo build",color:"text-orange-400",icon:h},{name:"Go",file:"go.mod",install:"go mod tidy",color:"text-cyan-400",icon:p}],supportedIDEs:[{name:"Cursor",command:"cursor",color:"text-blue-400"},{name:"Windsurf",command:"windsurf",color:"text-purple-400"},{name:"VS Code",command:"code",color:"text-blue-300"},{name:"Code Server",command:"code-server",color:"text-green-400"},{name:"Neovim",command:"nvim",color:"text-orange-400"}],featuresList:[{title:"Search Repositories",command:"git0 react starter",desc:"Find repositories by name with fuzzy matching"},{title:"Direct Download",command:"gg facebook/react",desc:"Download using owner/repo shorthand"},{title:"From GitHub URL",command:"git0 https://github.com/user/repo",desc:"Download from any GitHub URL"}],workflowSteps:[{step:"1",title:"Repository Downloaded",desc:"To your current directory",icon:i},{step:"2",title:"Project Type Detected",desc:"Automatically identified",icon:o},{step:"3",title:"Dependencies Installed",desc:"Based on project type",icon:n},{step:"4",title:"IDE Launched",desc:"Opens in preferred editor",icon:d},{step:"5",title:"Dev Server Started",desc:"For Node.js projects",icon:p}],urlDocs:"https://git0.js.org/functions",urlSupport:"https://discord.gg/SJdBqBz3tV",urlGithub:"https://github.com/vtempest/git0",urlGithubChat:"https://github.com/vtempest/git0/discussions",urlLogo:"https://i.imgur.com/857meew.png",name:"git0",urlAuthor:"https://github.com/vtempest",author:"vtempest",copyrightHTML:'© 2025 Get git0. <a href="https://github.com/vtempest/git0">Star this on GitHub</a> so it can grow!'};const w=function(){var e=(0,r.useState)(null),t=e[0],a=e[1],l=(0,r.useState)("bun"),o=l[0],i=l[1],n=(0,r.useState)({x:0,y:0}),c=n[0],d=n[1];return(0,r.useEffect)((function(){var e=function(e){d({x:e.clientX,y:e.clientY})};return window.addEventListener("mousemove",e),function(){return window.removeEventListener("mousemove",e)}}),[]),(0,v.jsxs)("div",{className:"min-h-screen bg-gray-900 text-white overflow-hidden relative",children:[(0,v.jsxs)("div",{className:"fixed inset-0 bg-gradient-to-br from-gray-900 via-blue-900/30 to-purple-900/30",children:[(0,v.jsxs)("div",{className:"absolute inset-0",children:[(0,v.jsx)("div",{className:"absolute w-96 h-96 bg-blue-500/20 rounded-full blur-3xl animate-pulse",style:{left:20+.02*c.x+"%",top:10+.01*c.y+"%",transform:"translate3d(0, 0, 0)"}}),(0,v.jsx)("div",{className:"absolute w-80 h-80 bg-purple-500/20 rounded-full blur-3xl animate-pulse delay-1000",style:{right:15+-.015*c.x+"%",bottom:20+-.01*c.y+"%",transform:"translate3d(0, 0, 0)"}}),(0,v.jsx)("div",{className:"absolute w-64 h-64 bg-cyan-500/15 rounded-full blur-3xl animate-pulse delay-2000",style:{left:60+.01*c.x+"%",top:60+.005*c.y+"%",transform:"translate3d(0, 0, 0)"}})]}),(0,v.jsx)("div",{className:"absolute inset-0 bg-[linear-gradient(rgba(56,189,248,0.03)_1px,transparent_1px),linear-gradient(90deg,rgba(56,189,248,0.03)_1px,transparent_1px)] bg-[size:50px_50px]"}),(0,v.jsx)("div",{className:"absolute inset-0 bg-[radial-gradient(circle_at_25%_25%,rgba(56,189,248,0.15),transparent_50%)]"}),(0,v.jsx)("div",{className:"absolute inset-0 bg-[radial-gradient(circle_at_75%_75%,rgba(147,51,234,0.15),transparent_50%)]"})]}),(0,v.jsxs)("nav",{className:"relative z-50 flex items-center justify-between p-6 backdrop-blur-xl bg-gray-900/70 border-b border-gray-700/50",children:[(0,v.jsxs)("div",{className:"flex items-center space-x-3",children:[(0,v.jsx)("div",{className:"w-12 h-12 bg-gradient-to-br from-blue-500 via-cyan-500 to-purple-600 rounded-xl flex items-center justify-center shadow-2xl shadow-blue-500/25 transform hover:scale-110 transition-all duration-300",children:(0,v.jsx)("img",{src:j.urlLogo,alt:"logo",className:"w-10 h-10"})}),(0,v.jsx)("span",{className:"text-3xl font-bold bg-gradient-to-r from-blue-400 via-cyan-400 to-purple-400 bg-clip-text text-transparent",children:j.name})]}),(0,v.jsxs)("div",{className:"flex items-center space-x-8",children:[(0,v.jsx)("a",{href:"#features",className:"hover:text-blue-400 transition-all duration-300 hover:scale-105",children:"Features"}),(0,v.jsx)("a",{href:"#installation",className:"hover:text-blue-400 transition-all duration-300 hover:scale-105",children:"Install"}),(0,v.jsx)("a",{href:"#workflow",className:"hover:text-blue-400 transition-all duration-300 hover:scale-105",children:"How It Works"}),(0,v.jsxs)("a",{href:j.urlGithub,className:"flex items-center space-x-2 bg-gradient-to-r from-blue-600 via-cyan-600 to-purple-600 px-6 py-3 rounded-xl hover:from-blue-500 hover:via-cyan-500 hover:to-purple-500 transition-all duration-300 shadow-2xl shadow-blue-500/25 hover:scale-105 hover:shadow-blue-500/40",children:[(0,v.jsx)(g.A,{className:"w-5 h-5"}),(0,v.jsx)("span",{className:"font-semibold",children:"GitHub"})]})]})]}),(0,v.jsx)("section",{className:"relative z-10 pt-6 pb-10 px-6",children:(0,v.jsxs)("div",{className:"max-w-7xl mx-auto text-center",children:[(0,v.jsxs)("div",{className:"",children:[(0,v.jsxs)("div",{className:"inline-flex items-center space-x-3 bg-gradient-to-r from-blue-500/20 via-cyan-500/20 to-purple-500/20 backdrop-blur-xl border border-blue-500/30 rounded-full px-6 py-3 mb-8 shadow-2xl shadow-blue-500/10 hover:shadow-blue-500/20 transition-all duration-500",children:[(0,v.jsx)(b,{className:"w-5 h-5 text-blue-400 animate-pulse"}),(0,v.jsx)("span",{className:"text-blue-300 font-medium",children:"Download Git Repo on Step Zero"}),(0,v.jsx)("div",{className:"w-2 h-2 bg-green-400 rounded-full animate-pulse"})]}),(0,v.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,v.jsx)("img",{src:"https://i.imgur.com/Io3ukRC.gif",alt:"Git Preview",className:"w-full"}),(0,v.jsx)("img",{src:"https://i.imgur.com/6l9esbL.png",alt:"Git Preview",className:"w-full"})]}),(0,v.jsxs)("p",{className:"text-2xl md:text-3xl mt-4 text-gray-300 mb-12 max-w-5xl mx-auto leading-relaxed font-light",children:["CLI tool to search GitHub repositories, download source & releases, and instantly set up projects with",(0,v.jsx)("span",{className:"bg-gradient-to-r from-blue-400 to-cyan-400 bg-clip-text text-transparent font-semibold",children:" automatic dependency installation and editor opening"})]})]}),(0,v.jsxs)("div",{id:"installation",children:[(0,v.jsx)("div",{className:"flex justify-center mb-8",children:(0,v.jsx)("div",{className:"flex bg-gray-800/50 backdrop-blur-xl rounded-2xl p-2 border border-gray-700/50 shadow-2xl",children:Object.keys(j.installCommands).map((function(e){return(0,v.jsx)("button",{onClick:function(){return i(e)},className:"px-6 py-3 rounded-xl transition-all duration-300 font-semibold "+(o===e?"bg-gradient-to-r from-blue-500 via-cyan-500 to-purple-500 text-white shadow-lg transform scale-105":"text-gray-400 hover:text-white hover:bg-gray-700/50"),children:e.toUpperCase()},e)}))})}),(0,v.jsx)("div",{className:"max-w-3xl mx-auto",children:(0,v.jsxs)("div",{className:"bg-gray-800/40 backdrop-blur-xl border border-gray-700/50 rounded-2xl p-8 shadow-2xl hover:shadow-blue-500/10 transition-all duration-500 transform hover:scale-[1.02]",children:[(0,v.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,v.jsx)("span",{className:"text-gray-400 font-medium",children:"Installation Command"}),(0,v.jsxs)("button",{onClick:function(){return e=j.installCommands[o],t=o,navigator.clipboard.writeText(e),a(t),void setTimeout((function(){return a(null)}),2e3);var e,t},className:"flex items-center space-x-2 text-blue-400 hover:text-blue-300 transition-all duration-300 bg-blue-500/10 px-4 py-2 rounded-lg hover:bg-blue-500/20",children:[t===o?(0,v.jsx)(y,{className:"w-5 h-5"}):(0,v.jsx)(f,{className:"w-5 h-5"}),(0,v.jsx)("span",{className:"font-medium",children:t===o?"Copied!":"Copy"})]})]}),(0,v.jsx)("code",{className:"text-xl text-green-400 font-mono bg-gray-900/50 p-4 rounded-lg block",children:j.installCommands[o]})]})})]}),(0,v.jsx)("div",{className:"",children:(0,v.jsxs)("div",{className:"max-w-6xl mx-auto bg-gray-800/30 backdrop-blur-xl border border-gray-700/50 rounded-2xl p-10 shadow-2xl",children:[(0,v.jsx)("h3",{className:"text-3xl font-bold mb-8 text-center bg-gradient-to-r from-blue-400 to-purple-400 bg-clip-text text-transparent",children:"Usage Examples"}),(0,v.jsx)("div",{className:"grid md:grid-cols-3 gap-6",children:j.featuresList.map((function(e,t){return(0,v.jsxs)("div",{className:"bg-gray-800/50 rounded-xl p-6 border border-gray-700/50 hover:border-blue-500/50 transition-all duration-300 transform hover:scale-105 hover:shadow-xl",children:[(0,v.jsx)("div",{className:"text-blue-400 font-bold text-lg mb-2",children:e.title}),(0,v.jsx)("code",{className:"text-green-400 text-lg font-mono block mb-3 bg-gray-900/50 p-3 rounded",children:e.command}),(0,v.jsx)("p",{className:"text-gray-400 text-sm",children:e.desc})]},t)}))})]})})]})}),(0,v.jsx)("section",{id:"features",className:"relative z-10 px-6",children:(0,v.jsx)("div",{className:"max-w-7xl mx-auto",children:(0,v.jsx)("div",{className:"grid md:grid-cols-2 lg:grid-cols-3 gap-8 ",children:j.coreFeatures.map((function(e,t){return(0,v.jsxs)("div",{className:"group relative bg-gray-800/30 backdrop-blur-xl border border-gray-700/50 rounded-2xl p-8 hover:bg-gray-800/50 transition-all duration-500 transform hover:scale-105 hover:shadow-2xl hover:shadow-blue-500/20",children:[(0,v.jsx)("div",{className:"w-16 h-16 bg-gradient-to-br "+e.gradient+" rounded-2xl flex items-center justify-center mb-6 group-hover:scale-110 transition-all duration-300 shadow-2xl",children:(0,v.jsx)(e.icon,{className:"w-8 h-8 text-white"})}),(0,v.jsx)("h3",{className:"text-xl font-bold mb-4 group-hover:text-blue-400 transition-colors",children:e.title}),(0,v.jsx)("p",{className:"text-gray-400 leading-relaxed mb-4",children:e.description}),(0,v.jsx)("code",{className:"text-sm text-green-400 bg-gray-900/50 px-3 py-1 rounded font-mono",children:e.example}),(0,v.jsx)("div",{className:"absolute inset-0 bg-gradient-to-r from-blue-500/5 to-purple-500/5 rounded-2xl opacity-0 group-hover:opacity-100 transition-opacity duration-300"})]},t)}))})})}),(0,v.jsx)("section",{className:"relative z-10 px-6 mt-4 ",children:(0,v.jsxs)("div",{className:"max-w-7xl mx-auto",children:[(0,v.jsx)("div",{className:"text-center ",children:(0,v.jsx)("h2",{className:"text-6xl h-full md:text-5xl font-bold mb-6 bg-gradient-to-r pb-4 from-green-400 to-blue-400 bg-clip-text text-transparent",children:"Supported Project Types"})}),(0,v.jsx)("div",{className:"grid md:grid-cols-1 lg:grid-cols-1 gap-6 mt-4 ",children:j.projectTypes.map((function(e,t){return(0,v.jsx)("div",{className:"bg-gray-800/40 backdrop-blur-xl border border-gray-700/50 rounded-xl p-6 hover:border-blue-500/50 transition-all duration-300 transform hover:scale-[1.02]",children:(0,v.jsxs)("div",{className:"flex items-center justify-between",children:[(0,v.jsxs)("div",{className:"flex items-center space-x-4",children:[(0,v.jsx)(e.icon,{className:"w-8 h-8 "+e.color}),(0,v.jsxs)("div",{children:[(0,v.jsx)("h3",{className:"text-lg font-bold "+e.color,children:e.name}),(0,v.jsxs)("p",{className:"text-gray-400 text-sm",children:["Detection: ",e.file]})]})]}),(0,v.jsxs)("div",{className:"text-right",children:[(0,v.jsx)("p",{className:"text-gray-300 font-medium",children:"Installation"}),(0,v.jsx)("code",{className:"text-green-400 text-sm",children:e.install})]})]})},t)}))})]})}),(0,v.jsx)("section",{id:"workflow",className:"relative z-10 mt-6 px-6",children:(0,v.jsxs)("div",{className:"max-w-7xl mx-auto",children:[(0,v.jsxs)("div",{className:"text-center",children:[(0,v.jsx)("h2",{className:"text-4xl md:text-5xl font-bold mb-6 mt-10 bg-gradient-to-r from-cyan-400 to-blue-400 bg-clip-text text-transparent",children:"The Proper Protocol to Download Git Repo"}),(0,v.jsx)("p",{className:"text-xl text-gray-300 max-w-3xl mx-auto mb-10",children:'Skip the manual "git clone, cd, install" dance.'})]}),(0,v.jsx)("div",{className:"grid md:grid-cols-5 gap-8 mt-6",children:j.workflowSteps.map((function(e,t){return(0,v.jsxs)("div",{className:"text-center group",children:[(0,v.jsxs)("div",{className:"relative mb-6",children:[(0,v.jsx)("div",{className:"w-16 h-16 bg-gradient-to-br from-blue-500 to-purple-600 rounded-full flex items-center justify-center mx-auto shadow-2xl group-hover:scale-110 transition-all duration-300",children:(0,v.jsx)(e.icon,{className:"w-8 h-8 text-white"})}),(0,v.jsx)("div",{className:"absolute -top-2 -right-2 w-8 h-8 bg-gradient-to-r from-cyan-400 to-blue-400 rounded-full flex items-center justify-center text-sm font-bold text-gray-900",children:e.step})]}),(0,v.jsx)("h3",{className:"text-lg font-bold mb-2 group-hover:text-blue-400 transition-colors",children:e.title}),(0,v.jsx)("p",{className:"text-gray-400 text-sm",children:e.desc})]},t)}))}),(0,v.jsx)("div",{className:"mt-8 mb-8 text-center",children:(0,v.jsxs)("div",{className:"bg-gray-800/40 backdrop-blur-xl border border-gray-700/50 rounded-xl p-6 max-w-2xl mx-auto",children:[(0,v.jsxs)("p",{className:"text-gray-300 mb-4",children:[(0,v.jsx)("strong",{className:"text-blue-400",children:"Conflict Resolution:"})," If a directory with the same name exists, git0 automatically appends a number"]}),(0,v.jsx)("code",{className:"text-green-400 bg-gray-900/50 px-4 py-2 rounded",children:"react-app \u2192 react-app-2 \u2192 react-app-3"})]})})]})}),(0,v.jsx)(s.default,{})]})}},7851:(e,t,a)=>{a.r(t),a.d(t,{default:()=>d});a(6540);var r=a(4722);const s=(0,r.A)("book-open",[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]]),l=(0,r.A)("users",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]]);var o=a(3378);const i=(0,r.A)("git-branch",[["line",{x1:"6",x2:"6",y1:"3",y2:"15",key:"17qcm7"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M18 9a9 9 0 0 1-9 9",key:"n2h4wq"}]]);var n=a(4848),c={urlDocs:"https://git0.js.org/functions",urlSupport:"https://discord.gg/SJdBqBz3tV",urlGithub:"https://github.com/vtempest/git0",urlGithubChat:"https://github.com/vtempest/git0/discussions",urlLogo:"https://i.imgur.com/857meew.png",name:"git0",urlAuthor:"https://github.com/vtempest",author:"vtempest",copyrightHTML:'© 2025 Get git0. <a href="https://github.com/vtempest/git0">Star this on GitHub</a> so it can grow!'};function d(){return(0,n.jsx)("footer",{className:"relative z-10 border-t border-gray-800/50 py-16 px-6 bg-gray-900/50 backdrop-blur-xl",children:(0,n.jsxs)("div",{className:"max-w-7xl mx-auto",children:[(0,n.jsxs)("div",{className:"flex flex-col md:flex-row items-center justify-between ",children:[(0,n.jsxs)("div",{className:"flex items-center space-x-4 mb-6 md:mb-0",children:[(0,n.jsx)("div",{className:"w-12 h-12 bg-gradient-to-br from-blue-500 via-cyan-500 to-purple-600 rounded-xl flex items-center justify-center shadow-2xl",children:(0,n.jsx)("img",{src:c.urlLogo,alt:"logo",className:"w-10 h-10"})}),(0,n.jsx)("span",{className:"text-2xl font-bold bg-gradient-to-r from-blue-400 to-purple-400 bg-clip-text text-transparent",children:c.name})]}),(0,n.jsxs)("div",{className:"flex items-center space-x-8",children:[(0,n.jsxs)("a",{href:c.urlDocs,className:"flex items-center space-x-2 text-gray-400 hover:text-white transition-all duration-300 hover:scale-105",children:[(0,n.jsx)(s,{className:"w-5 h-5"}),(0,n.jsx)("span",{children:"Docs"})]}),(0,n.jsxs)("a",{href:c.urlSupport,className:"flex items-center space-x-2 text-gray-400 hover:text-white transition-all duration-300 hover:scale-105",children:[(0,n.jsx)(l,{className:"w-5 h-5"}),(0,n.jsx)("span",{children:"Discord"})]}),(0,n.jsxs)("a",{href:c.urlGithub,className:"flex items-center space-x-2 text-gray-400 hover:text-white transition-all duration-300 hover:scale-105",children:[(0,n.jsx)(o.A,{className:"w-5 h-5"}),(0,n.jsx)("span",{children:"GitHub"})]}),(0,n.jsxs)("a",{href:c.urlGithubChat,className:"flex items-center space-x-2 text-gray-400 hover:text-white transition-all duration-300 hover:scale-105",children:[(0,n.jsx)(i,{className:"w-5 h-5"}),(0,n.jsx)("span",{children:"Discussions"})]})]})]}),(0,n.jsxs)("div",{className:"pt-8 border-t border-gray-800/50 text-center",children:[(0,n.jsx)("p",{className:"text-gray-400 mb-4",dangerouslySetInnerHTML:{__html:c.copyrightHTML}}),(0,n.jsx)("div",{className:"flex justify-center space-x-4 text-sm text-gray-500",children:(0,n.jsxs)("span",{children:["Made by ",(0,n.jsx)("a",{href:c.urlAuthor,className:"text-blue-400 hover:text-blue-300 transition-all duration-300",children:c.author})," with \u2764\ufe0f for the developer community"]})})]})]})})}}}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunkcreate_apidocs=self.webpackChunkcreate_apidocs||[]).push([[567],{5226:e=>{e.exports=JSON.parse('{"version":{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"default":[{"type":"category","label":"Functions","collapsed":false,"items":[{"type":"link","label":"globals","href":"/functions/globals","docId":"functions/globals","unlisted":false},{"type":"link","label":"index","href":"/functions/","docId":"functions/index","unlisted":false}],"collapsible":true}]},"docs":{"functions/globals":{"id":"functions/globals","title":"globals","description":"downloadRepo()","sidebar":"default"},"functions/index":{"id":"functions/index","title":"index","description":"<img src=\\"https://img.shields.io/discord/1110227955554209923.svg?label=Chat&logo=Discord&colorB=7289da&style=flat\\"","sidebar":"default"},"index":{"id":"index","title":"Overview","description":"<img src=\\"https://img.shields.io/discord/1110227955554209923.svg?label=Chat&logo=Discord&colorB=7289da&style=flat\\"","sidebar":"default"}}}}')}}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunkcreate_apidocs=self.webpackChunkcreate_apidocs||[]).push([[26],{5576:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>l,contentTitle:()=>c,default:()=>o,frontMatter:()=>t,metadata:()=>r,toc:()=>a});const r=JSON.parse('{"id":"functions/globals","title":"globals","description":"downloadRepo()","source":"@site/src/functions/globals.md","sourceDirName":"functions","slug":"/functions/globals","permalink":"/functions/globals","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{},"sidebar":"default","next":{"title":"index","permalink":"/functions/"}}');var i=s(4848),d=s(8453);const t={},c=void 0,l={},a=[{value:"downloadRepo()",id:"downloadrepo",level:2},{value:"Parameters",id:"parameters",level:3},{value:"Returns",id:"returns",level:3},{value:"installDependencies()",id:"installdependencies",level:2},{value:"Parameters",id:"parameters-1",level:3},{value:"Returns",id:"returns-1",level:3},{value:"openInIDE()",id:"openinide",level:2},{value:"Parameters",id:"parameters-2",level:3},{value:"Returns",id:"returns-2",level:3},{value:"searchRepositories()",id:"searchrepositories",level:2},{value:"Parameters",id:"parameters-3",level:3},{value:"Returns",id:"returns-3",level:3}];function h(e){const n={a:"a",code:"code",h2:"h2",h3:"h3",hr:"hr",p:"p",pre:"pre",...(0,d.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h2,{id:"downloadrepo",children:"downloadRepo()"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-ts",children:"function downloadRepo(repo: any): Promise<void>;\n"})}),"\n",(0,i.jsxs)(n.p,{children:["Defined in: ",(0,i.jsx)(n.a,{href:"https://github.com/vtempest/git0/blob/f5565c601a25c627e02f22dfda1f72982fbcaeae/git0.js#L506",children:"git0.js:506"})]}),"\n",(0,i.jsx)(n.h3,{id:"parameters",children:"Parameters"}),"\n",(0,i.jsxs)("table",{children:[(0,i.jsx)("thead",{children:(0,i.jsxs)("tr",{children:[(0,i.jsx)("th",{children:"Parameter"}),(0,i.jsx)("th",{children:"Type"})]})}),(0,i.jsx)("tbody",{children:(0,i.jsxs)("tr",{children:[(0,i.jsx)("td",{children:(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"repo"})})}),(0,i.jsx)("td",{children:(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"any"})})})]})})]}),"\n",(0,i.jsx)(n.h3,{id:"returns",children:"Returns"}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"Promise"}),"<",(0,i.jsx)(n.code,{children:"void"}),">"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h2,{id:"installdependencies",children:"installDependencies()"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-ts",children:"function installDependencies(targetDir: any): Promise<void>;\n"})}),"\n",(0,i.jsxs)(n.p,{children:["Defined in: ",(0,i.jsx)(n.a,{href:"https://github.com/vtempest/git0/blob/f5565c601a25c627e02f22dfda1f72982fbcaeae/git0.js#L397",children:"git0.js:397"})]}),"\n",(0,i.jsx)(n.h3,{id:"parameters-1",children:"Parameters"}),"\n",(0,i.jsxs)("table",{children:[(0,i.jsx)("thead",{children:(0,i.jsxs)("tr",{children:[(0,i.jsx)("th",{children:"Parameter"}),(0,i.jsx)("th",{children:"Type"})]})}),(0,i.jsx)("tbody",{children:(0,i.jsxs)("tr",{children:[(0,i.jsx)("td",{children:(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"targetDir"})})}),(0,i.jsx)("td",{children:(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"any"})})})]})})]}),"\n",(0,i.jsx)(n.h3,{id:"returns-1",children:"Returns"}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"Promise"}),"<",(0,i.jsx)(n.code,{children:"void"}),">"]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h2,{id:"openinide",children:"openInIDE()"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-ts",children:"function openInIDE(targetDir: any): void;\n"})}),"\n",(0,i.jsxs)(n.p,{children:["Defined in: ",(0,i.jsx)(n.a,{href:"https://github.com/vtempest/git0/blob/f5565c601a25c627e02f22dfda1f72982fbcaeae/git0.js#L354",children:"git0.js:354"})]}),"\n",(0,i.jsx)(n.h3,{id:"parameters-2",children:"Parameters"}),"\n",(0,i.jsxs)("table",{children:[(0,i.jsx)("thead",{children:(0,i.jsxs)("tr",{children:[(0,i.jsx)("th",{children:"Parameter"}),(0,i.jsx)("th",{children:"Type"})]})}),(0,i.jsx)("tbody",{children:(0,i.jsxs)("tr",{children:[(0,i.jsx)("td",{children:(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"targetDir"})})}),(0,i.jsx)("td",{children:(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"any"})})})]})})]}),"\n",(0,i.jsx)(n.h3,{id:"returns-2",children:"Returns"}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"void"})}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h2,{id:"searchrepositories",children:"searchRepositories()"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-ts",children:"function searchRepositories(query: any): Promise<any>;\n"})}),"\n",(0,i.jsxs)(n.p,{children:["Defined in: ",(0,i.jsx)(n.a,{href:"https://github.com/vtempest/git0/blob/f5565c601a25c627e02f22dfda1f72982fbcaeae/git0.js#L467",children:"git0.js:467"})]}),"\n",(0,i.jsx)(n.h3,{id:"parameters-3",children:"Parameters"}),"\n",(0,i.jsxs)("table",{children:[(0,i.jsx)("thead",{children:(0,i.jsxs)("tr",{children:[(0,i.jsx)("th",{children:"Parameter"}),(0,i.jsx)("th",{children:"Type"})]})}),(0,i.jsx)("tbody",{children:(0,i.jsxs)("tr",{children:[(0,i.jsx)("td",{children:(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"query"})})}),(0,i.jsx)("td",{children:(0,i.jsx)(n.p,{children:(0,i.jsx)(n.code,{children:"any"})})})]})})]}),"\n",(0,i.jsx)(n.h3,{id:"returns-3",children:"Returns"}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"Promise"}),"<",(0,i.jsx)(n.code,{children:"any"}),">"]})]})}function o(e={}){const{wrapper:n}={...(0,d.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}},8453:(e,n,s)=>{s.d(n,{R:()=>t,x:()=>c});var r=s(6540);const i={},d=r.createContext(i);function t(e){const n=r.useContext(d);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:t(e.components),r.createElement(d.Provider,{value:n},e.children)}}}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunkcreate_apidocs=self.webpackChunkcreate_apidocs||[]).push([[893],{4035:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>d,contentTitle:()=>l,default:()=>h,frontMatter:()=>o,metadata:()=>n,toc:()=>c});const n=JSON.parse('{"id":"functions/index","title":"index","description":"<img src=\\"https://img.shields.io/discord/1110227955554209923.svg?label=Chat&logo=Discord&colorB=7289da&style=flat\\"","source":"@site/src/functions/index.md","sourceDirName":"functions","slug":"/functions/","permalink":"/functions/","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{},"sidebar":"default","previous":{"title":"globals","permalink":"/functions/globals"}}');var i=t(4848),r=t(8453);const o={},l="Git0: Download Git Repo on Step Zero",d={},c=[{value:"\ud83d\ude80 Installation",id:"-installation",level:2},{value:"\u2728 Features",id:"-features",level:2},{value:"\ud83c\udfaf Usage",id:"-usage",level:2},{value:"Supported Project Types",id:"supported-project-types",level:3},{value:"Supported IDEs",id:"supported-ides",level:3},{value:"\ud83d\udd27 Configuration",id:"-configuration",level:2},{value:"What Happens After Download",id:"what-happens-after-download",level:3},{value:"GitHub Token (Optional)",id:"github-token-optional",level:3}];function a(e){const s={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,r.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("p",{align:"center",children:(0,i.jsx)("img",{src:"https://i.imgur.com/poOtI3N.png"})}),"\n",(0,i.jsxs)("p",{align:"center",children:[(0,i.jsx)("a",{href:"https://discord.gg/SJdBqBz3tV",children:(0,i.jsx)("img",{src:"https://img.shields.io/discord/1110227955554209923.svg?label=Chat&logo=Discord&colorB=7289da&style=flat",alt:"Join Discord"})}),(0,i.jsx)("a",{href:"https://github.com/vtempest/git0/discussions",children:(0,i.jsx)("img",{alt:"GitHub Stars",src:"https://img.shields.io/github/stars/vtempest/git0"})}),(0,i.jsx)("a",{href:"https://github.com/vtempest/git0/discussions",children:(0,i.jsx)("img",{alt:"GitHub Discussions",src:"https://img.shields.io/github/discussions/vtempest/git0"})}),(0,i.jsx)("a",{href:"https://github.com/vtempest/git0/pulse",alt:"Activity",children:(0,i.jsx)("img",{src:"https://img.shields.io/github/commit-activity/m/vtempest/git0"})}),(0,i.jsx)("img",{src:"https://img.shields.io/github/last-commit/vtempest/git0.svg?style=flat-square",alt:"GitHub last commit"})]}),"\n",(0,i.jsxs)("p",{align:"center",children:[(0,i.jsx)("img",{src:"https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square",alt:"PRs Welcome"}),(0,i.jsx)("a",{href:"https://codespaces.new/vtempest/git0",children:(0,i.jsx)("img",{src:"https://github.com/codespaces/badge.svg",width:"150",height:"20"})})]}),"\n",(0,i.jsx)(s.header,{children:(0,i.jsx)(s.h1,{id:"git0-download-git-repo-on-step-zero",children:"Git0: Download Git Repo on Step Zero"})}),"\n",(0,i.jsx)(s.p,{children:"CLI tool to search GitHub repositories, download source & releases for your system, and instantly set up, then install dependencies and open code editor."}),"\n",(0,i.jsx)(s.h2,{id:"-installation",children:"\ud83d\ude80 Installation"}),"\n",(0,i.jsx)(s.pre,{children:(0,i.jsx)(s.code,{className:"language-bash",children:"npm install -g git0\n"})}),"\n",(0,i.jsx)(s.pre,{children:(0,i.jsx)(s.code,{className:"language-bash",children:"bun install -g git0\n"})}),"\n",(0,i.jsxs)(s.p,{children:[(0,i.jsx)(s.img,{src:"https://i.imgur.com/Io3ukRC.gif",alt:"livepreview"}),"\n",(0,i.jsx)(s.img,{src:"https://i.imgur.com/K22NiBq.png",alt:"preview"})]}),"\n",(0,i.jsx)(s.h2,{id:"-features",children:"\u2728 Features"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Search GitHub repositories"})," by name with fuzzy matching"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Download repositories"})," directly from GitHub URLs or owner/repo shortcuts. Skip the manual git clone, cd, install dance"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Get Releases"})," instantly download latest release for your system or all systems"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Automatic dependency detection"})," and installation for multiple project types"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Smart IDE integration"})," - automatically opens projects in your preferred editor"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Cross-platform support"})," - works on Windows, macOS, and Linux"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Conflict resolution"})," - handles directory naming conflicts automatically"]}),"\n"]}),"\n",(0,i.jsx)(s.h2,{id:"-usage",children:"\ud83c\udfaf Usage"}),"\n",(0,i.jsx)(s.pre,{children:(0,i.jsx)(s.code,{className:"language-bash",children:"# Search for repositories by name\ngg react starter\n\n# Direct download from GitHub URL\n## gg and git0 both work\ngg https://github.com/facebook/react\n\n# Download using owner/repo shorthand\ngit0 react starter\n\n## Use git0 without installing, (only node needed)\n# (copy into your project's readme for quick setup)\nnpx git0 facebook/react\n"})}),"\n",(0,i.jsx)(s.h3,{id:"supported-project-types",children:"Supported Project Types"}),"\n",(0,i.jsx)(s.p,{children:"git0 automatically detects and sets up the following project types:"}),"\n",(0,i.jsxs)(s.table,{children:[(0,i.jsx)(s.thead,{children:(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.th,{children:"Project Type"}),(0,i.jsx)(s.th,{children:"Detection"}),(0,i.jsx)(s.th,{children:"Installation"})]})}),(0,i.jsxs)(s.tbody,{children:[(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{children:(0,i.jsx)(s.strong,{children:"Node.js"})}),(0,i.jsx)(s.td,{children:(0,i.jsx)(s.code,{children:"package.json"})}),(0,i.jsxs)(s.td,{children:[(0,i.jsx)(s.code,{children:"bun install"})," (fallback to ",(0,i.jsx)(s.code,{children:"npm install"}),")"]})]}),(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{children:(0,i.jsx)(s.strong,{children:"Docker"})}),(0,i.jsxs)(s.td,{children:[(0,i.jsx)(s.code,{children:"Dockerfile"}),", ",(0,i.jsx)(s.code,{children:"docker-compose.yml"})]}),(0,i.jsxs)(s.td,{children:[(0,i.jsx)(s.code,{children:"docker-compose up -d"})," or ",(0,i.jsx)(s.code,{children:"docker build"})]})]}),(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{children:(0,i.jsx)(s.strong,{children:"Python"})}),(0,i.jsxs)(s.td,{children:[(0,i.jsx)(s.code,{children:"requirements.txt"}),", ",(0,i.jsx)(s.code,{children:"setup.py"})]}),(0,i.jsx)(s.td,{children:"Virtual environment + pip install"})]}),(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{children:(0,i.jsx)(s.strong,{children:"Rust"})}),(0,i.jsx)(s.td,{children:(0,i.jsx)(s.code,{children:"Cargo.toml"})}),(0,i.jsx)(s.td,{children:(0,i.jsx)(s.code,{children:"cargo build"})})]}),(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{children:(0,i.jsx)(s.strong,{children:"Go"})}),(0,i.jsx)(s.td,{children:(0,i.jsx)(s.code,{children:"go.mod"})}),(0,i.jsx)(s.td,{children:(0,i.jsx)(s.code,{children:"go mod tidy"})})]})]})]}),"\n",(0,i.jsx)(s.h3,{id:"supported-ides",children:"Supported IDEs"}),"\n",(0,i.jsx)(s.p,{children:"git0 automatically detects and opens projects in your preferred IDE:"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Cursor"})," (",(0,i.jsx)(s.code,{children:"cursor"}),")"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Windsurf"})," (",(0,i.jsx)(s.code,{children:"windsurf"}),")"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"VS Code"})," (",(0,i.jsx)(s.code,{children:"code"}),")"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Code Server"})," (",(0,i.jsx)(s.code,{children:"code-server"}),")"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Neovim"})," (",(0,i.jsx)(s.code,{children:"nvim"}),")"]}),"\n"]}),"\n",(0,i.jsx)(s.h2,{id:"-configuration",children:"\ud83d\udd27 Configuration"}),"\n",(0,i.jsx)(s.h3,{id:"what-happens-after-download",children:"What Happens After Download"}),"\n",(0,i.jsxs)(s.ol,{children:["\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Repository is downloaded"})," to your current directory"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Project type is detected"})," automatically"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Dependencies are installed"})," based on project type"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"IDE is launched"})," automatically (if available)"]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Development server starts"})," (for Node.js projects)"]}),"\n"]}),"\n",(0,i.jsxs)(s.p,{children:["If a directory with the same name exists, git0 automatically appends a number (e.g., ",(0,i.jsx)(s.code,{children:"react-2"}),", ",(0,i.jsx)(s.code,{children:"react-3"}),")."]}),"\n",(0,i.jsx)(s.h3,{id:"github-token-optional",children:"GitHub Token (Optional)"}),"\n",(0,i.jsxs)(s.p,{children:["For higher API rate limits, set ",(0,i.jsx)(s.a,{href:"https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-fine-grained-personal-access-token",children:"your GitHub token"}),":"]}),"\n",(0,i.jsx)(s.pre,{children:(0,i.jsx)(s.code,{className:"language-bash",children:"export GITHUB_TOKEN=your_github_token_here\n"})}),"\n",(0,i.jsx)(s.p,{children:"Without a token, you're limited to 60 requests per hour. With a token, you get 5,000 requests per hour."})]})}function h(e={}){const{wrapper:s}={...(0,r.R)(),...e.components};return s?(0,i.jsx)(s,{...e,children:(0,i.jsx)(a,{...e})}):a(e)}},8453:(e,s,t)=>{t.d(s,{R:()=>o,x:()=>l});var n=t(6540);const i={},r=n.createContext(i);function o(e){const s=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function l(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),n.createElement(r.Provider,{value:s},e.children)}}}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunkcreate_apidocs=self.webpackChunkcreate_apidocs||[]).push([[684],{1970:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>d,contentTitle:()=>l,default:()=>h,frontMatter:()=>o,metadata:()=>i,toc:()=>c});const i=JSON.parse('{"id":"index","title":"Overview","description":"<img src=\\"https://img.shields.io/discord/1110227955554209923.svg?label=Chat&logo=Discord&colorB=7289da&style=flat\\"","source":"@site/src/index.md","sourceDirName":".","slug":"/","permalink":"/","draft":false,"unlisted":false,"tags":[],"version":"current","sidebarPosition":1,"frontMatter":{"id":"index","title":"Overview","sidebar_position":1,"displayed_sidebar":"default"},"sidebar":"default"}');var n=t(4848),r=t(8453);const o={id:"index",title:"Overview",sidebar_position:1,displayed_sidebar:"default"},l="Git0: Download Git Repo on Step Zero",d={},c=[{value:"\ud83d\ude80 Installation",id:"-installation",level:2},{value:"\u2728 Features",id:"-features",level:2},{value:"\ud83c\udfaf Usage",id:"-usage",level:2},{value:"Supported Project Types",id:"supported-project-types",level:3},{value:"Supported IDEs",id:"supported-ides",level:3},{value:"\ud83d\udd27 Configuration",id:"-configuration",level:2},{value:"What Happens After Download",id:"what-happens-after-download",level:3},{value:"GitHub Token (Optional)",id:"github-token-optional",level:3}];function a(e){const s={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,r.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("p",{align:"center",children:(0,n.jsx)("img",{src:"https://i.imgur.com/poOtI3N.png"})}),"\n",(0,n.jsxs)("p",{align:"center",children:[(0,n.jsx)("a",{href:"https://discord.gg/SJdBqBz3tV",children:(0,n.jsx)("img",{src:"https://img.shields.io/discord/1110227955554209923.svg?label=Chat&logo=Discord&colorB=7289da&style=flat",alt:"Join Discord"})}),(0,n.jsx)("a",{href:"https://github.com/vtempest/git0/discussions",children:(0,n.jsx)("img",{alt:"GitHub Stars",src:"https://img.shields.io/github/stars/vtempest/git0"})}),(0,n.jsx)("a",{href:"https://github.com/vtempest/git0/discussions",children:(0,n.jsx)("img",{alt:"GitHub Discussions",src:"https://img.shields.io/github/discussions/vtempest/git0"})}),(0,n.jsx)("a",{href:"https://github.com/vtempest/git0/pulse",alt:"Activity",children:(0,n.jsx)("img",{src:"https://img.shields.io/github/commit-activity/m/vtempest/git0"})}),(0,n.jsx)("img",{src:"https://img.shields.io/github/last-commit/vtempest/git0.svg?style=flat-square",alt:"GitHub last commit"})]}),"\n",(0,n.jsxs)("p",{align:"center",children:[(0,n.jsx)("img",{src:"https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square",alt:"PRs Welcome"}),(0,n.jsx)("a",{href:"https://codespaces.new/vtempest/git0",children:(0,n.jsx)("img",{src:"https://github.com/codespaces/badge.svg",width:"150",height:"20"})})]}),"\n",(0,n.jsx)(s.header,{children:(0,n.jsx)(s.h1,{id:"git0-download-git-repo-on-step-zero",children:"Git0: Download Git Repo on Step Zero"})}),"\n",(0,n.jsx)(s.p,{children:"CLI tool to search GitHub repositories, download source & releases for your system, and instantly set up, then install dependencies and open code editor."}),"\n",(0,n.jsx)(s.h2,{id:"-installation",children:"\ud83d\ude80 Installation"}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-bash",children:"npm install -g git0\n"})}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-bash",children:"bun install -g git0\n"})}),"\n",(0,n.jsxs)(s.p,{children:[(0,n.jsx)(s.img,{src:"https://i.imgur.com/Io3ukRC.gif",alt:"livepreview"}),"\n",(0,n.jsx)(s.img,{src:"https://i.imgur.com/K22NiBq.png",alt:"preview"})]}),"\n",(0,n.jsx)(s.h2,{id:"-features",children:"\u2728 Features"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.strong,{children:"Search GitHub repositories"})," by name with fuzzy matching"]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.strong,{children:"Download repositories"})," directly from GitHub URLs or owner/repo shortcuts. Skip the manual git clone, cd, install dance"]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.strong,{children:"Get Releases"})," instantly download latest release for your system or all systems"]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.strong,{children:"Automatic dependency detection"})," and installation for multiple project types"]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.strong,{children:"Smart IDE integration"})," - automatically opens projects in your preferred editor"]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.strong,{children:"Cross-platform support"})," - works on Windows, macOS, and Linux"]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.strong,{children:"Conflict resolution"})," - handles directory naming conflicts automatically"]}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"-usage",children:"\ud83c\udfaf Usage"}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-bash",children:"# Search for repositories by name\ngg react starter\n\n# Direct download from GitHub URL\n## gg and git0 both work\ngg https://github.com/facebook/react\n\n# Download using owner/repo shorthand\ngit0 react starter\n\n## Use git0 without installing, (only node needed)\n# (copy into your project's readme for quick setup)\nnpx git0 facebook/react\n"})}),"\n",(0,n.jsx)(s.h3,{id:"supported-project-types",children:"Supported Project Types"}),"\n",(0,n.jsx)(s.p,{children:"git0 automatically detects and sets up the following project types:"}),"\n",(0,n.jsxs)(s.table,{children:[(0,n.jsx)(s.thead,{children:(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.th,{children:"Project Type"}),(0,n.jsx)(s.th,{children:"Detection"}),(0,n.jsx)(s.th,{children:"Installation"})]})}),(0,n.jsxs)(s.tbody,{children:[(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.strong,{children:"Node.js"})}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"package.json"})}),(0,n.jsxs)(s.td,{children:[(0,n.jsx)(s.code,{children:"bun install"})," (fallback to ",(0,n.jsx)(s.code,{children:"npm install"}),")"]})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.strong,{children:"Docker"})}),(0,n.jsxs)(s.td,{children:[(0,n.jsx)(s.code,{children:"Dockerfile"}),", ",(0,n.jsx)(s.code,{children:"docker-compose.yml"})]}),(0,n.jsxs)(s.td,{children:[(0,n.jsx)(s.code,{children:"docker-compose up -d"})," or ",(0,n.jsx)(s.code,{children:"docker build"})]})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.strong,{children:"Python"})}),(0,n.jsxs)(s.td,{children:[(0,n.jsx)(s.code,{children:"requirements.txt"}),", ",(0,n.jsx)(s.code,{children:"setup.py"})]}),(0,n.jsx)(s.td,{children:"Virtual environment + pip install"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.strong,{children:"Rust"})}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"Cargo.toml"})}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"cargo build"})})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:(0,n.jsx)(s.strong,{children:"Go"})}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"go.mod"})}),(0,n.jsx)(s.td,{children:(0,n.jsx)(s.code,{children:"go mod tidy"})})]})]})]}),"\n",(0,n.jsx)(s.h3,{id:"supported-ides",children:"Supported IDEs"}),"\n",(0,n.jsx)(s.p,{children:"git0 automatically detects and opens projects in your preferred IDE:"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.strong,{children:"Cursor"})," (",(0,n.jsx)(s.code,{children:"cursor"}),")"]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.strong,{children:"Windsurf"})," (",(0,n.jsx)(s.code,{children:"windsurf"}),")"]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.strong,{children:"VS Code"})," (",(0,n.jsx)(s.code,{children:"code"}),")"]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.strong,{children:"Code Server"})," (",(0,n.jsx)(s.code,{children:"code-server"}),")"]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.strong,{children:"Neovim"})," (",(0,n.jsx)(s.code,{children:"nvim"}),")"]}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"-configuration",children:"\ud83d\udd27 Configuration"}),"\n",(0,n.jsx)(s.h3,{id:"what-happens-after-download",children:"What Happens After Download"}),"\n",(0,n.jsxs)(s.ol,{children:["\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.strong,{children:"Repository is downloaded"})," to your current directory"]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.strong,{children:"Project type is detected"})," automatically"]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.strong,{children:"Dependencies are installed"})," based on project type"]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.strong,{children:"IDE is launched"})," automatically (if available)"]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.strong,{children:"Development server starts"})," (for Node.js projects)"]}),"\n"]}),"\n",(0,n.jsxs)(s.p,{children:["If a directory with the same name exists, git0 automatically appends a number (e.g., ",(0,n.jsx)(s.code,{children:"react-2"}),", ",(0,n.jsx)(s.code,{children:"react-3"}),")."]}),"\n",(0,n.jsx)(s.h3,{id:"github-token-optional",children:"GitHub Token (Optional)"}),"\n",(0,n.jsxs)(s.p,{children:["For higher API rate limits, set ",(0,n.jsx)(s.a,{href:"https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-fine-grained-personal-access-token",children:"your GitHub token"}),":"]}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-bash",children:"export GITHUB_TOKEN=your_github_token_here\n"})}),"\n",(0,n.jsx)(s.p,{children:"Without a token, you're limited to 60 requests per hour. With a token, you get 5,000 requests per hour."})]})}function h(e={}){const{wrapper:s}={...(0,r.R)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(a,{...e})}):a(e)}},8453:(e,s,t)=>{t.d(s,{R:()=>o,x:()=>l});var i=t(6540);const n={},r=i.createContext(n);function o(e){const s=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function l(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:o(e.components),i.createElement(r.Provider,{value:s},e.children)}}}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(()=>{"use strict";var e,t,r,a,o,n={},f={};function i(e){var t=f[e];if(void 0!==t)return t.exports;var r=f[e]={id:e,loaded:!1,exports:{}};return n[e].call(r.exports,r,r.exports,i),r.loaded=!0,r.exports}i.m=n,i.c=f,e=[],i.O=(t,r,a,o)=>{if(!r){var n=1/0;for(u=0;u<e.length;u++){for(var[r,a,o]=e[u],f=!0,d=0;d<r.length;d++)(!1&o||n>=o)&&Object.keys(i.O).every((e=>i.O[e](r[d])))?r.splice(d--,1):(f=!1,o<n&&(n=o));if(f){e.splice(u--,1);var c=a();void 0!==c&&(t=c)}}return t}o=o||0;for(var u=e.length;u>0&&e[u-1][2]>o;u--)e[u]=e[u-1];e[u]=[r,a,o]},i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},r=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,i.t=function(e,a){if(1&a&&(e=this(e)),8&a)return e;if("object"==typeof e&&e){if(4&a&&e.__esModule)return e;if(16&a&&"function"==typeof e.then)return e}var o=Object.create(null);i.r(o);var n={};t=t||[null,r({}),r([]),r(r)];for(var f=2&a&&e;"object"==typeof f&&!~t.indexOf(f);f=r(f))Object.getOwnPropertyNames(f).forEach((t=>n[t]=()=>e[t]));return n.default=()=>e,i.d(o,n),o},i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce(((t,r)=>(i.f[r](e,t),t)),[])),i.u=e=>"assets/js/"+({26:"4a829dc8",48:"a94703ab",98:"a7bd4aaa",235:"a7456010",401:"17896441",567:"22dd74f7",583:"1df93b7f",647:"5e95c892",682:"ac46717f",684:"d140250a",742:"aba21aa0",893:"c3a618e1"}[e]||e)+"."+{26:"728a4445",48:"6d39a596",98:"87229397",235:"3054873b",237:"daf7efdf",278:"1628756c",401:"79ceefeb",567:"5e857962",577:"78325c02",583:"dfdf0ef3",591:"2156b33d",647:"bd6c1093",682:"32345167",684:"62af53aa",742:"dfebd789",893:"50a89e4d"}[e]+".js",i.miniCssF=e=>{},i.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),a={},o="create-apidocs:",i.l=(e,t,r,n)=>{if(a[e])a[e].push(t);else{var f,d;if(void 0!==r)for(var c=document.getElementsByTagName("script"),u=0;u<c.length;u++){var l=c[u];if(l.getAttribute("src")==e||l.getAttribute("data-webpack")==o+r){f=l;break}}f||(d=!0,(f=document.createElement("script")).charset="utf-8",f.timeout=120,i.nc&&f.setAttribute("nonce",i.nc),f.setAttribute("data-webpack",o+r),f.src=e),a[e]=[t];var s=(t,r)=>{f.onerror=f.onload=null,clearTimeout(b);var o=a[e];if(delete a[e],f.parentNode&&f.parentNode.removeChild(f),o&&o.forEach((e=>e(r))),t)return t(r)},b=setTimeout(s.bind(null,void 0,{type:"timeout",target:f}),12e4);f.onerror=s.bind(null,f.onerror),f.onload=s.bind(null,f.onload),d&&document.head.appendChild(f)}},i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.p="/",i.gca=function(e){return e={17896441:"401","4a829dc8":"26",a94703ab:"48",a7bd4aaa:"98",a7456010:"235","22dd74f7":"567","1df93b7f":"583","5e95c892":"647",ac46717f:"682",d140250a:"684",aba21aa0:"742",c3a618e1:"893"}[e]||e,i.p+i.u(e)},(()=>{var e={354:0,869:0};i.f.j=(t,r)=>{var a=i.o(e,t)?e[t]:void 0;if(0!==a)if(a)r.push(a[2]);else if(/^(354|869)$/.test(t))e[t]=0;else{var o=new Promise(((r,o)=>a=e[t]=[r,o]));r.push(a[2]=o);var n=i.p+i.u(t),f=new Error;i.l(n,(r=>{if(i.o(e,t)&&(0!==(a=e[t])&&(e[t]=void 0),a)){var o=r&&("load"===r.type?"missing":r.type),n=r&&r.target&&r.target.src;f.message="Loading chunk "+t+" failed.\n("+o+": "+n+")",f.name="ChunkLoadError",f.type=o,f.request=n,a[1](f)}}),"chunk-"+t,t)}},i.O.j=t=>0===e[t];var t=(t,r)=>{var a,o,[n,f,d]=r,c=0;if(n.some((t=>0!==e[t]))){for(a in f)i.o(f,a)&&(i.m[a]=f[a]);if(d)var u=d(i)}for(t&&t(r);c<n.length;c++)o=n[c],i.o(e,o)&&e[o]&&e[o][0](),e[o]=0;return i.O(u)},r=self.webpackChunkcreate_apidocs=self.webpackChunkcreate_apidocs||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})()})();
|