@broadshield/github-actions-workflow-marie-kondo
Version:
This library supports you in only keeping Tags, Releases, and Action Workflow Runs that spark joy, and to remove the ones often created during the PR process
47 lines (46 loc) • 3.95 kB
TypeScript
import type { GithubOctokitRepo } from '@broadshield/github-actions-core-typed-inputs';
import type { KnownKeysMatching, OctokitInstance } from '@broadshield/github-actions-octokit-hydrated';
import { PaginatingEndpoints } from '@broadshield/github-actions-octokit-hydrated';
export declare function basename(path: string): string;
declare type releasesRouteType = 'GET /repos/{owner}/{repo}/releases';
declare type tagsRouteType = 'GET /repos/{owner}/{repo}/tags';
declare type workflowsRouteType = 'GET /repos/{owner}/{repo}/actions/workflows';
declare type workflowRunsRouteType = 'GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs';
declare type UsablePaginatingEndpoints = Pick<PaginatingEndpoints, releasesRouteType | tagsRouteType | workflowsRouteType | workflowRunsRouteType>;
declare type DataType<T> = 'data' extends keyof T ? T['data'] : never;
declare type UsablePaginatingEndpointType<T> = T extends keyof UsablePaginatingEndpoints ? UsablePaginatingEndpoints[T] : never;
declare type UsableEndpointResponseDataType<T extends keyof UsablePaginatingEndpoints> = DataType<UsablePaginatingEndpoints[T]['response']>;
declare type ReturnListType<T extends keyof UsablePaginatingEndpoints> = T extends tagsRouteType ? string : number;
declare type FilterableParameters<T extends keyof UsablePaginatingEndpoints> = T extends UsableEndpointResponseDataType<T> ? KnownKeysMatching<UsableEndpointResponseDataType<T>, string | number> : never;
declare type FilterableParameterValueTypes = RegExp | Date | number | string;
declare type FilterInterface<R extends keyof UsablePaginatingEndpoints> = {
[key in keyof FilterableParameters<R>]: FilterableParameterValueTypes;
};
export interface KondoOptions {
octokit?: OctokitInstance;
repo: GithubOctokitRepo;
github_token?: string;
}
export declare class Kondo {
octokit?: OctokitInstance;
repo: GithubOctokitRepo;
constructor(options: KondoOptions);
setOctokit(octokit: OctokitInstance): void;
getOctokit(): OctokitInstance | undefined;
getMatchingItemsFromEndpointRest<T extends keyof UsablePaginatingEndpoints>(endpoint: T, parameters?: UsablePaginatingEndpointType<T>['parameters'], filter?: FilterInterface<T>, octokit?: OctokitInstance | undefined): Promise<ReturnListType<T>[]>;
getFilteredReleaseIdsFromRepo(parameters?: UsablePaginatingEndpoints[releasesRouteType]['parameters'], filter?: FilterInterface<releasesRouteType>, repo?: GithubOctokitRepo): Promise<ReturnListType<releasesRouteType>[]>;
getFilteredTagRefsFromRepo(parameters?: UsablePaginatingEndpoints[tagsRouteType]['parameters'], filter?: FilterInterface<tagsRouteType>, repo?: GithubOctokitRepo): Promise<ReturnListType<tagsRouteType>[]>;
getFilteredWorkflowIdsFromRepo(parameters?: UsablePaginatingEndpoints[workflowsRouteType]['parameters'], filter?: FilterInterface<workflowsRouteType>, repo?: GithubOctokitRepo): Promise<ReturnListType<workflowsRouteType>[]>;
getFilteredWorkflowRunIdsFromRepo(parameters?: UsablePaginatingEndpoints[workflowRunsRouteType]['parameters'], filter?: FilterInterface<workflowRunsRouteType>, repo?: GithubOctokitRepo): Promise<ReturnListType<workflowRunsRouteType>[]>;
deleteReleasesByIds(release_ids: number[], repo?: GithubOctokitRepo, octokit?: OctokitInstance | undefined): Promise<void[]>;
deleteTagsByRefs(refs: string[], repo?: GithubOctokitRepo, octokit?: OctokitInstance | undefined): Promise<void[]>;
/**
*
* @param {number[]} run_ids List of workflow run ids to cancel
* @param {GithubOctokitRepo} repo Object containing repository's owner and repo keys, defaults to this.repo
* @param {OctokitInstance} octokit Octokit instance to use, defaults to this.octokit
* @returns {Promise<void[]>} Array of promises that resolve to void
*/
deleteWorkflowRunsByIds(run_ids: number[], repo?: GithubOctokitRepo, octokit?: OctokitInstance | undefined): Promise<void[]>;
}
export {};