mirror of
https://github.com/woodpecker-ci/woodpecker.git
synced 2025-10-22 02:12:19 +00:00
Cleanup api docs and ts api-client options (#3663)
This commit is contained in:
@@ -158,7 +158,7 @@ const selectedAgent = ref<Partial<Agent>>();
|
||||
const isEditingAgent = computed(() => !!selectedAgent.value?.id);
|
||||
|
||||
async function loadAgents(page: number): Promise<Agent[] | null> {
|
||||
return apiClient.getAgents(page);
|
||||
return apiClient.getAgents({ page });
|
||||
}
|
||||
|
||||
const { resetPage, data: agents } = usePagination(loadAgents, () => !selectedAgent.value);
|
||||
|
@@ -50,7 +50,7 @@ const notifications = useNotifications();
|
||||
const { t } = useI18n();
|
||||
|
||||
async function loadOrgs(page: number): Promise<Org[] | null> {
|
||||
return apiClient.getOrgs(page);
|
||||
return apiClient.getOrgs({ page });
|
||||
}
|
||||
|
||||
const { resetPage, data: orgs } = usePagination(loadOrgs);
|
||||
|
@@ -56,7 +56,7 @@ const notifications = useNotifications();
|
||||
const i18n = useI18n();
|
||||
|
||||
async function loadRepos(page: number): Promise<Repo[] | null> {
|
||||
return apiClient.getAllRepos(page);
|
||||
return apiClient.getAllRepos({ page });
|
||||
}
|
||||
|
||||
const { data: repos } = usePagination(loadRepos);
|
||||
|
@@ -65,7 +65,7 @@ const selectedSecret = ref<Partial<Secret>>();
|
||||
const isEditingSecret = computed(() => !!selectedSecret.value?.id);
|
||||
|
||||
async function loadSecrets(page: number): Promise<Secret[] | null> {
|
||||
return apiClient.getGlobalSecretList(page);
|
||||
return apiClient.getGlobalSecretList({ page });
|
||||
}
|
||||
|
||||
const { resetPage, data: secrets } = usePagination(loadSecrets, () => !selectedSecret.value);
|
||||
|
@@ -107,7 +107,7 @@ const selectedUser = ref<Partial<User>>();
|
||||
const isEditingUser = computed(() => !!selectedUser.value?.id);
|
||||
|
||||
async function loadUsers(page: number): Promise<User[] | null> {
|
||||
return apiClient.getUsers(page);
|
||||
return apiClient.getUsers({ page });
|
||||
}
|
||||
|
||||
const { resetPage, data: users } = usePagination(loadUsers, () => !selectedUser.value);
|
||||
|
@@ -90,7 +90,7 @@ const pipelineOptions = computed(() => {
|
||||
|
||||
const loading = ref(true);
|
||||
onMounted(async () => {
|
||||
const data = await usePaginate((page) => apiClient.getRepoBranches(repo.value.id, page));
|
||||
const data = await usePaginate((page) => apiClient.getRepoBranches(repo.value.id, { page }));
|
||||
branches.value = data.map((e) => ({
|
||||
text: e,
|
||||
value: e,
|
||||
|
@@ -69,7 +69,7 @@ async function loadSecrets(page: number): Promise<Secret[] | null> {
|
||||
throw new Error("Unexpected: Can't load org");
|
||||
}
|
||||
|
||||
return apiClient.getOrgSecretList(org.value.id, page);
|
||||
return apiClient.getOrgSecretList(org.value.id, { page });
|
||||
}
|
||||
|
||||
const { resetPage, data: secrets } = usePagination(loadSecrets, () => !selectedSecret.value);
|
||||
|
@@ -70,7 +70,7 @@ async function loadBranches() {
|
||||
throw new Error('Unexpected: "repo" should be provided at this place');
|
||||
}
|
||||
|
||||
branches.value = (await usePaginate((page) => apiClient.getRepoBranches(repo.value.id, page)))
|
||||
branches.value = (await usePaginate((page) => apiClient.getRepoBranches(repo.value.id, { page })))
|
||||
.map((b) => ({
|
||||
value: b,
|
||||
text: b,
|
||||
|
@@ -121,7 +121,7 @@ async function loadCrons(page: number): Promise<Cron[] | null> {
|
||||
throw new Error("Unexpected: Can't load repo");
|
||||
}
|
||||
|
||||
return apiClient.getCronList(repo.value.id, page);
|
||||
return apiClient.getCronList(repo.value.id, { page });
|
||||
}
|
||||
|
||||
const { resetPage, data: crons } = usePagination(loadCrons, () => !selectedCron.value);
|
||||
|
@@ -104,7 +104,7 @@ async function loadRegistries(page: number): Promise<Registry[] | null> {
|
||||
throw new Error("Unexpected: Can't load repo");
|
||||
}
|
||||
|
||||
return apiClient.getRegistryList(repo.value.id, page);
|
||||
return apiClient.getRegistryList(repo.value.id, { page });
|
||||
}
|
||||
|
||||
const { resetPage, data: registries } = usePagination(loadRegistries, () => !selectedRegistry.value);
|
||||
|
@@ -71,11 +71,11 @@ async function loadSecrets(page: number, level: 'repo' | 'org' | 'global'): Prom
|
||||
|
||||
switch (level) {
|
||||
case 'repo':
|
||||
return apiClient.getSecretList(repo.value.id, page);
|
||||
return apiClient.getSecretList(repo.value.id, { page });
|
||||
case 'org':
|
||||
return apiClient.getOrgSecretList(repo.value.org_id, page);
|
||||
return apiClient.getOrgSecretList(repo.value.org_id, { page });
|
||||
case 'global':
|
||||
return apiClient.getGlobalSecretList(page);
|
||||
return apiClient.getGlobalSecretList({ page });
|
||||
default:
|
||||
throw new Error(`Unexpected level: ${level}`);
|
||||
}
|
||||
|
@@ -78,7 +78,7 @@ async function loadSecrets(page: number): Promise<Secret[] | null> {
|
||||
throw new Error('Unexpected: Unauthenticated');
|
||||
}
|
||||
|
||||
return apiClient.getOrgSecretList(user.org_id, page);
|
||||
return apiClient.getOrgSecretList(user.org_id, { page });
|
||||
}
|
||||
|
||||
const { resetPage, data: secrets } = usePagination(loadSecrets, () => !selectedSecret.value);
|
||||
|
@@ -34,6 +34,11 @@ type DeploymentOptions = {
|
||||
variables: Record<string, string>;
|
||||
};
|
||||
|
||||
type PaginationOptions = {
|
||||
page?: number;
|
||||
perPage?: number;
|
||||
};
|
||||
|
||||
export default class WoodpeckerClient extends ApiClient {
|
||||
getRepoList(opts?: RepoListOptions): Promise<Repo[]> {
|
||||
const query = encodeQueryString(opts);
|
||||
@@ -52,12 +57,14 @@ export default class WoodpeckerClient extends ApiClient {
|
||||
return this._get(`/api/repos/${repoId}/permissions`) as Promise<RepoPermissions>;
|
||||
}
|
||||
|
||||
getRepoBranches(repoId: number, page: number): Promise<string[]> {
|
||||
return this._get(`/api/repos/${repoId}/branches?page=${page}`) as Promise<string[]>;
|
||||
getRepoBranches(repoId: number, opts?: PaginationOptions): Promise<string[]> {
|
||||
const query = encodeQueryString(opts);
|
||||
return this._get(`/api/repos/${repoId}/branches?${query}`) as Promise<string[]>;
|
||||
}
|
||||
|
||||
getRepoPullRequests(repoId: number, page: number): Promise<PullRequest[]> {
|
||||
return this._get(`/api/repos/${repoId}/pull_requests?page=${page}`) as Promise<PullRequest[]>;
|
||||
getRepoPullRequests(repoId: number, opts?: PaginationOptions): Promise<PullRequest[]> {
|
||||
const query = encodeQueryString(opts);
|
||||
return this._get(`/api/repos/${repoId}/pull_requests?${query}`) as Promise<PullRequest[]>;
|
||||
}
|
||||
|
||||
activateRepo(forgeRemoteId: string): Promise<Repo> {
|
||||
@@ -93,7 +100,7 @@ export default class WoodpeckerClient extends ApiClient {
|
||||
return this._post(`/api/repos/${repoId}/pipelines/${pipelineNumber}?${query}`) as Promise<Pipeline>;
|
||||
}
|
||||
|
||||
getPipelineList(repoId: number, opts?: Record<string, string | number | boolean>): Promise<Pipeline[]> {
|
||||
getPipelineList(repoId: number, opts?: PaginationOptions & { before?: string; after?: string }): Promise<Pipeline[]> {
|
||||
const query = encodeQueryString(opts);
|
||||
return this._get(`/api/repos/${repoId}/pipelines?${query}`) as Promise<Pipeline[]>;
|
||||
}
|
||||
@@ -106,9 +113,8 @@ export default class WoodpeckerClient extends ApiClient {
|
||||
return this._get(`/api/repos/${repoId}/pipelines/${pipelineNumber}/config`) as Promise<PipelineConfig[]>;
|
||||
}
|
||||
|
||||
getPipelineFeed(opts?: Record<string, string | number | boolean>): Promise<PipelineFeed[]> {
|
||||
const query = encodeQueryString(opts);
|
||||
return this._get(`/api/user/feed?${query}`) as Promise<PipelineFeed[]>;
|
||||
getPipelineFeed(): Promise<PipelineFeed[]> {
|
||||
return this._get(`/api/user/feed`) as Promise<PipelineFeed[]>;
|
||||
}
|
||||
|
||||
cancelPipeline(repoId: number, pipelineNumber: number): Promise<unknown> {
|
||||
@@ -126,7 +132,7 @@ export default class WoodpeckerClient extends ApiClient {
|
||||
restartPipeline(
|
||||
repoId: number,
|
||||
pipeline: string,
|
||||
opts?: Record<string, string | number | boolean>,
|
||||
opts?: { event?: string; deploy_to?: string; fork?: boolean },
|
||||
): Promise<Pipeline> {
|
||||
const query = encodeQueryString(opts);
|
||||
return this._post(`/api/repos/${repoId}/pipelines/${pipeline}?${query}`) as Promise<Pipeline>;
|
||||
@@ -140,8 +146,9 @@ export default class WoodpeckerClient extends ApiClient {
|
||||
return this._delete(`/api/repos/${repoId}/logs/${pipeline}/${step}`);
|
||||
}
|
||||
|
||||
getSecretList(repoId: number, page: number): Promise<Secret[] | null> {
|
||||
return this._get(`/api/repos/${repoId}/secrets?page=${page}`) as Promise<Secret[] | null>;
|
||||
getSecretList(repoId: number, opts?: PaginationOptions): Promise<Secret[] | null> {
|
||||
const query = encodeQueryString(opts);
|
||||
return this._get(`/api/repos/${repoId}/secrets?${query}`) as Promise<Secret[] | null>;
|
||||
}
|
||||
|
||||
createSecret(repoId: number, secret: Partial<Secret>): Promise<unknown> {
|
||||
@@ -158,8 +165,9 @@ export default class WoodpeckerClient extends ApiClient {
|
||||
return this._delete(`/api/repos/${repoId}/secrets/${name}`);
|
||||
}
|
||||
|
||||
getRegistryList(repoId: number, page: number): Promise<Registry[] | null> {
|
||||
return this._get(`/api/repos/${repoId}/registry?page=${page}`) as Promise<Registry[] | null>;
|
||||
getRegistryList(repoId: number, opts?: PaginationOptions): Promise<Registry[] | null> {
|
||||
const query = encodeQueryString(opts);
|
||||
return this._get(`/api/repos/${repoId}/registry?${query}`) as Promise<Registry[] | null>;
|
||||
}
|
||||
|
||||
createRegistry(repoId: number, registry: Partial<Registry>): Promise<unknown> {
|
||||
@@ -174,8 +182,9 @@ export default class WoodpeckerClient extends ApiClient {
|
||||
return this._delete(`/api/repos/${repoId}/registry/${registryAddress}`);
|
||||
}
|
||||
|
||||
getCronList(repoId: number, page: number): Promise<Cron[] | null> {
|
||||
return this._get(`/api/repos/${repoId}/cron?page=${page}`) as Promise<Cron[] | null>;
|
||||
getCronList(repoId: number, opts?: PaginationOptions): Promise<Cron[] | null> {
|
||||
const query = encodeQueryString(opts);
|
||||
return this._get(`/api/repos/${repoId}/cron?${query}`) as Promise<Cron[] | null>;
|
||||
}
|
||||
|
||||
createCron(repoId: number, cron: Partial<Cron>): Promise<unknown> {
|
||||
@@ -206,8 +215,9 @@ export default class WoodpeckerClient extends ApiClient {
|
||||
return this._get(`/api/orgs/${orgId}/permissions`) as Promise<OrgPermissions>;
|
||||
}
|
||||
|
||||
getOrgSecretList(orgId: number, page: number): Promise<Secret[] | null> {
|
||||
return this._get(`/api/orgs/${orgId}/secrets?page=${page}`) as Promise<Secret[] | null>;
|
||||
getOrgSecretList(orgId: number, opts?: PaginationOptions): Promise<Secret[] | null> {
|
||||
const query = encodeQueryString(opts);
|
||||
return this._get(`/api/orgs/${orgId}/secrets?${query}`) as Promise<Secret[] | null>;
|
||||
}
|
||||
|
||||
createOrgSecret(orgId: number, secret: Partial<Secret>): Promise<unknown> {
|
||||
@@ -224,8 +234,9 @@ export default class WoodpeckerClient extends ApiClient {
|
||||
return this._delete(`/api/orgs/${orgId}/secrets/${name}`);
|
||||
}
|
||||
|
||||
getGlobalSecretList(page: number): Promise<Secret[] | null> {
|
||||
return this._get(`/api/secrets?page=${page}`) as Promise<Secret[] | null>;
|
||||
getGlobalSecretList(opts?: PaginationOptions): Promise<Secret[] | null> {
|
||||
const query = encodeQueryString(opts);
|
||||
return this._get(`/api/secrets?${query}`) as Promise<Secret[] | null>;
|
||||
}
|
||||
|
||||
createGlobalSecret(secret: Partial<Secret>): Promise<unknown> {
|
||||
@@ -250,8 +261,9 @@ export default class WoodpeckerClient extends ApiClient {
|
||||
return this._post('/api/user/token') as Promise<string>;
|
||||
}
|
||||
|
||||
getAgents(page: number): Promise<Agent[] | null> {
|
||||
return this._get(`/api/agents?page=${page}`) as Promise<Agent[] | null>;
|
||||
getAgents(opts?: PaginationOptions): Promise<Agent[] | null> {
|
||||
const query = encodeQueryString(opts);
|
||||
return this._get(`/api/agents?${query}`) as Promise<Agent[] | null>;
|
||||
}
|
||||
|
||||
getAgent(agentId: Agent['id']): Promise<Agent> {
|
||||
@@ -282,8 +294,9 @@ export default class WoodpeckerClient extends ApiClient {
|
||||
return this._post('/api/queue/resume');
|
||||
}
|
||||
|
||||
getUsers(page: number): Promise<User[] | null> {
|
||||
return this._get(`/api/users?page=${page}`) as Promise<User[] | null>;
|
||||
getUsers(opts?: PaginationOptions): Promise<User[] | null> {
|
||||
const query = encodeQueryString(opts);
|
||||
return this._get(`/api/users?${query}`) as Promise<User[] | null>;
|
||||
}
|
||||
|
||||
getUser(username: string): Promise<User> {
|
||||
@@ -306,16 +319,18 @@ export default class WoodpeckerClient extends ApiClient {
|
||||
return this._delete('/api/user/token') as Promise<string>;
|
||||
}
|
||||
|
||||
getOrgs(page: number): Promise<Org[] | null> {
|
||||
return this._get(`/api/orgs?page=${page}`) as Promise<Org[] | null>;
|
||||
getOrgs(opts?: PaginationOptions): Promise<Org[] | null> {
|
||||
const query = encodeQueryString(opts);
|
||||
return this._get(`/api/orgs?${query}`) as Promise<Org[] | null>;
|
||||
}
|
||||
|
||||
deleteOrg(org: Org): Promise<unknown> {
|
||||
return this._delete(`/api/orgs/${org.id}`);
|
||||
}
|
||||
|
||||
getAllRepos(page: number): Promise<Repo[] | null> {
|
||||
return this._get(`/api/repos?page=${page}`) as Promise<Repo[] | null>;
|
||||
getAllRepos(opts?: PaginationOptions): Promise<Repo[] | null> {
|
||||
const query = encodeQueryString(opts);
|
||||
return this._get(`/api/repos?${query}`) as Promise<Repo[] | null>;
|
||||
}
|
||||
|
||||
repairAllRepos(): Promise<unknown> {
|
||||
|
@@ -46,8 +46,8 @@ export const usePipelineStore = defineStore('pipelines', () => {
|
||||
setPipeline(repoId, pipeline);
|
||||
}
|
||||
|
||||
async function loadRepoPipelines(repoId: number) {
|
||||
const _pipelines = await apiClient.getPipelineList(repoId);
|
||||
async function loadRepoPipelines(repoId: number, page?: number) {
|
||||
const _pipelines = await apiClient.getPipelineList(repoId, { page });
|
||||
_pipelines.forEach((pipeline) => {
|
||||
setPipeline(repoId, pipeline);
|
||||
});
|
||||
|
@@ -41,7 +41,7 @@ async function loadBranches(page: number): Promise<string[]> {
|
||||
throw new Error('Unexpected: "repo" should be provided at this place');
|
||||
}
|
||||
|
||||
return apiClient.getRepoBranches(repo.value.id, page);
|
||||
return apiClient.getRepoBranches(repo.value.id, { page });
|
||||
}
|
||||
|
||||
const { resetPage, data: branches, loading } = usePagination(loadBranches);
|
||||
|
@@ -48,7 +48,7 @@ async function loadPullRequests(page: number): Promise<PullRequest[]> {
|
||||
throw new Error('Unexpected: "repo" should be provided at this place');
|
||||
}
|
||||
|
||||
return apiClient.getRepoPullRequests(repo.value.id, page);
|
||||
return apiClient.getRepoPullRequests(repo.value.id, { page });
|
||||
}
|
||||
|
||||
const { resetPage, data: pullRequests, loading } = usePagination(loadPullRequests);
|
||||
|
Reference in New Issue
Block a user