gpt4 book ai didi

git - 自动将 git repo 的一部分推送到谷歌云存储桶

转载 作者:太空狗 更新时间:2023-10-29 14:35:39 25 4
gpt4 key购买 nike

在进行设置时,我的想法是处理我的存储库并将其私密地存储在 Gitlab 中。然后我会创建一个 .gitlab-ci.yml 文件,在每次推送时它都会触发对 Google Source Repo 的推送,从而触发更新项目存储桶的操作。

我浏览了 Generating Static Credentials指南似乎链接到一个非常陈旧的页面,该页面指示您创建一个 .gitcookies 文件来存储您的静态凭据。我不明白它给了我什么,或者我如何将它们作为 secret 放入 Gitlab 以用于触发对远程 git 存储库的推送。

这种方法似乎更简单,因为我不必创建凭据,因为 GCR 中的所有内容都具有对该 gcloud 项目的适当访问权限,但我在这里可能完全偏离了基础。但另一方面,从文档来看,创建我存储在 Gitlab 中然后可以同步到 gcloud 存储桶的静态凭证对我来说似乎并不完全可行。

  1. 我想做的事情可行吗?
  2. 仅创建自定义仅推送凭据并让 Gitlab 运行程序处理存储桶同步是否真的更容易?

谢谢!

最佳答案

如果您有权访问自己的 GitLab 服务器,则可以改为确保 git 使用凭证助手,它将在服务器端缓存您的凭证。
或者在GitLab构建代理机器上进行同样的操作。

on Linux or MacOS X):

git config credential.helper gcloud.sh

Or on Windows:

git config credential.helper gcloud.cmd

如果不是(意味着 gitlab.com,无法控制/访问 GitLab 服务器/代理),您需要包含一个脚本,该脚本将在您的 repo 源中生成加密的 gitcookie 文件。
参见例如 mholt/caddy/dist/gitcookie.sh.enc ,由 mholt/caddy/.travis.yml#L17 使用在 TravisCI 中(但可以适应 GitLab CI)

  #Decrypts a script that installs an authenticated cookie
# for git to use when cloning from googlesource.com.
# Bypasses "bandwidth limit exceeded" errors.
# See github.com/golang/go/issues/12933
- if [ "$TRAVIS_PULL_REQUEST" = "false" ];
then openssl aes-256-cbc -K $encrypted_3df18f9af81d_key \
-iv $encrypted_3df18f9af81d_iv \
-in dist/gitcookie.sh.enc -out dist/gitcookie.sh -d; fi

$encrypted_3df18f9af81d_key$encrypted_3df18f9af81d_iv 将在运行时传递给构建。
那是因为TravisCI supports passing encrypted variables .
同样,GitLab-CI offers protected variables .

gitcookie.sh 示例:

#!/bin/sh

touch ~/.gitcookies
chmod 0600 ~/.gitcookies
git config --global http.cookiefile ~/.gitcookies

tr , \\t <<\__END__ >>~/.gitcookies
go.googlesource.com,FALSE,/,TRUE,1234...(customid),o,git-shenli.pingcap.com=1/afgrd....(secret)
go-review.googlesource.com,FALSE,/,TRUE,1234...(customid),o,git-shenli.pingcap.com=1/afgrd....(secret)
__END__

关于git - 自动将 git repo 的一部分推送到谷歌云存储桶,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50081832/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com