希望使用 GitPython 在 Lambda 中克隆存储库

Looking to use GitPython to clone a repostiory in Lambda

我正在寻找一种结合使用 Git 和 Lambda 来帮助管理我们的 AWS 用户的方法,这就是我想要实现的...

  1. 最终用户使用 new/updated IAM 策略文档创建 PR,以获得他们想要的权限。
  2. 我们审查 PR,如果它通过手动代码审查,我们将其合并到 Master 分支。
  3. Lambda 由 Master 分支中的 Merge 触发以复制新更改并使用 boto3 模块将它们发布到 IAM。

我想从 Lambda 内部做一个 git 克隆,确保提交 headers 是最新的等等作为安全卫士。当我测试它失败时,因为我不想在我的代码中提供我的凭据(出于显而易见的原因)。所以我什至无法将存储库克隆到 lambda 中的 /tmp/folder 中。关于这个特定用例,我也没有看到任何好的文档。我正在尝试使用 API 开发人员令牌,但它似乎没有工作,因为我收到以下错误:

remote: Repository not found.
fatal: repository 'https://github.com/{org}/{project_name}/' not found 

只是一个简短的说明,它会打印出正确的占位符,但出于安全原因,我只是在这里放了一些通用的东西。我在下面粘贴我的代码:

import os
import base64
import boto3
from git import Repo
from botocore.exceptions import ClientError

    def lambda_handler(): # replace with (event,context):
        project_name = "project_name" # replace with event[gh_project]
        org = "org" # replace with event[gh_org]
        access_token = "<secret_access_token>" #replace with get_secret()
        git_url = f"https://{access_token}:x-oauth-basic@github.com/{org}/{project_name}"
        cwd = os.getcwd()
        repo = Repo.clone_from(git_url, cwd)

如果您有任何想法,我们将不胜感激。

问题出在我的 git_url 我将其从使用访问密钥切换为使用 git_url = git@github.com/{org}/{project_name}.git 并且有效。