我一直在使用vsts-node-api取得了一定程度的成功。
但是我想要查询特定分支中的所有提交。这是在找到的here的REST api文档中描述的。
但是,节点api只允许您使用GitApi的这种方法查询存储库中的提交
getCommits(repositoryId: string, searchCriteria: GitInterfaces.GitQueryCommitsCriteria, project?: string, skip?: number, top?: number): Promise<GitInterfaces.GitCommitRef[]>;
GitInterfaces.GitQueryCommitsCriteria
有此界面
export interface GitQueryCommitsCriteria {
$skip: number;
$top: number;
author: string;
compareVersion: GitVersionDescriptor;
excludeDeletes: boolean;
fromCommitId: string;
fromDate: string;
historyMode: GitHistoryMode;
ids: string[];
includeLinks: boolean;
includeWorkItems: boolean;
itemPath: string;
itemVersion: GitVersionDescriptor;
toCommitId: string;
toDate: string;
user: string;
}
正如您所看到的,getCommits没有分支参数,而Query接口也没有,所以我对如何执行此操作感到有点困惑。
为了给出一些上下文,我想要实现的是当更新或创建PR时,我想检查pr的源分支包含目标分支的最新提交以确认源分支已启动与目标分支约会。
答案 0 :(得分:1)
目前,获取分支的提交不适用于vsts-node-api。您还可以跟进问题Enable to get commits of a branch。
现在有两种解决方法:
git log branchname --oneline
以获取指定分支的提交。 答案 1 :(得分:1)
对不起,这很老了,但这似乎对我有用:
var criteria = new GitQueryCommitsCriteria()
{
HistoryMode = GitHistoryMode.FirstParent,
ItemVersion = new GitVersionDescriptor
{
Version = m_branch.Name,
VersionType = GitVersionType.Branch,
VersionOptions = GitVersionOptions.FirstParent
}
};