Skip to content

StephanThierry/GitLabApiClient

 
 

Repository files navigation

GitLabApiClient

This is NOT the version from NuGet - this is an independant fork with slightly different features.

What's added in this fork:

User: Activate, Deactivate, Block, Unblock
Files: GetRaw, Update
Issues:

  • Deleting issues
  • Creating and deleting Issue Links
  • Setting/Impersonating "author / created by-user" using "sudo" (Notice! Using this breaks 'Created On'-date!)

Epics: Get, Create, Update, Delete IssuesQuery: added support for "in"-searches
Project: RemoveMember, Fork, DeleteForkedRelationship

The NuGet version may still solve your needs, in which case it's an easier option.
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%