diff --git a/backend/src/main/java/com/qqchen/deploy/backend/deploy/entity/RepositoryBranch.java b/backend/src/main/java/com/qqchen/deploy/backend/deploy/entity/RepositoryBranch.java index 78fa296d..3a4b4c96 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/deploy/entity/RepositoryBranch.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/deploy/entity/RepositoryBranch.java @@ -53,7 +53,10 @@ public class RepositoryBranch extends Entity { private String webUrl; @Column(name = "project_id", nullable = false) - private Long projectId; + private Long projectId; // 我们数据库的project表的ID + + @Column(name = "git_project_id", nullable = false) + private Long gitProjectId; // GitLab的真实project_id @Column(name = "external_system_id", nullable = false) private Long externalSystemId; diff --git a/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/impl/RepositoryBranchServiceImpl.java b/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/impl/RepositoryBranchServiceImpl.java index 966e1ca3..7cf138a7 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/impl/RepositoryBranchServiceImpl.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/deploy/service/impl/RepositoryBranchServiceImpl.java @@ -129,9 +129,10 @@ public class RepositoryBranchServiceImpl extends BaseServiceImpl future = CompletableFuture.runAsync(() -> { try { - log.info("Syncing branches for project: {} (ID: {})", project.getName(), project.getProjectId()); + log.info("Syncing branches for project: {} (ID: {}, GitLab ID: {})", + project.getName(), project.getId(), project.getProjectId()); - // 4.1 获取当前项目在GitLab上的所有分支 + // 4.1 获取当前项目在GitLab上的所有分支,使用GitLab的真实project_id List remoteBranches = gitServiceIntegration.branches(externalSystem, project.getProjectId()); log.info("Found {} remote branches for project: {}", remoteBranches.size(), project.getName()); @@ -167,7 +168,8 @@ public class RepositoryBranchServiceImpl extends BaseServiceImpl new BusinessException(ResponseCode.REPOSITORY_PROJECT_NOT_FOUND)); + // 更新基本信息 branch.setExternalSystemId(externalSystemId); - branch.setProjectId(projectId); + branch.setProjectId(projectId); // 设置我们数据库的project ID + branch.setGitProjectId(project.getProjectId()); // 设置GitLab的真实project ID branch.setName(remoteBranch.getName()); branch.setIsDefaultBranch(remoteBranch.getIsDefaultBranch()); branch.setCanPush(remoteBranch.getCanPush()); diff --git a/backend/src/main/resources/db/migration/V1.0.0__init_schema.sql b/backend/src/main/resources/db/migration/V1.0.0__init_schema.sql index e7e1305e..71f74f1f 100644 --- a/backend/src/main/resources/db/migration/V1.0.0__init_schema.sql +++ b/backend/src/main/resources/db/migration/V1.0.0__init_schema.sql @@ -339,30 +339,33 @@ CREATE TABLE deploy_repo_branch ( -- 基础字段 id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID', - create_by VARCHAR(100) NULL COMMENT '创建人', - create_time DATETIME(6) NULL COMMENT '创建时间', - update_by VARCHAR(100) NULL COMMENT '更新人', - update_time DATETIME(6) NULL COMMENT '更新时间', - version INT NOT NULL DEFAULT 1 COMMENT '版本号', - deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除:0-未删除,1-已删除', - -- 业务字段 name VARCHAR(100) NOT NULL COMMENT '分支名称', - project_id BIGINT NOT NULL COMMENT '所属项目ID', - external_system_id BIGINT NOT NULL COMMENT '外部系统ID', is_default_branch BIT DEFAULT 0 COMMENT '是否为默认分支:0-否,1-是', can_push BIT DEFAULT 1 COMMENT '是否可推送:0-否,1-是', developers_can_push BIT DEFAULT 1 COMMENT '开发者是否可推送:0-否,1-是', developers_can_merge BIT DEFAULT 1 COMMENT '开发者是否可合并:0-否,1-是', - commit_id VARCHAR(64) NULL COMMENT '最新提交ID', - commit_message TEXT NULL COMMENT '最新提交信息', + commit_id VARCHAR(64) NULL COMMENT '最新提交ID', + commit_message TEXT NULL COMMENT '最新提交信息', commit_author VARCHAR(100) NULL COMMENT '最新提交作者', - commit_date DATETIME(6) NULL COMMENT '最新提交时间', - last_update_time DATETIME(6) NULL COMMENT '分支最后更新时间', - last_commit_time DATETIME(6) NULL COMMENT '分支最后提交时间', - web_url VARCHAR(255) NULL COMMENT '网页URL' + commit_date DATETIME(6) NULL COMMENT '最新提交时间', + last_update_time DATETIME(6) NULL COMMENT '分支最后更新时间', + last_commit_time DATETIME(6) NULL COMMENT '分支最后提交时间', + web_url VARCHAR(255) NULL COMMENT '网页URL', + project_id BIGINT NOT NULL COMMENT '所属项目ID', + external_system_id BIGINT NOT NULL COMMENT '外部系统ID', + git_project_id BIGINT NOT NULL COMMENT 'GitLab的真实project_id', -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='代码仓库分支表'; + create_by VARCHAR(100) NULL COMMENT '创建人', + create_time DATETIME(6) NULL COMMENT '创建时间', + update_by VARCHAR(100) NULL COMMENT '更新人', + update_time DATETIME(6) NULL COMMENT '更新时间', + version INT NOT NULL DEFAULT 1 COMMENT '版本号', + deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除:0-未删除,1-已删除' + +) ENGINE = InnoDB + DEFAULT CHARSET = utf8mb4 + COLLATE = utf8mb4_unicode_ci COMMENT ='代码仓库分支表'; -- -------------------------------------------------------------------------------------- -- 工作流相关表