Compare commits
1 Commits
| Author | SHA1 | Date |
|---|---|---|
|
|
9c79afcd75 |
|
|
@ -2,13 +2,13 @@ FROM centos:7
|
|||
|
||||
RUN yum update -y && \
|
||||
yum install -y wget gcc make openssl-devel bzip2-devel libffi-devel zlib-devel
|
||||
RUN wget -P /data/ob-tool https://www.python.org/ftp/python/3.9.6/Python-3.9.6.tgz
|
||||
RUN wget -P /data/ob-tool https://mirrors.huaweicloud.com/python/3.9.6/Python-3.9.6.tgz
|
||||
RUN cd /data/ob-tool && tar xzf Python-3.9.6.tgz
|
||||
RUN cd /data/ob-tool/Python-3.9.6 && ./configure --enable-optimizations && make altinstall
|
||||
|
||||
ADD ./ /data/ob-robot/
|
||||
RUN cd /data/ob-robot/ && \
|
||||
pip3.9 install -r /data/ob-robot/requirement.txt
|
||||
pip3.9 install -r /data/ob-robot/requirement.txt -i http://pypi.tuna.tsinghua.edu.cn/simple/ --trusted-host pypi.tuna.tsinghua.edu.cn
|
||||
|
||||
RUN yum install -y git openssh-server
|
||||
|
||||
|
|
|
|||
2
main.py
2
main.py
|
|
@ -25,7 +25,7 @@ app.include_router(LOG)
|
|||
app.include_router(AUTH)
|
||||
app.include_router(SYNC_CONFIG)
|
||||
|
||||
app.mount("/", StaticFiles(directory="web/dist"), name="static")
|
||||
# app.mount("/", StaticFiles(directory="web/dist"), name="static")
|
||||
|
||||
if __name__ == '__main__':
|
||||
# workers 参数仅在命令行使用uvicorn启动时有效 或使用环境变量 WEB_CONCURRENCY
|
||||
|
|
|
|||
|
|
@ -9,8 +9,7 @@ CREATE TABLE IF NOT EXISTS `sync_repo_mapping` (
|
|||
`sync_granularity` enum('all', 'one') NOT NULL COMMENT '同步粒度',
|
||||
`sync_direction` enum('to_outer', 'to_inter') NOT NULL COMMENT '首次同步方向',
|
||||
`created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '仓库绑定时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY (`repo_name`)
|
||||
PRIMARY KEY (`id`)
|
||||
) DEFAULT CHARACTER SET = utf8mb4 COMMENT = '同步仓库映射表';
|
||||
|
||||
--同步分支信息映射表
|
||||
|
|
@ -38,4 +37,4 @@ CREATE TABLE IF NOT EXISTS `repo_sync_log`(
|
|||
`created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`)
|
||||
) DEFAULT CHARACTER SET = utf8mb4 COMMENT = '同步日志';
|
||||
) DEFAULT CHARACTER SET = utf8mb4 COMMENT = '同步日志';
|
||||
|
|
|
|||
|
|
@ -38,11 +38,11 @@ class SyncDirection(Controller):
|
|||
dto: SyncRepoDTO = Body(..., description="绑定同步仓库信息")
|
||||
):
|
||||
api_log(LogType.INFO, f"用户 {user} 使用 POST 方法访问接口 {request.url.path} ", user)
|
||||
if not base.check_addr(dto.external_repo_address) or not base.check_addr(dto.internal_repo_address):
|
||||
return SYNCResponse(
|
||||
code_status=Status.REPO_ADDR_ILLEGAL.code,
|
||||
msg=Status.REPO_ADDR_ILLEGAL.msg
|
||||
)
|
||||
#if not base.check_addr(dto.external_repo_address) or not base.check_addr(dto.internal_repo_address):
|
||||
# return SYNCResponse(
|
||||
# code_status=Status.REPO_ADDR_ILLEGAL.code,
|
||||
# msg=Status.REPO_ADDR_ILLEGAL.msg
|
||||
# )
|
||||
|
||||
if dto.sync_granularity not in [1, 2]:
|
||||
return SYNCResponse(code_status=Status.SYNC_GRAN_ILLEGAL.code, msg=Status.SYNC_GRAN_ILLEGAL.msg)
|
||||
|
|
|
|||
|
|
@ -90,7 +90,7 @@ def inter_to_outer(repo, branch, log_name: str, user: str):
|
|||
# 切换到inter_name分支,并将internal仓库的分支强制 checkout 到当前分支。
|
||||
shell(f"git checkout -B {inter_name} internal/{inter_name}", repo_dir, log_name, user)
|
||||
# 将本地仓库的inter_name分支推送到external仓库的outer_name分支上。
|
||||
shell(f"git push external {inter_name}:{outer_name}", repo_dir, log_name, user)
|
||||
shell(f"git push -f external {inter_name}:{outer_name}", repo_dir, log_name, user)
|
||||
# commit id
|
||||
# result = shell(f"git log HEAD~1..HEAD --oneline", repo_dir, log_name, user)
|
||||
# commit_id = result.stdout.split(" ")[0]
|
||||
|
|
@ -112,7 +112,7 @@ def outer_to_inter(repo, branch, log_name: str, user: str):
|
|||
# 切换到本地仓库的outer_name分支,并将origin仓库的outer_name分支强制 checkout 到当前分支。
|
||||
shell(f"git checkout -B {outer_name} external/{outer_name}", repo_dir, log_name, user)
|
||||
# 将本地仓库的outer_name分支推送到internal仓库的inter_name分支上。
|
||||
shell(f"git push internal {outer_name}:{inter_name}", repo_dir, log_name, user)
|
||||
shell(f"git push -f internal {outer_name}:{inter_name}", repo_dir, log_name, user)
|
||||
# commit id
|
||||
# result = shell(f"git log HEAD~1..HEAD --oneline", repo_dir, log_name, user)
|
||||
# commit_id = result.stdout.split(" ")[0]
|
||||
|
|
@ -123,7 +123,6 @@ def outer_to_inter(repo, branch, log_name: str, user: str):
|
|||
except Exception as e:
|
||||
raise
|
||||
|
||||
|
||||
async def sync_repo_task(repo, user):
|
||||
if repo.sync_granularity == SyncType.one:
|
||||
branches = await sync_branch_dao.sync_branch(repo_id=repo.id)
|
||||
|
|
|
|||
|
|
@ -112,14 +112,14 @@ class SyncService(Service):
|
|||
if repo is None:
|
||||
return SYNCException(Status.REPO_NOTFOUND)
|
||||
update_fields = {}
|
||||
if dto.internal_repo_address is not None:
|
||||
if not base.check_addr(dto.internal_repo_address):
|
||||
return SYNCException(Status.REPO_ADDR_ILLEGAL)
|
||||
update_fields['internal_repo_address'] = dto.internal_repo_address
|
||||
if dto.external_repo_address is not None:
|
||||
if not base.check_addr(dto.external_repo_address):
|
||||
return SYNCException(Status.REPO_ADDR_ILLEGAL)
|
||||
update_fields['external_repo_address'] = dto.external_repo_address
|
||||
#if dto.internal_repo_address is not None:
|
||||
#if not base.check_addr(dto.internal_repo_address):
|
||||
# return SYNCException(Status.REPO_ADDR_ILLEGAL)
|
||||
update_fields['internal_repo_address'] = dto.internal_repo_address
|
||||
#if dto.external_repo_address is not None:
|
||||
# if not base.check_addr(dto.external_repo_address):
|
||||
# return SYNCException(Status.REPO_ADDR_ILLEGAL)
|
||||
update_fields['external_repo_address'] = dto.external_repo_address
|
||||
if dto.inter_token is not None:
|
||||
update_fields['inter_token'] = dto.inter_token
|
||||
if dto.exter_token is not None:
|
||||
|
|
|
|||
Loading…
Reference in New Issue