使用 VSTS 节点 api 查询特定分支中的所有提交
Use VSTS node api to query for all commits in a particular branch
我一直在使用 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 没有分支参数,查询接口也没有,所以我对如何执行此操作有点困惑。
为了提供一些上下文,我想要实现的是,当更新或创建 PR 时,我想检查 pr 的源分支是否包含目标分支的最新提交,以确认源分支与目标分支是最新的。
目前,vsts-node-api 无法获取分支的提交。并且你也可以跟进issue Enable to get commits of a branch.
目前有两种解决方法:
- 解决方法 1:使用 REST 调用获取分支的提交。
- 解决方法 2:clone/get 在本地 git 仓库,然后执行
git log branchname --oneline
以获取指定分支的提交。
抱歉,这是旧的,但这似乎对我有用:
var criteria = new GitQueryCommitsCriteria()
{
HistoryMode = GitHistoryMode.FirstParent,
ItemVersion = new GitVersionDescriptor
{
Version = m_branch.Name,
VersionType = GitVersionType.Branch,
VersionOptions = GitVersionOptions.FirstParent
}
};
我一直在使用 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 没有分支参数,查询接口也没有,所以我对如何执行此操作有点困惑。
为了提供一些上下文,我想要实现的是,当更新或创建 PR 时,我想检查 pr 的源分支是否包含目标分支的最新提交,以确认源分支与目标分支是最新的。
目前,vsts-node-api 无法获取分支的提交。并且你也可以跟进issue Enable to get commits of a branch.
目前有两种解决方法:
- 解决方法 1:使用 REST 调用获取分支的提交。
- 解决方法 2:clone/get 在本地 git 仓库,然后执行
git log branchname --oneline
以获取指定分支的提交。
抱歉,这是旧的,但这似乎对我有用:
var criteria = new GitQueryCommitsCriteria()
{
HistoryMode = GitHistoryMode.FirstParent,
ItemVersion = new GitVersionDescriptor
{
Version = m_branch.Name,
VersionType = GitVersionType.Branch,
VersionOptions = GitVersionOptions.FirstParent
}
};