Skip to content

Instantly share code, notes, and snippets.

View MahdiKarimipour's full-sized avatar
🎯
Focusing

MK MahdiKarimipour

🎯
Focusing
  • TechnologyLeads
  • Sydney, Australia
View GitHub Profile
@MahdiKarimipour
MahdiKarimipour / pellerex-azure-devops-invite-user-to-organisation-response.cs
Created April 6, 2022 06:06
Invite User to Azure DevOps Organisation: Response
public class AzureDevOpsInviteUserToOrganisationResponseDto
{
public string id { get; set; }
public string status { get; set; }
public bool haveResultsSucceeded { get; set; }
public bool completed { get; set; }
public Result[] results { get; set; }
public class Result
{
@MahdiKarimipour
MahdiKarimipour / pellerex-azure-devops-invite-user-to-organisation-api-call.cs
Created April 6, 2022 06:04
Invite User to Azure DevOps Organisation: Call API
var (result, respond) = await apiCall.PatchAsync<InviteUserToOrganisationResponseDto>(
url: url,
password: appSecrets.AzureDevOpsToken,
body: request);
@MahdiKarimipour
MahdiKarimipour / pellerex-azure-devops-invite-user-to-organisation-request-payload.cs
Created April 6, 2022 05:58
Invite User to Azure DevOps Organisation: Request Payload
var request = new AzureDevOpsInviteUserToOrganisationRequestDto[]
{
new AzureDevOpsInviteUserToOrganisationRequestDto()
{
op = 0,
path = "",
from = "",
value = new AzureDevOpsInviteUserToOrganisationRequestDto.Value()
{
accessLevel = new AzureDevOpsInviteUserToOrganisationRequestDto.Accesslevel()
@MahdiKarimipour
MahdiKarimipour / pellerex-azure-devops-fetch-projects-response-object.cs
Created April 2, 2022 18:42
Fetch Project List using Azure DevOps REST API: Response Object
public class AzureDevOpsGetOrganisationProjectsResponseDto
{
public int count { get; set; }
public Value[] value { get; set; }
public class Value
{
public string id { get; set; }
public string name { get; set; }
public string description { get; set; }
@MahdiKarimipour
MahdiKarimipour / pellerex-azure-devops-keep-fetching-project-list.cs
Created March 29, 2022 14:16
Pellerex Foundation, Azure DevOps, Keep Fetching Project List
int retries = 0;
while (true)
{
if (retries > 10)
{
return (null, EngineeringOpsConstants.ErrorCodes.GenericError);
}
Thread.Sleep(2000);
@MahdiKarimipour
MahdiKarimipour / pellerex-azure-devops-fetch-projects.cs
Last active March 29, 2022 14:11
Pellerex Foundation, Azure DevOps, Fetch Projects
public async Task<IEnumerable<ProjectViewModel>> GetProjects(string organisation)
{
var url = $"https://dev.azure.com/{organisation}/_apis/projects?api-version=6.0";
var (projects, response) = await apiCall.GetAsync<AzureDevOpsGetOrganisationProjectsResponseDto>(
url: url,
password: appSecrets.AzureDevOpsToken);
return projects.value.Select(p => new ProjectViewModel()
{
@MahdiKarimipour
MahdiKarimipour / pellerex-azure-devops-create-project-api-call.cs
Created March 29, 2022 13:52
Pellerex, Azure DevOps, Create Project Azure DevOps API
var (result, response) = await apiCall.PostAsync<AzureDevOpsCreateProjectResponseDto>(
url: url,
body: request,
password: appSecrets.AzureDevOpsToken);
@MahdiKarimipour
MahdiKarimipour / pellerex-azure-devops-create-project-request-dto-with-values.cs
Created March 29, 2022 13:40
Pellerex, Azure DevOps, Create Project Request DTO with Values
var request = new AzureDevOpsCreateProjectRequestDto()
{
name = project.Name,
visibility = "private" / "public",
description = "description",
capabilities = new AzureDevOpsCreateProjectRequestDto.CapabilitiesSettings()
{
processTemplate = new AzureDevOpsCreateProjectRequestDto.Processtemplate()
{
templateTypeId = "6b724908-ef14-45cf-84f8-768b5384da45", //fixed value
@MahdiKarimipour
MahdiKarimipour / pellerex-azure-devops-create-project.cs
Created March 29, 2022 13:35
Pellerex, Azure DevOps: Create Project Request DTO
public class AzureDevOpsCreateProjectRequestDto
{
public string name { get; set; }
public string description { get; set; }
public string visibility { get; set; }
public CapabilitiesSettings capabilities { get; set; }
@MahdiKarimipour
MahdiKarimipour / pellerex-realtime-messsaging-ingress-configs.yaml
Created December 23, 2021 07:20
Pellerex Realtime Messaging Ingress Configs
ingress:
enabled: true
className: ""
annotations:
# This needs to be specific domains, otherwise SignalR will fail
nginx.ingress.kubernetes.io/configuration-snippet: |
if ($http_origin ~* "^https?://((?:www\.domain-a\.com)|(?:www\.domain-b\.com)|(?:www\.domain-c\.io)|(?:www\.domain-d\.com))$") {
set $cors "true";
}
if ($request_method = 'OPTIONS') {