【问题标题】:How can I retrieve a list of Azure DevOps Wiki pages to be able to edit them?如何检索 Azure DevOps Wiki 页面列表以进行编辑?
【发布时间】:2019-10-16 20:07:27
【问题描述】:

我正在使用 .NET 客户端 API 访问我们的 Azure DevOps 服务器。

如何检索 Wiki 页面列表,以便编辑其内容并存储更改?

这是我目前得到的:

using (WikiHttpClient client = new WikiHttpClient(App.ProjectUrl, new VssCredentials()))
{
    using (Stream s = await client.GetPageTextAsync(ConfigurationManager.AppSettings["RepositoryContext"], ConfigurationManager.AppSettings["WikiPageName"]))
    using (StreamReader sr = new StreamReader(s))
    {
        string text = sr.ReadToEnd();
    }
}

我似乎无法找到正确的WikiPageName,因此我需要一个项目所有 Wiki 页面的列表,以便能够枚举和检索页面的正确名称。


编辑

这是请求的屏幕截图:

这是使用的网址:

http://tfs.***.***.loc:8080/tfs/***Collection/******Manager-Plus/_wiki/wikis/******Manager-Plus.wiki?wikiVersion=GBwikiMaster&pagePath=%2FDM%252DRelease%C3%BCbersicht&pageId=6

这是我正在使用的值:

<add key="WikiPageName" value="DM-Releaseübersicht"/>

【问题讨论】:

    标签: tfs azure-devops azure-devops-rest-api azure-devops-server-2019


    【解决方案1】:

    您可以使用方法GetAllWikisAsyc 获取维基元数据,在结果中您将获得wikiIdentifier 以在方法GetPageTestAsync 中使用。但是你需要页面路径,目前你无法通过API获取路径,你应该手动检查它(是wiki页面标题)并将其放入方法中:

    var wikis = client.GetAllWikisAsync("Project").Result.
    using (Stream S = client.GetPageTextAsync("Project", wikis[0].Id, path: "Test").Result)
    {
        using (StreamReader sr = new StreamReader(s))
        {
            string text = sr.ReadToEnd();
        }
    };
    

    【讨论】:

    • 不幸的是,这对我不起作用。我使用的页面名称似乎找不到该页面。这就是为什么我需要枚举 Wiki 页面以查看 Azure DevOps 认为我应该提供哪个页面名称。
    • 你能分享你的页面截图和你尝试过的代码吗?
    • 感谢您的帮助。我刚刚更新了我的评论。
    • @AxD 请在我的代码中看到您还需要带上 wiki id,您是否在代码中传递了它?因为我没看到
    • 抱歉我的回复晚了。你的建议对我有用。 (我很期待即将推出的页面浏览 API 功能。)非常感谢您的帮助,@Shayki!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多