Невозможно создать подписку на сервисный перехватчик или веб-перехватчик в Azure ADO с помощью Rest API C#.
Я пытаюсь создать подписку на сервисный перехватчик/веб-перехватчик для события создания рабочего элемента, но он не работает. Я получаю сообщение об ошибке: «StatusCode: 203, ReasonPhrase: «Неавторитетная информация». Я использую токен личного доступа для аутентификации. Этот токен имеет полный доступ. Я использую приведенный ниже код для создания подписки
//urlType — это URL-адрес функции Azure ---https://function-xxxxxxxx-syncxxxxxxxx-v1.azurewebsites.net/api/CreateWorkItem?code=M4bvxxxxxxxxxxxxxxx
//workItemType — это пример URL-адреса запроса «workitem.created» ---https://dev.azure.com/TestOrg/TestProject/_apis/hooks/subscriptions?api-version=7.0
var subscription = new
{
publisherId = "tfs",
eventType = workItemType,
resourceVersion = "1.0",
consumerId = "webHooks",
consumerActionId = "httpRequest",
consumerInputs = new
{
url = urlType
}
};
var subscriptionJson = JsonConvert.SerializeObject(subscription);
var content = new StringContent(subscriptionJson, System.Text.Encoding.UTF8, "application/json");
requestUri = $"{baseUrl + orga}/{project}/_apis/hooks/subscriptions?api-version=7.0";
using (HttpClient client = new HttpClient())
{
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", personalAccessToken); // personalAccessToken is having full access
var response = await client.PostAsync(requestUri, content);
response.EnsureSuccessStatusCode();
var responseContent = await response.Content.ReadAsStringAsync();
var createdSubscription = JsonConvert.DeserializeObject<dynamic>(responseContent);
Console.WriteLine($"Service hook subscription created. Subscription ID: {createdSubscription.id}");
}
Пожалуйста, помогите в этом.
1 ответ
Исправлена проблема
var subscription = new
{
publisherId = "tfs",
eventType = workItemType,
resourceVersion = "1.0",
consumerId = "webHooks",
consumerActionId = "httpRequest",
publisherInputs = new
{
projectId = project.Value
},
consumerInputs = new
{
url = urlType
}
};
var subscriptionJson = JsonConvert.SerializeObject(subscription);
var content = new StringContent(subscriptionJson, System.Text.Encoding.UTF8, "application/json");
string requestUri = "";
requestUri = $"{baseUrl + orga}/_apis/hooks/subscriptions?api-version=7.0";
using (HttpClient client = new HttpClient())
{
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(System.Text.ASCIIEncoding.ASCII.GetBytes(string.Format("{0}:{1}", "", pat))));
var response = await client.PostAsync(requestUri, content);
response.EnsureSuccessStatusCode();
var responseContent = await response.Content.ReadAsStringAsync();
Console.WriteLine($"Service hook subscription: {workItemType} created for project: {project.Key}");
}