Gitlab changelog API错误:未指定提交开始范围

kxe2p93d  于 2023-05-05  发布在  Git
关注(0)|答案(1)|浏览(123)

我正在编写一个脚本,通过使用changelogs API在Gitlab上生成一个更新日志,其中包含我的主分支的提交。这个项目已经很先进了,但我以前从未做过。我遵循了一些指南,最终创建了一个管道,该管道将启动一个脚本,然后使用Gitlab API生成一个changelog文件。
这是我的管道:

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文件
但是每当我提交一个请求时,我都会收到来自API的答案:
{“message”:“无法生成更新日志:未指定提交开始范围,并且找不到可替代使用的以前的标记”}422
我认为错误可能是在项目的配置或提交消息上,但我没有在文档中找到有关此错误的更多信息。

UPDATE我已经通过在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}")

但现在我得到以下错误
无法生成更新日志:被自定义钩子拒绝

zxlwwiss

zxlwwiss1#

在Repository-〉Settings中查看您的推送规则(如果是组,则为预定义的推送规则)
https://gitlab.com/gitlab-org/gitlab-web-ide/-/issues/122
您的提交违反了其中的一个或多个。

相关问题