Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用cdk获取两个分支(codecommit)之间的所有CommitID_Python_Amazon Web Services_Aws Cdk - Fatal编程技术网

Python 使用cdk获取两个分支(codecommit)之间的所有CommitID

Python 使用cdk获取两个分支(codecommit)之间的所有CommitID,python,amazon-web-services,aws-cdk,Python,Amazon Web Services,Aws Cdk,我想得到两个分支之间的所有佣金,但我只得到它们之间的第一个和最后一个佣金 这就是我到目前为止的收获: difference = client.get_differences( repositoryName=repo_name, beforeCommitSpecifier=main_branch_name, afterCommitSpecifier=dev_branch_name ) print("difference betwee

我想得到两个分支之间的所有佣金,但我只得到它们之间的第一个和最后一个佣金

这就是我到目前为止的收获:

difference = client.get_differences(
        repositoryName=repo_name,
        beforeCommitSpecifier=main_branch_name,
        afterCommitSpecifier=dev_branch_name
    )
print("difference between branch "+ dev_branch_name + " and "+main_branch_name )

print(difference)
differences = difference['differences']
for diff in differences:
 print("diff")
 print("afterBlob")
 if 'afterBlob' in diff:
   after_or_before_blob = diff['afterBlob']
   if 'beforeBlob' in diff:
            after_or_before_blob = diff['beforeBlob']
        print(after_or_before_blob['blobId'])

        blob = client.get_blob(
            repositoryName=repo_name,
            blobId=after_or_before_blob['blobId']
        )
        print("after_blob 1:")
        print(blob)

我还尝试使用git解决这个问题,例如git diff,但这段代码应该放在AWS Lambda中,git remote codecommit对我不起作用


什么能解决我的问题?

我找到了一个适合我需要的答案,尽管有点慢

我在错误的地方寻找答案。差异只是显示文件中的差异,而不是提交本身

因此,我递归地使用GetCommit和给定的ParentId

    def get_list_of_commits(self, client, main_commit_id, repo_name, list_commit_ids=[], list_commits=[]):
        commit_main = client.get_commit(
            repositoryName=repo_name,
            commitId=main_commit_id
        )
        parents = commit_main['commit']['parents']
        for parent in parents:
            self.get_list_of_commits(client, parent, repo_name, list_commit_ids, list_commits)
        commit = commit_main['commit']
        if main_commit_id not in list_commit_ids:
            list_commit_ids.append(main_commit_id)
            list_commits.append(commit)
        return list_commit_ids, list_commits
如果有人知道更好的答案,我会很高兴听到