init
This commit is contained in:
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
node_modules
|
||||||
|
|
||||||
|
storages
|
||||||
13
README.md
Normal file
13
README.md
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
# 自有gitea仓库
|
||||||
|
|
||||||
|
需要把cnb存放的自动化的更新同步到自己的gitea仓库中,方便自己使用和修改。
|
||||||
|
|
||||||
|
## 同步方式
|
||||||
|
|
||||||
|
clone下来后,直接push到自己的gitea仓库中即可。
|
||||||
|
|
||||||
|
### 整个步骤
|
||||||
|
|
||||||
|
1. 获取当天的有更新的仓库
|
||||||
|
2. clone下来
|
||||||
|
3. push到自己的gitea仓库中
|
||||||
21
package.json
Normal file
21
package.json
Normal 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
27
src/app.ts
Normal 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
4
src/cli.ts
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
import { parse } from '@kevisual/router/commander'
|
||||||
|
import { app } from './index.ts'
|
||||||
|
|
||||||
|
parse({ app })
|
||||||
2
src/index.ts
Normal file
2
src/index.ts
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
export * from './app.ts';
|
||||||
|
import './routes/cnb.ts';
|
||||||
18
src/routes/cnb.ts
Normal file
18
src/routes/cnb.ts
Normal 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)
|
||||||
Reference in New Issue
Block a user