// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. import { APIResource } from '../core/resource'; import { APIPromise } from '../core/api-promise'; import { buildHeaders } from '../internal/headers'; import { RequestOptions } from '../internal/request-options'; import { path } from '../internal/utils/path'; export class RepoToken extends APIResource { /** * Create a new repository access token associated with one or more repositories. */ create(body: RepoTokenCreateParams, options?: RequestOptions): APIPromise { return this._client.post('/repo_token', { body, ...options }); } /** * Delete a repository access token and its associated records. */ delete(token: string, options?: RequestOptions): APIPromise { return this._client.delete(path`/repo_token/${token}`, { ...options, headers: buildHeaders([{ Accept: '*/*' }, options?.headers]), }); } /** * Retrieve metadata for a repo token, including associated repositories. */ get(token: string, options?: RequestOptions): APIPromise { return this._client.get(path`/repo_token/${token}`, options); } } /** * Response after successfully creating a repo token. */ export interface RepoTokenCreateResponse { /** * The generated repo token (starts with 'rlcr-') */ token: string; name: string; repo_ids: Array; expires_at?: string; } /** * Response containing repo token metadata. */ export interface RepoTokenGetResponse { name: string; repo_ids: Array; expires_at?: string; } export interface RepoTokenCreateParams { /** * Human-readable name for the token */ name: string; /** * List of repository UUIDs this token can access */ repo_ids: Array; /** * Duration in seconds after which the repo token will expire */ ttl_seconds?: number | null; } export declare namespace RepoToken { export { type RepoTokenCreateResponse as RepoTokenCreateResponse, type RepoTokenGetResponse as RepoTokenGetResponse, type RepoTokenCreateParams as RepoTokenCreateParams, }; }