paginate app operations and refine runtime settings layout
ci/woodpecker/push/woodpecker Pipeline was successful

This commit is contained in:
2026-07-07 17:42:31 +09:00
parent cc5a15a01c
commit 36acfedaee
3 changed files with 59 additions and 36 deletions
+19 -20
View File
@@ -36,6 +36,8 @@ export class GiteaService {
private readonly token?: string;
private readonly releaseBranchPushUsers: string[];
private readonly releaseBranchMergeUsers: string[];
private readonly releaseBranchPushTeams: string[];
private readonly releaseBranchMergeTeams: string[];
constructor(configService: ConfigService) {
this.baseUrl = configService
@@ -49,6 +51,12 @@ export class GiteaService {
this.releaseBranchMergeUsers = parseWhiteList(
configService.get<string>('GITEA_RELEASE_MERGE_WHITELIST'),
);
this.releaseBranchPushTeams = parseWhiteList(
configService.get<string>('GITEA_RELEASE_PUSH_WHITELIST_TEAMS'),
);
this.releaseBranchMergeTeams = parseWhiteList(
configService.get<string>('GITEA_RELEASE_MERGE_WHITELIST_TEAMS'),
);
}
async getVersion() {
@@ -258,23 +266,22 @@ export class GiteaService {
}
private async protectReleaseBranch(owner: string, repo: string) {
const me = await this.getAuthenticatedUser();
const pushUsernames = uniqueUsers([
...this.releaseBranchPushUsers,
...(me?.login ? [me.login] : []),
]);
const mergeUsernames = uniqueUsers([
...this.releaseBranchMergeUsers,
...(me?.login ? [me.login] : []),
]);
const pushUsernames = uniqueUsers(this.releaseBranchPushUsers);
const mergeUsernames = uniqueUsers(this.releaseBranchMergeUsers);
const pushTeams = uniqueUsers(this.releaseBranchPushTeams);
const mergeTeams = uniqueUsers(this.releaseBranchMergeTeams);
const hasPushWhitelist = pushUsernames.length > 0 || pushTeams.length > 0;
const hasMergeWhitelist = mergeUsernames.length > 0 || mergeTeams.length > 0;
const body = {
branch_name: 'release',
enable_push: true,
enable_push_whitelist: true,
enable_push_whitelist: hasPushWhitelist,
push_whitelist_usernames: pushUsernames,
enable_merge_whitelist: true,
merge_whitelist_usernames: mergeUsernames,
push_whitelist_teams: pushTeams,
enable_merge_whitelist: hasMergeWhitelist,
merge_whitelist_usernames: hasMergeWhitelist ? mergeUsernames : [],
merge_whitelist_teams: hasMergeWhitelist ? mergeTeams : [],
enable_force_push: false,
};
@@ -285,14 +292,6 @@ export class GiteaService {
});
}
private async getAuthenticatedUser() {
try {
return await this.request<{ login: string }>('/api/v1/user');
} catch {
return null;
}
}
private async request<T>(
path: string,
init?: RequestInit & { allowedStatuses?: number[] },