PGYER / codefever

CodeFever 是完全免费开源的 Git 代码托管服务,支持一行命令安装到自己服务器!CodeFever Community Edition (A Self-hosted Git Services)!
https://codefever.cn
MIT License
2.69k stars 281 forks source link

BUG:保护分支规则删除失败 #173

Closed IM-Tse closed 1 year ago

IM-Tse commented 1 year ago

BUG 描述

创建了保护分支,在进行删除的时候会提示删除失败

错误日志

根据日志显示,是删除保护分支规则的时候,字段 pbr_deleted 值不对,秒的值变成了 th

php 日志

ERROR - 2023-06-07 09:04:34 --> Query error: Incorrect datetime value: '2023-06-07 09:04:th' for column `codefever_community`.`cc_proteced_branch_rules`.`pbr_deleted` at row 1
ERROR - 2023-06-07 09:04:41 --> Query error: Incorrect datetime value: '2023-06-07 09:04:th' for column `codefever_community`.`cc_proteced_branch_rules`.`pbr_deleted` at row 1
ERROR - 2023-06-07 09:05:10 --> Query error: Incorrect datetime value: '2023-06-07 09:05:th' for column `codefever_community`.`cc_proteced_branch_rules`.`pbr_deleted` at row 1
ERROR - 2023-06-07 09:06:44 --> Query error: Incorrect datetime value: '2023-06-07 09:06:th' for column `codefever_community`.`cc_proteced_branch_rules`.`pbr_deleted` at row 1
ERROR - 2023-06-07 09:06:56 --> Query error: Incorrect datetime value: '2023-06-07 09:06:th' for column `codefever_community`.`cc_proteced_branch_rules`.`pbr_deleted` at row 1

sql 日志

[2023-06-07 09:12:41] UPDATE `cc_proteced_branch_rules` SET `pbr_status` = 4, `pbr_deleted` = '2023-06-07 09:12:th' WHERE `pbr_key` =  '8b8a31529a2b7e8c10a687b2820ff6b1'
        1) /data/www/codefever-community/www/index.php(256): require_once('/data/www/codef...')
        2) /data/www/codefever-community/system/core/CodeIgniter.php(325): Base->_remap()
        3) /data/www/codefever-community/application/controllers/api/base.php(31): Repository->deleteProtectedBranchRule_post()
        4) /data/www/codefever-community/application/controllers/api/repository.php(820): Repository_model->updateProtectedBranchRule()
        5) /data/www/codefever-community/application/models/repository_model.php(886): CI_DB_active_record->update()
        6) /data/www/codefever-community/system/database/DB_active_rec.php(1304): CI_DB_driver->query()
        7) /data/www/codefever-community/system/database/DB_driver.php(300): CI_DB_driver->simple_query()
        8) /data/www/codefever-community/system/database/DB_driver.php(454): CI_DB_mysqli_driver->_execute()
        9) /data/www/codefever-community/system/database/drivers/mysqli/mysqli_driver.php(179): CI_DB_mysqli_driver->_logSQL()

BUG 原因

文件 application/controllers/api/repository.php 第 817 行设置 pbr_deleted format的时候,秒写成了大写的 S,正确的应该是小写的 s 。

错误代码

'pbr_deleted' => date('Y-m-d H:i:S')

正确代码

'pbr_deleted' => date('Y-m-d H:i:s')

Docker 安装手动解决方案

  1. 进入容器 $ docker container exec -it codefever /bin/bash
  2. 编辑文件 vi /data/www/codefever-community/application/controllers/api/repository.php
  3. 定位到第 817 行,将 S 修改为 s 'pbr_deleted' => date('Y-m-d H:i:s')
  4. 重启服务(不确定对不对,反正有效,我从更新的输出里面偷来的:smile:) systemctl daemon-reload
cubicwork commented 1 year ago

@IM-Tse hi 非常感谢反馈,我们随后会出一个 fix。

cubicwork commented 1 year ago

@IM-Tse bug 我们已经修复并且推送到 master 分支上了,再次感谢您提供的信息。