You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用GitLab Changelog API生成变更日志遇范围及钩子权限问题

问题:GitLab Changelog API生成变更日志遇错

场景说明

我正在编写脚本,通过GitLab Changelog API为主分支的提交记录生成变更日志。项目已处于进阶阶段,但我此前从未进行过此类操作。参照相关指南,我创建了流水线来启动脚本,调用GitLab API生成CHANGELOG.md文件。

流水线配置

stages:
  - tag

changelog:
  stage: tag
  image: curlimages/curl:7.79.1
  only:
    - main
  script:
    - '. gitlab-changelog.sh ${API_TOKEN} https://gitlab.com/api/v4/projects/${PROJECT_ID}/repository/changelog'

脚本内容

#!/bin/bash

app_version=$(cat VERSION.md)
branch=main

echo "CHANGELOGS SCRIPT IS RUNNING!"

link=https://gitlab.com/<project-path>/-/blob/${branch}/CHANGELOG.md

GITLAB_PROJECT_ACCESS_TOKEN=$1
GITLAB_PROJECT_CHANGELOG_API=$2

response=$(curl --write-out '%{http_code}' --request POST --header "PRIVATE-TOKEN: ${GITLAB_PROJECT_ACCESS_TOKEN}" --data "version=${app_version}&branch=${branch}" "${GITLAB_PROJECT_CHANGELOG_API}")

echo "response: $response"

if [ $response == 200 ]
then echo "Updated changelog: ${link}"
else echo "An error occurred when requesting GitLab API"
fi;

期望行为

推送格式如下的提交到主分支时,API能自动创建或更新CHANGELOG.md文件:

Title

Body

Changelog: added

初始错误

每次提交都会收到API返回的错误:

{"message":"Failed to generate the changelog: The commit start range is unspecified, and no previous tag could be found to use instead"}422

我猜测错误可能出在项目配置或提交消息,但未在官方文档中找到相关说明。

更新:新错误

我已通过在curl请求中添加from参数修复了上述问题:

response=$(curl --write-out '%{http_code}' --request POST --header "PRIVATE-TOKEN: ${GITLAB_PROJECT_ACCESS_TOKEN}" --data "version=${app_version}&branch=${branch}&from=${START_COMMIT_SHA}" "${GITLAB_PROJECT_CHANGELOG_API}")

但现在又出现新错误:

Failed to generate the changelog: denied by custom hooks

内容的提问来源于stack exchange,提问作者Armando Peña

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 14:15:33