我添加了一个 Github 操作工作流程来执行 terraform 命令作为管道的一部分。
terraform 代码引用了另一个存储库中的 terraform 模块,如下所示。
module <moduleName> {
source = "git::<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="4b2c223f0b2c223f233e2965282426" rel="noreferrer noopener nofollow">[email protected]</a>:<orgName>/<moduleRepo>.git//<modulePath>?ref=<moduleTag>"
...
}
这将导致在 terraform init
命令执行期间从给定标签获取代码。
确保使用 https url 而不是 SSH git url。我将覆盖 git 配置 url,如下所示。
git config --global url."https://oauth2:<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="83a7c4cad7cbd6c1dcd7ccc8c6cdc3e4eaf7ebf6e1ade0ecee" rel="noreferrer noopener nofollow">[email protected]</a>/<orgName>/<moduleRepo>.git".insteadOf "ssh://<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="c4a3adb084a3adb0acb1a6eaa7aba9" rel="noreferrer noopener nofollow">[email protected]</a>/<orgName>/<moduleRepo>.git"
但是 GITHUB_TOKEN 不允许 git 克隆,并且失败并出现以下错误:
remote: Invalid username or password.
fatal: Authentication failed for
'https://github.com/<repoName>/<moduleRepo>.git/'
我还尝试向存储库工作流程添加权限,如下所示:
permissions:
repository-projects: read
操作的存储库设置设置为:允许所有操作和可重用工作流程
如果我使用具有 repo
权限的 PAT 更改 GITHUB_TOKEN,则工作流程可以顺利运行。
请让我知道如何配置 GITHUT_TOKEN 所需的权限。我想让它与 GITHUB_TOKEN 而不是 PAT 一起使用。
最佳答案
最终我能够解决这个问题。 GITHUB_TOKEN 作为 secret 而不是环境变量提供给 Github Action 工作流程。
问题是我将其视为环境变量并照此使用它,这导致了错误。
我按如下方式更改了工作流程以将其用作 secret 。
jobs:
<jobName>:
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
我按如下方式更新了 git 配置以正确使用 token :
git config --global url."https://oauth2:<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="dffb9897808b90949a919fb8b6abb7aabdf1bcb0b2" rel="noreferrer noopener nofollow">[email protected]</a>/<orgName>/<moduleRepo>.git".insteadOf "ssh://<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="c1a6a8b581a6a8b5a9b4a3efa2aeac" rel="noreferrer noopener nofollow">[email protected]</a>/<orgName>/<moduleRepo>.git"
工作流程现在似乎可以正常工作。
在此处添加我的答案以帮助面临类似问题的其他人。
关于github - Terraform Git Clone 似乎不适用于 GITHUB_TOKEN,但在使用 PAT 时可以使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73684084/