GitLab API client
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
test/GitLabApiClient.Test Try gitlab-ce:10.1.4-ce.0 from 5 months ago. (#9) Apr 25, 2018
.editorconfig Document and seal classes Sep 15, 2017
.gitattributes Add .gitignore and .gitattributes. Sep 15, 2017
.gitignore Change volumes location Nov 26, 2017
.travis.yml Feature/docker tests (#6) Nov 5, 2017
LICENSE Initial commit Sep 15, 2017
NuGet.config Update badges Nov 26, 2017
appveyor.yml Move build script to a file Sep 17, 2017
build.ps1 Remove tag from packing Oct 7, 2017
test.ps1 Add traits Nov 26, 2017


Build status Build Status NuGet
GitLabApiClient is a .NET rest client for GitLab API v4 (

Main features

  1. Targets .NET Standard 2.0.
  2. Fully async.
  3. Thread safe.
  4. Multi core paging.
  5. Simple and natural to use.

Quick start

  1. Authenticate:
// 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");
  1. Use it:
// create a new issue.
await client.Issues.CreateAsync(new CreateIssueRequest("projectId", "issue title"));  

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

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

Currently supported GitLab APIs:

  1. Issues API:
    Create issue.
    Update issue.
    Query issues.

  2. Merges API:
    Create merge request.
    Update merge request.
    Accept merge request.
    Delete merge request.
    Query merge requests.

  3. Projects API: Create project.
    Update project.
    Delete project.
    Get project users.
    Query projects.

  4. Users API:
    Create user.
    Update user.
    Delete user.
    Get current user session.
    Query users.

  5. Groups API (contributed by @ilijamitkov):
    Create group.
    Get projects for a group.
    Transfer group.
    Update group.
    Delete group.
    Sync group with linked LDAP group.
    Create LDAP group link.
    Delete LDAP group link.
    Delete LDAP for a specific LDAP provider.
    Query groups.