использовать GitHttpClient.GetItemContentAsync({project}, {repositoryId}, path:{path})
, где
path
равно "/.attachments/my attached file-89553727-xxx-yyy-zzz-829fbe167411.docx"
, как указано в содержимом страницы вики (обратите внимание на ведущий /
)
Найдено это совершенно случайно, как только я перешел к экспериментам с GitHttpClient
и перечислил все предметы в моем репо. Один из элементов был вложением, и в нем был заполнен этот путь, который я затем подключил к методу GetItemContentAsync
и вуаля.
Мой кусок кода:
var uri = new Uri(_tfsBaseUri);
var credentials = GetCredentials();
using (var tpc = new TfsTeamProjectCollection(uri, credentials))
{
var wikiClient = tpc.GetClient<WikiHttpClient>();
var gitClient = tpc.GetClient<GitHttpClient>();
var mypage = wikiClient.GetPageAsync(_tfsProject, _tfsWiki, "My page name", includeContent: true).GetAwaiter().GetResult();
var pageContent = mypage.Page.Content;
if (pageContent.Contains("(.attachments"))
{
var path = "";// parse out the attachment path
var attachmentContent = gitClient.GetItemContentAsync(_tfsProject, new Guid("_tfsWiki repo ID"), path: path).GetAwaiter().GetResult();
}
}
private static VssCredentials GetCredentials()
{
return new VssCredentials(new Microsoft.VisualStudio.Services.Common.WindowsCredential(CredentialCache.DefaultCredentials));
}