mirror of
https://dev.azure.com/effectory/Survey%20Software/_git/Cloud%20Engineering
synced 2026-02-27 10:45:02 +01:00
Add Sonar Client to update permissions and tags in Sonar Projects to new team structure Related work items: #125680
37 lines
1.4 KiB
C#
37 lines
1.4 KiB
C#
using SnykRestApi.Models;
|
|
using SnykRestApi.Models.Raw;
|
|
using System.Net.Http.Headers;
|
|
using System.Text.Json;
|
|
|
|
namespace SnykRestApi.Repositories;
|
|
|
|
public class AuditLogRepository(HttpClient httpClient, AccessTokenRepository accessTokenRepository, Settings settings)
|
|
{
|
|
internal async Task<List<AuditLogResponse>> GetByOrganizationId(string organizationId)
|
|
{
|
|
var authorizationToken = await accessTokenRepository.GetAuthorizationToken();
|
|
List<AuditLogResponse> result = [];
|
|
List<AuditLogResponse> responseItems;
|
|
|
|
var page = 0;
|
|
|
|
do
|
|
{
|
|
HttpRequestMessage request = new(HttpMethod.Post, $"{settings.SnykBaseUrl}org/{organizationId}/audit?from=2022-07-01&page={++page}");
|
|
request.Headers.Accept.Clear();
|
|
request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
|
|
request.Headers.Authorization = new AuthenticationHeaderValue("token", authorizationToken);
|
|
|
|
var response = await httpClient.SendAsync(request).ConfigureAwait(false);
|
|
|
|
response.EnsureSuccessStatusCode();
|
|
|
|
var responseString = await response.Content.ReadAsStringAsync().ConfigureAwait(false);
|
|
responseItems = JsonSerializer.Deserialize<List<AuditLogResponse>>(responseString) ?? new List<AuditLogResponse>();
|
|
result.AddRange(responseItems);
|
|
}
|
|
while (responseItems.Count == 100);
|
|
|
|
return result;
|
|
}
|
|
} |