Skip to content

Commit

Permalink
Accept username in ProjectMembers#add (#3666)
Browse files Browse the repository at this point in the history
* Accept username in ProjectMembers#add
* Updating the typing of the semi-required arguments
* Fix typos in types used
---------

Co-authored-by: Justin Dalrymple <[email protected]>
  • Loading branch information
talyssonoc and jdalrymple authored Dec 31, 2024
1 parent 5e70aa3 commit 5d86207
Show file tree
Hide file tree
Showing 11 changed files with 301 additions and 2,955 deletions.
873 changes: 0 additions & 873 deletions .yarn/releases/yarn-3.5.0.cjs

This file was deleted.

893 changes: 0 additions & 893 deletions .yarn/releases/yarn-4.0.2.cjs

This file was deleted.

893 changes: 0 additions & 893 deletions .yarn/releases/yarn-4.1.0.cjs

This file was deleted.

556 changes: 278 additions & 278 deletions .yarn/releases/yarn-4.5.1.cjs → .yarn/releases/yarn-4.6.0.cjs

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion .yarnrc.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
nodeLinker: node-modules

yarnPath: .yarn/releases/yarn-4.5.1.cjs
yarnPath: .yarn/releases/yarn-4.6.0.cjs
3 changes: 1 addition & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@
"release:next": "auto next",
"release:canary": "auto canary",
"release": "auto shipit",
"postinstall": "husky init",
"prepare": "husky"
},
"dependencies": {
Expand Down Expand Up @@ -67,5 +66,5 @@
"prettier": "^3.3.2",
"typescript": "^5.5.3"
},
"packageManager": "yarn@4.5.1"
"packageManager": "yarn@4.6.0"
}
5 changes: 2 additions & 3 deletions packages/core/src/resources/GroupMembers.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import type { BaseResourceOptions } from '@gitbeaker/requester-utils';
import { ResourceMembers } from '../templates';
import type {
AddMemeberOptions,
AddMemberOptions,
AllMembersOptions,
CondensedMemberSchema,
IncludeInherited,
Expand Down Expand Up @@ -45,9 +45,8 @@ export interface OverrodeGroupMemberSchema extends SimpleMemberSchema {
export interface GroupMembers<C extends boolean = false> extends ResourceMembers<C> {
add<E extends boolean = false>(
projectId: string | number,
userId: number,
accessLevel: Exclude<AccessLevel, AccessLevel.ADMIN>,
options?: AddMemeberOptions & Sudo & ShowExpanded<E>,
options?: AddMemberOptions & Sudo & ShowExpanded<E>,
): Promise<GitlabAPIResponse<MemberSchema, C, E, void>>;

all<E extends boolean = false, P extends PaginationTypes = 'offset'>(
Expand Down
5 changes: 2 additions & 3 deletions packages/core/src/resources/ProjectMembers.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import type { BaseResourceOptions } from '@gitbeaker/requester-utils';
import { ResourceMembers } from '../templates';
import type {
AddMemeberOptions,
AddMemberOptions,
AllMembersOptions,
IncludeInherited,
MemberSchema,
Expand All @@ -18,9 +18,8 @@ import { AccessLevel } from '../constants';
export interface ProjectMembers<C extends boolean = false> extends ResourceMembers<C> {
add<E extends boolean = false>(
projectId: string | number,
userId: number,
accessLevel: Exclude<AccessLevel, AccessLevel.ADMIN>,
options?: AddMemeberOptions & Sudo & ShowExpanded<E>,
options?: AddMemberOptions & Sudo & ShowExpanded<E>,
): Promise<GitlabAPIResponse<MemberSchema, C, E, void>>;

all<E extends boolean = false, P extends PaginationTypes = 'offset'>(
Expand Down
9 changes: 4 additions & 5 deletions packages/core/src/templates/ResourceMembers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import { RequestHelper, endpoint } from '../infrastructure';
import type {
BaseRequestOptions,
GitlabAPIResponse,
OneOf,
PaginationRequestOptions,
PaginationTypes,
ShowExpanded,
Expand Down Expand Up @@ -38,12 +39,12 @@ export interface MemberSchema extends SimpleMemberSchema {
};
}

export interface AddMemeberOptions {
export type AddMemberOptions = OneOf<{ userId: string | number; username: string }> & {
expiresAt?: string;
inviteSource?: string;
tasksToBeDone?: string[];
tasksProjectId?: number;
}
};

export interface AllMembersOptions {
query?: string;
Expand All @@ -59,12 +60,10 @@ export class ResourceMembers<C extends boolean = false> extends BaseResource<C>

add<E extends boolean = false>(
resourceId: string | number,
userId: number,
accessLevel: Exclude<AccessLevel, AccessLevel.ADMIN>,
options?: AddMemeberOptions & Sudo & ShowExpanded<E>,
options?: AddMemberOptions & Sudo & ShowExpanded<E>,
): Promise<GitlabAPIResponse<MemberSchema, C, E, void>> {
return RequestHelper.post<MemberSchema>()(this, endpoint`${resourceId}/members`, {
userId: String(userId),
accessLevel,
...options,
});
Expand Down
13 changes: 11 additions & 2 deletions packages/core/test/unit/resources/GroupMembers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,19 @@ describe('GroupMembers General', () => {

describe('GroupMembers.add', () => {
it('should request POST /groups/1/members', async () => {
await service.add(1, 2, 10);
await service.add(1, 10, { userId: 2 });

expect(RequestHelper.post()).toHaveBeenCalledWith(service, '1/members', {
userId: '2',
userId: 2,
accessLevel: 10,
});
});

it('should request POST /groups/user.name/members', async () => {
await service.add(1, 10, { username: 'user.name' });

expect(RequestHelper.post()).toHaveBeenCalledWith(service, '1/members', {
username: 'user.name',
accessLevel: 10,
});
});
Expand Down
4 changes: 2 additions & 2 deletions packages/core/test/unit/templates/ResourceMembers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,11 @@ describe('Instantiating ResourceMembers service', () => {

describe('ResourceMembers.add', () => {
it('should call the correct url for adding a member with a resource id, user id and access level', async () => {
await service.add('5', 5, 10);
await service.add('5', 10, { userId: 5 });

expect(RequestHelper.post()).toHaveBeenCalledWith(service, '5/members', {
accessLevel: 10,
userId: '5',
userId: 5,
});
});
});
Expand Down

0 comments on commit 5d86207

Please sign in to comment.