diff --git a/changelog.md b/changelog.md index 5f18f52..2147427 100644 --- a/changelog.md +++ b/changelog.md @@ -1,5 +1,12 @@ # Changelog +## 2026-03-02 - 1.3.0 - feat(gitea) +add repository branches and tags support: new IGiteaBranch/IGiteaTag interfaces and getRepoBranches/getRepoTags client methods + +- Added IGiteaBranch and IGiteaTag interfaces (ts/gitea.interfaces.ts). +- Added getRepoBranches and getRepoTags methods with pagination support to Gitea client (ts/gitea.classes.giteaclient.ts). +- Exported the new interfaces from the package index (ts/index.ts). + ## 2026-02-28 - 1.2.0 - feat(giteaclient) add deleteRepo method to delete a repository via Gitea API diff --git a/ts/00_commitinfo_data.ts b/ts/00_commitinfo_data.ts index cc38b43..e7430b3 100644 --- a/ts/00_commitinfo_data.ts +++ b/ts/00_commitinfo_data.ts @@ -3,6 +3,6 @@ */ export const commitinfo = { name: '@apiclient.xyz/gitea', - version: '1.2.0', + version: '1.3.0', description: 'A TypeScript client for the Gitea API, providing easy access to repositories, organizations, secrets, and action runs.' } diff --git a/ts/gitea.classes.giteaclient.ts b/ts/gitea.classes.giteaclient.ts index 2910cff..d548c57 100644 --- a/ts/gitea.classes.giteaclient.ts +++ b/ts/gitea.classes.giteaclient.ts @@ -5,6 +5,8 @@ import type { IGiteaRepository, IGiteaOrganization, IGiteaSecret, + IGiteaBranch, + IGiteaTag, IGiteaActionRun, IGiteaActionRunJob, ITestConnectionResult, @@ -199,6 +201,28 @@ export class GiteaClient { }); } + // --------------------------------------------------------------------------- + // Repository Branches & Tags + // --------------------------------------------------------------------------- + + public async getRepoBranches(ownerRepo: string, opts?: IListOptions): Promise { + const page = opts?.page || 1; + const limit = opts?.perPage || 50; + return this.request( + 'GET', + `/api/v1/repos/${ownerRepo}/branches?page=${page}&limit=${limit}`, + ); + } + + public async getRepoTags(ownerRepo: string, opts?: IListOptions): Promise { + const page = opts?.page || 1; + const limit = opts?.perPage || 50; + return this.request( + 'GET', + `/api/v1/repos/${ownerRepo}/tags?page=${page}&limit=${limit}`, + ); + } + // --------------------------------------------------------------------------- // Repository Secrets // --------------------------------------------------------------------------- diff --git a/ts/gitea.interfaces.ts b/ts/gitea.interfaces.ts index 88ea716..eaf5d63 100644 --- a/ts/gitea.interfaces.ts +++ b/ts/gitea.interfaces.ts @@ -58,6 +58,21 @@ export interface IGiteaActionRunJob { run_duration: number; } +export interface IGiteaBranch { + name: string; + commit: { + id: string; + }; +} + +export interface IGiteaTag { + name: string; + id: string; + commit: { + sha: string; + }; +} + export interface ITestConnectionResult { ok: boolean; error?: string; diff --git a/ts/index.ts b/ts/index.ts index c85ccdb..eadca42 100644 --- a/ts/index.ts +++ b/ts/index.ts @@ -4,6 +4,8 @@ export type { IGiteaRepository, IGiteaOrganization, IGiteaSecret, + IGiteaBranch, + IGiteaTag, IGiteaActionRun, IGiteaActionRunJob, ITestConnectionResult,