This commit is contained in:
2026-01-12 03:16:35 +08:00
parent c2dcc53018
commit 5310ff28ae
48 changed files with 1349 additions and 254 deletions

View File

@@ -1,13 +1,8 @@
import { CNBCore, CNBCoreOptions, RequestOptions, Result } from "../cnb-core.ts";
type RepoOptions = CNBCoreOptions<{
group?: string;
}>
export class Repo extends CNBCore {
group: string;
constructor(options: RepoOptions) {
constructor(options: CNBCoreOptions) {
super({ token: options.token, cookie: options.cookie });
this.group = options.group || '';
}
/**
* 创建代码仓库
@@ -15,8 +10,7 @@ export class Repo extends CNBCore {
* @param data
* @returns
*/
createRepo(data: CreateRepoData): Promise<any> {
const group = this.group || '';
createRepo(group: string, data: CreateRepoData): Promise<any> {
const url = `/${group}/-/repos`;
let postData: CreateRepoData = {
...data,
@@ -28,7 +22,6 @@ export class Repo extends CNBCore {
return this.post({ url, data: postData });
}
async createCommit(repo: string, data: CreateCommitData): Promise<any> {
const group = this.group || '';
const commitList = await this.getCommitList(repo, {
page: 1,
page_size: 1,
@@ -40,7 +33,7 @@ export class Repo extends CNBCore {
if (!data.parent_commit_sha && preCommitSha) {
data.parent_commit_sha = preCommitSha;
}
const url = `https://cnb.cool/${group}/${repo}/-/git/commits`;
const url = `https://cnb.cool/${repo}/-/git/commits`;
const postData: CreateCommitData = {
...data,
base_branch: data.base_branch || 'refs/heads/main',
@@ -56,8 +49,7 @@ export class Repo extends CNBCore {
return this.post({ url, data: postData, useCookie: true, });
}
createBlobs(repo: string, data: { content: string, encoding?: 'utf-8' | 'base64' }): Promise<any> {
const group = this.group || '';
const url = `/${group}/${repo}/-/git/blobs`;
const url = `/${repo}/-/git/blobs`;
const postData = {
content: data.content,
encoding: data.encoding || 'utf-8',
@@ -65,13 +57,11 @@ export class Repo extends CNBCore {
return this.post({ url, data: postData });
}
uploadFiles(repo: string, data: { ext?: any, name?: string, path?: string, size?: number }): Promise<any> {
const group = this.group || '';
const url = `/${group}/${repo}/-/upload/files`
const url = `/${repo}/-/upload/files`
return this.post({ url, data });
}
getCommitList(repo: string, params: { author?: string, commiter?: string, page?: number, page_size?: number, sha?: string, since?: string, until?: string }, opts?: RequestOptions): Promise<any> {
const group = this.group || '';
const url = `/${group}/${repo}/-/git/commits`;
const url = `/${repo}/-/git/commits`;
return this.get({ url, params, ...opts });
}
getRepoList(params: {