Skip to content

ewdieckman/GitLabApiClient

This branch is 4 commits ahead of nmklotas/GitLabApiClient:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

e330717 · Apr 22, 2022
Aug 2, 2021
Sep 2, 2020
Apr 22, 2022
Nov 26, 2021
Oct 29, 2019
Oct 11, 2019
Jul 15, 2021
Dec 26, 2019
Jan 4, 2020
Sep 15, 2017
Oct 5, 2020
Nov 8, 2019
Dec 28, 2019
Oct 22, 2019
Jan 4, 2020

Repository files navigation

GitLabApiClient

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

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
}

About

GitLab API client

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C# 99.4%
  • Other 0.6%