[英]UpdatePullRequestAsync failing with the error invalid pull request auto complete set by id
我正在創建一個 TFS webhook 以通過在創建拉取請求時調用 UpdatePullRequestAsync 來設置自動完成。 但是,我收到錯誤:
無效的參數值。 參數名稱:由 id 設置的無效拉取請求自動完成。 有效值是當前用戶身份 ID 或空 guid(取消設置自動完成)。
string createdBy = webHookRequest.resource.createdBy.id.Value;
GitHttpClient gitClient = Connection.GetClient<GitHttpClient>();
var pullRequestWithAutoCompleteEnabled = new GitPullRequest
{
AutoCompleteSetBy = new IdentityRef() { Id = createdBy},
CompletionOptions = new GitPullRequestCompletionOptions
{
SquashMerge = false,
DeleteSourceBranch = false, // false if prefered otherwise
MergeCommitMessage = commitMessage
}
};
GitPullRequest updatedPullrequest = gitClient.UpdatePullRequestAsync(
pullRequestWithAutoCompleteEnabled,
repoId,
prId).Result;
要為拉取請求設置自動完成,您應該確保設置了分支策略。
僅當您設置了分支策略時,自動完成才可用,因為只有未成功的分支策略才會阻止 PR 隨時完成。 當沒有設置分支策略時,不需要自動完成,因為您可以立即完成。
您需要指定相同的用戶 id(當前授權用戶)以通過 API 將拉取請求更新為自動完成。
根據你的錯誤信息,
無效的參數值。 參數名稱:由 id 設置的無效拉取請求自動完成。 有效值是當前用戶身份 ID 或空 guid(取消設置自動完成)。
恐怕這可能與您的代碼有關:
string createdBy = webHookRequest.resource.createdBy.id.Value;
AutoCompleteSetBy = new IdentityRef() { Id = createdBy};
建議您逐行調試您的代碼,並檢查AutoCompleteSetBy
的返回值是否合格。
你也可以看看這個類似的問題: How to programmatically set an AzureDevOps PullRequest to complete Automatically? 它使用這種格式:
AutoCompleteSetBy = new IdentityRef { Id = pullRequest.CreatedBy.Id };
此外,還請參閱此博客: 針對 Visual Studio Team Services 以編程方式創建拉取請求。 類似於 TFS,這可能會有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.