Our release tooling lives on GitLab, and the scripts around it kept growing: pipelines to inspect, merge requests to annotate, changelogs to assemble. Doing that from Swift meant a typed client instead of another pile of curl and JSON parsing.
github.com/malcommac/GitLabSwift
GitLabSwift
An async/await client for the GitLab REST APIs.
Community maintained·Swift·since 2022
- –stars
- –forks
- –license
- –last push
In one look
let gitlab = GitLab(config: .init(baseURL: url))
let mrs = try await gitlab.mergeRequests.list(project: .id(1097))What it does
-
The endpoints a mobile team uses
Projects, merge requests, pipelines and releases, typed rather than parsed by hand.
-
Async with pagination
Async/await throughout, with paging handled by the client instead of every caller.
-
Built for tooling
Small enough to read, wide enough to automate a release process.