This commit is contained in:
xiongxiao
2026-03-18 00:49:20 +08:00
committed by cnb
commit 819cbcebac
8 changed files with 88 additions and 0 deletions

0
.cnb.yml Normal file
View File

3
.gitignore vendored Normal file
View File

@@ -0,0 +1,3 @@
node_modules
storages

13
README.md Normal file
View File

@@ -0,0 +1,13 @@
# 自有gitea仓库
需要把cnb存放的自动化的更新同步到自己的gitea仓库中方便自己使用和修改。
## 同步方式
clone下来后直接push到自己的gitea仓库中即可。
### 整个步骤
1. 获取当天的有更新的仓库
2. clone下来
3. push到自己的gitea仓库中

21
package.json Normal file
View File

@@ -0,0 +1,21 @@
{
"name": "to-my-gitea",
"version": "0.0.1",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "abearxiong <xiongxiao@xiongxiao.me> (https://www.xiongxiao.me)",
"license": "MIT",
"packageManager": "pnpm@10.32.1",
"type": "module",
"dependencies": {
"@kevisual/cnb": "^0.0.51",
"@kevisual/context": "^0.0.8",
"@kevisual/gitea": "^0.0.6",
"@kevisual/router": "^0.1.3",
"dayjs": "^1.11.20"
}
}

27
src/app.ts Normal file
View File

@@ -0,0 +1,27 @@
import { App } from "@kevisual/router";
import { useContextKey } from "@kevisual/context";
import { CNB } from "@kevisual/cnb";
import { Gitea } from '@kevisual/gitea';
import path from "node:path";
export const app = useContextKey("app", () => {
const app = new App({
});
return app;
});
export const cnb = useContextKey("cnb", () => {
const token = useContextKey("CNB_API_KEY") || useContextKey('CNB_TOKEN')
return new CNB({ token });
});
export const gitea = useContextKey('gitea', () => {
const GITEA_TOKEN = useContextKey("GITEA_TOKEN")
const GITEA_URL = useContextKey("GITEA_URL")
return new Gitea({
token: GITEA_TOKEN,
baseURL: GITEA_URL,
})
})
export const rootPath = path.join(process.cwd(), "storages");

4
src/cli.ts Normal file
View File

@@ -0,0 +1,4 @@
import { parse } from '@kevisual/router/commander'
import { app } from './index.ts'
parse({ app })

2
src/index.ts Normal file
View File

@@ -0,0 +1,2 @@
export * from './app.ts';
import './routes/cnb.ts';

18
src/routes/cnb.ts Normal file
View File

@@ -0,0 +1,18 @@
import { app, cnb } from '../app';
import dayjs from 'dayjs';
app.route({
path: 'cnb',
key: 'list-today',
description: '获取今日更新的仓库列表',
}).define(async (ctx) => {
const res = await cnb.repo.getRepoList({ page_size: 100 });
const today = dayjs().format('YYYY-MM-DD');
const list = res.data || [];
const todayList = list.filter(item => {
const updatedAt = dayjs(item.updated_at).format('YYYY-MM-DD');
return updatedAt === today;
});
ctx.body = {
list: todayList,
}
}).addTo(app)