Skip to content
Go to file

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


GitHub Workflow Status NuGet

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

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


// if you have auth token:
var client =  new GitLabClient("", "your_private_token");
// if you want to use username & password:
var client =  new GitLabClient("");
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: "", reference: project.DefaultBranch);
    var readme = file.ContentDecoded;
    // mad science goes here
You can’t perform that action at this time.