Skip to content

apiiro/GitLabApiClient

 
 

Repository files navigation

GitLabApiClient

GitHub Workflow Status NuGet

GitLabApiClient is a .NET rest client for GitLab API v4.

Nuget instructions

This package is managed with Nuget, in order to update it, follow the next steps.

  • when the code has changed, the Nuget version must increase, there is no "override" mechanism for Nuget versions.
  • pack the new code and push it to Nuget using the following lines:
    • cd src/GitLabApiClient
    • rm bin/Release/Apiiro.GitLabApiClient.*.nupkg
    • dotnet pack --configuration Release
    • dotnet nuget push bin/Release/Apiiro.GitLabApiClient.*.nupkg --source "github" --skip-duplicate --no-symbols

Main features

  • Targets .NET Standard 2.0
  • Fully async
  • Thread safe.
  • Multi core paging.
  • Simple and natural to use.
  • Handles URL encoding for you

Quick start

Authenticate

// if you have auth token:
var client =  new GitLabClient("https://gitlab.example.com", "your_private_token");
// if you want to use username & password:
var client =  new GitLabClient("https://gitlab.example.com");
await client.LoginAsync("username", "password");

Use it

// create a new issue.
await client.Issues.CreateAsync("group/project", new CreateIssueRequest("issue title"));

// list issues for a project  with specified assignee and labels.
await client.Issues.GetAsync("group/project", o => o.AssigneeId = 100 && o.Labels == new[] { "test-label" });

// create a new merge request featureBranch -> master.
await client.MergeRequests.CreateAsync("group/project", new CreateMergeRequest("featureBranch", "master", "Merge request title")
{
    Labels = new[] { "bugfix" },
    Description = "Implement feature"
});

// get a list of projects and find each project's README.
var projects = await Client.Projects.GetAsync();
foreach (var project in projects)
{
    var file = await Client.Files.GetAsync(project, filePath: "README.md", reference: project.DefaultBranch);
    var readme = file.ContentDecoded;
    // mad science goes here
}

Packages

 
 
 

Languages

  • C# 99.4%
  • Other 0.6%