Files
Cloud-20Engineering/ConsoleApps/SnykRestApi/SnykRestApi/Repositories/AuditLogRepository.cs
Johannes Oenema Effectory 91980817e0 Merged PR 63702: Add Sonar Client to update permissions and tags in Sonar Projects to new team structure
Add Sonar Client to update permissions and tags in Sonar Projects to new team structure

Related work items: #125680
2025-11-05 15:18:52 +00:00

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;
}
}