我正在用.gitlab-ci.yml编写GitLab CI/CD管道脚本,我想检查一个特定的文件是否在另一个回购中更改,如果是,我想复制该文件,提交并推送到当前的回购。一切都正常,直到我到达‘推’部分。
我试过几种方法来修复它:
stages:
- build
build:
stage: build
script:
- echo "Building"
- git checkout -b try
- git remote add -f b https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.{otherRepo}.git
- git remote update
- CHANGED=$(git diff try:mobile_map.conf b/master:mobile_map.conf)
- if [ -n "${CHANGED}" ]; then
echo 'changed';
FILE=$(git show b/master:mobile_map.conf > mobile_map.conf);
git add mobile_map.conf;
git commit -m "updating conf file";
git push;
else
echo 'not changed';
fi
- git remote rm b对于这段代码,我得到:
fatal: unable to access 'https://gitlab-ci-token:[MASKED]@gitlab.{curr_repo}.git/': The requested URL returned error: 403此外,我还试图在开头添加这一行:
git remote set-url origin 'https://{MY_USER_NAME}:"\"${PASSWORD}\""@gitlab.{curr_repo}.git'我得到了一条错误信息:
fatal: Authentication failed for 'https://{MY_USER_NAME}:"\"${PASSWORD}\""@{curr_repo}.git/'我还补充说:
- git config --global user.name {MY_USER_NAME}
- git config --global user.email {MY_EMAIL}请帮帮我,谢谢
发布于 2020-12-13 17:22:39
作业令牌只具有对存储库的读取权限。
为每个作业生成唯一的作业令牌,并为创建该作业的用户提供用户通常可以访问的所有项目的读取访问权限。唯一的作业令牌没有任何写权限,但是有一个添加支持的建议。
您不能使用deploy,因为它们不能对存储库(可能的令牌)进行写访问。您可以使用具有读写访问存储库的项目-访问-令牌。
您可以使用项目访问令牌:

然后,您可以将您的项目访问令牌用作url中的环境变量。
git push "https://gitlab-ci-token:$PROJECT_ACCESS_TOKEN@$CI_SERVER_HOST/$CI_PROJECT_PATH.git"至少我们在输油管道里就是这么用的。我希望这能进一步帮助你。
发布于 2021-11-28 21:56:47
简单GitLab CI阶段的完整示例,提交回其自己的回购
ci_section_name:
# N.B. This stage produces an extra commit to the repo!
stage: stage_name
script:
- apt-get update && apt-get install -y git
- echo "hello" >> file_to_be_modified.txt # your real job may do smth else
after_script:
- git config user.name "Name On Your Choice"
- git config user.email "email_on_your_choice@$CI_SERVER_HOST"
- git pull "https://project_access_token_name:$PROJECT_VARIABLE_WITH_ACCESS_TOKEN_VALUE@$CI_SERVER_HOST/$CI_PROJECT_PATH.git" $CI_COMMIT_BRANCH --rebase --autostash
- git commit -a -m "Message on your choice"
- git push "https://project_access_token_name:$PROJECT_VARIABLE_WITH_ACCESS_TOKEN_VALUE@$CI_SERVER_HOST/$CI_PROJECT_PATH.git" HEAD:$CI_COMMIT_BRANCH我想在以下几个重要方面谈一谈:
git add命令。only条件,等等。截图
GitLab项目访问令牌页

GitLab项目CI/CD设置菜单,在哪里查找变量设置

添加项目变量弹出。

https://stackoverflow.com/questions/65234416
复制相似问题