簡體   English   中英

UpdatePullRequestAsync 因 id 設置的錯誤無效拉取請求自動完成而失敗

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM