首页 > 其他分享 >svnhook-在提交时,检查redmine问题当前状态是否已关闭

svnhook-在提交时,检查redmine问题当前状态是否已关闭

时间:2024-10-08 10:22:40浏览次数:7  
标签:REDMINE svnhook echo Redmine LINK 提交 redmine ISSUE 链接

为了防止svn仓库的乱提交,我们规定了提交时,提交日志必须输入需求单或者bug链接,而且我们需要去检测当前的链接是有效并且状态时处于非关闭的,主要操作是下面两个步骤

 

1:验证输入链接的有效性:使用 curl 检查链接是否可以访问。

2:获取问题状态:通过 Redmine API 获取问题的状态,并检查其是否为非关闭状态。

# 检查提交日志是否包含指定字母
if ! echo "$LOGMSG" | grep -q "$URL"; then
    echo "请带上需求单或者bug链接" >&2
    exit 1
fi

# 提取日志中的 Redmine 问题链接
REDMINE_LINK=$(echo "$LOGMSG" | grep -oP '(http://192\.168\.xx\.xx:3000/issues/\d+)')

# 检查链接是否有效
if [ -n "$REDMINE_LINK" ]; then
    # 使用 curl 检查链接是否可访问
    HTTP_STATUS=$(curl -s -o /dev/null -w "%{http_code}" "$REDMINE_LINK?key=YOUR_API_KEY")
    if [ "$HTTP_STATUS" -ne 200 ]; then
        echo "Redmine 问题链接不可访问: $REDMINE_LINK" >&2
        exit 1
    fi

    # 获取问题状态
    ISSUE_ID=$(echo "$REDMINE_LINK" | awk -F'/' '{print $NF}')
    ISSUE_STATUS=$(curl -s "http://192.168.xx.xx:3000/issues/$ISSUE_ID.json?key=YOUR_API_KEY" | jq -r '.issue.status.name')

    # 检查问题状态是否为非关闭状态
    if [[ "$ISSUE_STATUS" == "已关闭" || "$ISSUE_STATUS" == "Closed" ]]; then
        echo "Redmine 问题状态为关闭,无法提交。" >&2
        exit 1
    fi
else
    echo "未找到有效的 Redmine 问题链接" >&2
    exit 1
fi

 

标签:REDMINE,svnhook,echo,Redmine,LINK,提交,redmine,ISSUE,链接
From: https://www.cnblogs.com/a565810497/p/18451144

相关文章

  • 使用宝塔WebHook自动同步Gitlab提交的代码
    一、配置SSH创建SSH密钥打开终端。生成SSH密钥:使用以下命令生成一个新的SSH密钥对:ssh-keygen-trsa-b4096-C"[email protected]"-trsa 指定密钥类型为RSA。-b4096 指定密钥长度为4096位。-C"[email protected]" 用于添加注释(通常是......
  • [MySQL]为什么大厂选择读已提交
    为什么读已提交的并发性更好在数据库中,锁的时间和范围是影响并发性的重要因素。已提交读(ReadCommitted)隔离级别与可重复读(RepeatableRead)的主要区别就在于它们在读取数据时对锁的使用方式不同。让我们详细看看为什么已提交读的锁的时间和范围更小。1.已提交读(ReadCommitte......
  • 帝国CMS GBK编码使用AJAX提交数据中文乱码问题!
    在帝国CMS使用GBK编码的环境中,通过AJAX提交数据时可能会遇到中文乱码的问题。这是因为AJAX默认使用UTF-8编码,而帝国CMS使用的是GBK编码。解决这个问题的关键是在接收数据的PHP文件中对数据进行编码转换。解决方案在接收数据的PHP文件中进行编码转换:使用 iconv 函数将接收......
  • 帝国CMS表单提交跳转到指定页面
    以下是如何在表单中添加隐藏字段 ecmsfrom 的示例代码:<formaction="your_action_url.php"method="post"><!--其他表单字段--><!--添加隐藏字段ecmsfrom--><inputtype="hidden"name="ecmsfrom"value="跳转地址"......
  • PBOOTCMS后台出现“登入失败:表单提交校验失败,刷新后重试!”等情况怎么办?
    当你使用PbootCMS模板搭建的网站后台出现“登录失败:表单提交校验失败,请刷新后重试!”的问题时,可以按照以下步骤进行排查和解决:解决方案1.切换PHP版本有时PHP版本不兼容可能会导致此类问题。你可以尝试切换PHP版本来解决此问题。检查当前PHP版本:bash php-v......
  • pbootcms模板提交留言表单后,如何跳转到指定的网址?
    在PbootCMS中,如果你希望在用户提交留言表单后跳转到指定的网址,可以通过修改相关代码来实现这一功能。以下是一个详细的步骤说明和代码示例。步骤1:修改 helper.php 文件打开文件:打开文件 \core\function\helper.php。找到并修改代码:找到第161行左右的代码,通常这部......
  • git 代码提交规范 commitLink
    commitLink是一个git代码提交规范工具,能规范团队成员代码必须按照规范提交1、安装依赖:npminstall--save-dev@commitlint/config-conventional@commitlint/cli依赖安装完成之后,会生成一个commitLink.config.js配置文件 2、安装kusky (mpninstall.husky/com......
  • 可以解决 PbootCMS 后台出现的“登入失败:表单提交校验失败,请刷新后重试!”的问题
    步骤一:切换PHP版本检查当前PHP版本使用命令行或SSH登录服务器,运行以下命令检查PHP版本:sh php-v切换PHP版本cPanel控制面板:登录cPanel控制面板。进入“软件”部分,找到“MultiPHPManager”。选择一个兼容的PHP版本(如PHP7.4或PHP8.0)......
  • PBOOTCMS后台出现“登入失败:表单提交校验失败,刷新后重试!”等情况怎么办?
    当你使用PbootCMS搭建的网站后台出现“登入失败:表单提交校验失败,请刷新后重试!”的问题时,可以尝试以下几种解决方案:解决方案方法一:切换PHP版本检查当前PHP版本使用命令行或SSH登录服务器,运行以下命令检查PHP版本:sh php-v切换PHP版本根据你的服......
  • PbootCMS出现登录失败,表单提交校验失败等情况怎么办?
    在使用PbootCMS过程中,可能会遇到一些登录问题,例如表单提交校验失败、登录界面锁定以及数据库目录权限写入不足等问题。以下是对这些问题的详细解决方案。一、表单提交校验失败问题描述:登入失败,表单提交校验失败。解决方法:检查服务器环境确认服务器环境是否符合Pboot......