@pschroee/redmine-mcp 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,349 @@
1
+ import type { RedmineIssue, RedmineIssuesResponse, RedmineProject, RedmineProjectsResponse, RedmineResult, RedmineWikiPage, RedmineWikiPagesResponse, RedmineAttachment, RedmineUploadResponse, RedmineFilesResponse, RedmineRelation, RedmineRelationsResponse, RedmineVersion, RedmineVersionsResponse, RedmineTrackersResponse, RedmineIssueStatusesResponse, RedmineCategory, RedmineCategoriesResponse, RedmineCustomFieldsResponse, RedmineQueriesResponse, RedmineSearchResponse, RedmineMyAccountResponse, RedmineTimeEntry, RedmineTimeEntriesResponse, RedmineIssuePrioritiesResponse, RedmineTimeEntryActivitiesResponse, RedmineDocumentCategoriesResponse, RedmineUser, RedmineUsersResponse, RedmineGroup, RedmineGroupsResponse, RedmineMembership, RedmineMembershipsResponse, RedmineRole, RedmineRolesResponse } from "./types.js";
2
+ export declare class RedmineClient {
3
+ private baseUrl;
4
+ private apiKey;
5
+ constructor(baseUrl: string, apiKey: string);
6
+ private request;
7
+ listIssues(params?: {
8
+ project_id?: string | number;
9
+ subproject_id?: string;
10
+ tracker_id?: number;
11
+ status_id?: string | number;
12
+ assigned_to_id?: number | string;
13
+ parent_id?: number;
14
+ author_id?: number | string;
15
+ category_id?: number;
16
+ fixed_version_id?: number;
17
+ subject?: string;
18
+ created_on?: string;
19
+ updated_on?: string;
20
+ sort?: string;
21
+ include?: string;
22
+ limit?: number;
23
+ offset?: number;
24
+ }): Promise<RedmineResult<RedmineIssuesResponse>>;
25
+ getIssue(id: number, include?: string): Promise<RedmineResult<{
26
+ issue: RedmineIssue;
27
+ }>>;
28
+ createIssue(data: {
29
+ project_id: number | string;
30
+ subject: string;
31
+ description?: string;
32
+ tracker_id?: number;
33
+ status_id?: number;
34
+ priority_id?: number;
35
+ assigned_to_id?: number;
36
+ category_id?: number;
37
+ fixed_version_id?: number;
38
+ parent_issue_id?: number;
39
+ custom_fields?: {
40
+ id: number;
41
+ value: string | string[];
42
+ }[];
43
+ watcher_user_ids?: number[];
44
+ is_private?: boolean;
45
+ estimated_hours?: number;
46
+ start_date?: string;
47
+ due_date?: string;
48
+ uploads?: {
49
+ token: string;
50
+ filename: string;
51
+ content_type?: string;
52
+ description?: string;
53
+ }[];
54
+ }): Promise<RedmineResult<{
55
+ issue: RedmineIssue;
56
+ }>>;
57
+ updateIssue(id: number, data: {
58
+ subject?: string;
59
+ description?: string;
60
+ project_id?: number | string;
61
+ tracker_id?: number;
62
+ status_id?: number;
63
+ priority_id?: number;
64
+ assigned_to_id?: number | string;
65
+ category_id?: number;
66
+ fixed_version_id?: number | string;
67
+ parent_issue_id?: number | string;
68
+ custom_fields?: {
69
+ id: number;
70
+ value: string | string[];
71
+ }[];
72
+ notes?: string;
73
+ private_notes?: boolean;
74
+ is_private?: boolean;
75
+ estimated_hours?: number;
76
+ done_ratio?: number;
77
+ start_date?: string;
78
+ due_date?: string;
79
+ uploads?: {
80
+ token: string;
81
+ filename: string;
82
+ content_type?: string;
83
+ description?: string;
84
+ }[];
85
+ }): Promise<RedmineResult<void>>;
86
+ deleteIssue(id: number): Promise<RedmineResult<void>>;
87
+ addIssueWatcher(issueId: number, userId: number): Promise<RedmineResult<void>>;
88
+ removeIssueWatcher(issueId: number, userId: number): Promise<RedmineResult<void>>;
89
+ listProjects(params?: {
90
+ include?: string;
91
+ limit?: number;
92
+ offset?: number;
93
+ }): Promise<RedmineResult<RedmineProjectsResponse>>;
94
+ getProject(id: string | number, include?: string): Promise<RedmineResult<{
95
+ project: RedmineProject;
96
+ }>>;
97
+ createProject(data: {
98
+ name: string;
99
+ identifier: string;
100
+ description?: string;
101
+ homepage?: string;
102
+ is_public?: boolean;
103
+ parent_id?: number | string;
104
+ inherit_members?: boolean;
105
+ default_assigned_to_id?: number;
106
+ default_version_id?: number;
107
+ tracker_ids?: number[];
108
+ enabled_module_names?: string[];
109
+ issue_custom_field_ids?: number[];
110
+ custom_fields?: {
111
+ id: number;
112
+ value: string | string[];
113
+ }[];
114
+ }): Promise<RedmineResult<{
115
+ project: RedmineProject;
116
+ }>>;
117
+ updateProject(id: string | number, data: {
118
+ name?: string;
119
+ description?: string;
120
+ homepage?: string;
121
+ is_public?: boolean;
122
+ parent_id?: number | string;
123
+ inherit_members?: boolean;
124
+ default_assigned_to_id?: number;
125
+ default_version_id?: number;
126
+ tracker_ids?: number[];
127
+ enabled_module_names?: string[];
128
+ issue_custom_field_ids?: number[];
129
+ custom_fields?: {
130
+ id: number;
131
+ value: string | string[];
132
+ }[];
133
+ }): Promise<RedmineResult<void>>;
134
+ deleteProject(id: string | number): Promise<RedmineResult<void>>;
135
+ archiveProject(id: string | number): Promise<RedmineResult<void>>;
136
+ unarchiveProject(id: string | number): Promise<RedmineResult<void>>;
137
+ listWikiPages(projectId: string | number): Promise<RedmineResult<RedmineWikiPagesResponse>>;
138
+ getWikiPage(projectId: string | number, pageName: string, options?: {
139
+ version?: number;
140
+ include?: string;
141
+ }): Promise<RedmineResult<{
142
+ wiki_page: RedmineWikiPage;
143
+ }>>;
144
+ createOrUpdateWikiPage(projectId: string | number, pageName: string, data: {
145
+ text: string;
146
+ comments?: string;
147
+ version?: number;
148
+ parent_title?: string;
149
+ uploads?: {
150
+ token: string;
151
+ filename: string;
152
+ content_type?: string;
153
+ description?: string;
154
+ }[];
155
+ }): Promise<RedmineResult<{
156
+ wiki_page: RedmineWikiPage;
157
+ }>>;
158
+ deleteWikiPage(projectId: string | number, pageName: string): Promise<RedmineResult<void>>;
159
+ getAttachment(id: number): Promise<RedmineResult<{
160
+ attachment: RedmineAttachment;
161
+ }>>;
162
+ deleteAttachment(id: number): Promise<RedmineResult<void>>;
163
+ uploadFile(filename: string, contentType: string, content: Uint8Array): Promise<RedmineResult<RedmineUploadResponse>>;
164
+ listProjectFiles(projectId: string | number): Promise<RedmineResult<RedmineFilesResponse>>;
165
+ uploadProjectFile(projectId: string | number, data: {
166
+ token: string;
167
+ version_id?: number;
168
+ filename?: string;
169
+ description?: string;
170
+ }): Promise<RedmineResult<void>>;
171
+ listIssueRelations(issueId: number): Promise<RedmineResult<RedmineRelationsResponse>>;
172
+ getRelation(id: number): Promise<RedmineResult<{
173
+ relation: RedmineRelation;
174
+ }>>;
175
+ createIssueRelation(issueId: number, data: {
176
+ issue_to_id: number;
177
+ relation_type: string;
178
+ delay?: number;
179
+ }): Promise<RedmineResult<{
180
+ relation: RedmineRelation;
181
+ }>>;
182
+ deleteRelation(id: number): Promise<RedmineResult<void>>;
183
+ listVersions(projectId: string | number): Promise<RedmineResult<RedmineVersionsResponse>>;
184
+ getVersion(id: number): Promise<RedmineResult<{
185
+ version: RedmineVersion;
186
+ }>>;
187
+ createVersion(projectId: string | number, data: {
188
+ name: string;
189
+ status?: string;
190
+ sharing?: string;
191
+ due_date?: string;
192
+ description?: string;
193
+ wiki_page_title?: string;
194
+ }): Promise<RedmineResult<{
195
+ version: RedmineVersion;
196
+ }>>;
197
+ updateVersion(id: number, data: {
198
+ name?: string;
199
+ status?: string;
200
+ sharing?: string;
201
+ due_date?: string;
202
+ description?: string;
203
+ wiki_page_title?: string;
204
+ }): Promise<RedmineResult<{
205
+ version: RedmineVersion;
206
+ }>>;
207
+ deleteVersion(id: number): Promise<RedmineResult<void>>;
208
+ listTrackers(): Promise<RedmineResult<RedmineTrackersResponse>>;
209
+ listIssueStatuses(): Promise<RedmineResult<RedmineIssueStatusesResponse>>;
210
+ listIssueCategories(projectId: string | number): Promise<RedmineResult<RedmineCategoriesResponse>>;
211
+ getIssueCategory(id: number): Promise<RedmineResult<{
212
+ issue_category: RedmineCategory;
213
+ }>>;
214
+ createIssueCategory(projectId: string | number, data: {
215
+ name: string;
216
+ assigned_to_id?: number;
217
+ }): Promise<RedmineResult<{
218
+ issue_category: RedmineCategory;
219
+ }>>;
220
+ updateIssueCategory(id: number, data: {
221
+ name?: string;
222
+ assigned_to_id?: number;
223
+ }): Promise<RedmineResult<{
224
+ issue_category: RedmineCategory;
225
+ }>>;
226
+ deleteIssueCategory(id: number, reassignToId?: number): Promise<RedmineResult<void>>;
227
+ listCustomFields(): Promise<RedmineResult<RedmineCustomFieldsResponse>>;
228
+ listQueries(): Promise<RedmineResult<RedmineQueriesResponse>>;
229
+ search(params: {
230
+ q: string;
231
+ scope?: string;
232
+ all_words?: boolean;
233
+ titles_only?: boolean;
234
+ open_issues?: boolean;
235
+ attachments?: string;
236
+ issues?: boolean;
237
+ news?: boolean;
238
+ documents?: boolean;
239
+ changesets?: boolean;
240
+ wiki_pages?: boolean;
241
+ messages?: boolean;
242
+ projects?: boolean;
243
+ limit?: number;
244
+ offset?: number;
245
+ }): Promise<RedmineResult<RedmineSearchResponse>>;
246
+ getMyAccount(): Promise<RedmineResult<RedmineMyAccountResponse>>;
247
+ listTimeEntries(params?: {
248
+ project_id?: string | number;
249
+ user_id?: number | string;
250
+ spent_on?: string;
251
+ from?: string;
252
+ to?: string;
253
+ limit?: number;
254
+ offset?: number;
255
+ }): Promise<RedmineResult<RedmineTimeEntriesResponse>>;
256
+ getTimeEntry(id: number): Promise<RedmineResult<{
257
+ time_entry: RedmineTimeEntry;
258
+ }>>;
259
+ createTimeEntry(data: {
260
+ issue_id?: number;
261
+ project_id?: string | number;
262
+ hours: number;
263
+ activity_id?: number;
264
+ spent_on?: string;
265
+ comments?: string;
266
+ user_id?: number;
267
+ }): Promise<RedmineResult<{
268
+ time_entry: RedmineTimeEntry;
269
+ }>>;
270
+ updateTimeEntry(id: number, data: {
271
+ hours?: number;
272
+ activity_id?: number;
273
+ spent_on?: string;
274
+ comments?: string;
275
+ }): Promise<RedmineResult<void>>;
276
+ deleteTimeEntry(id: number): Promise<RedmineResult<void>>;
277
+ listIssuePriorities(): Promise<RedmineResult<RedmineIssuePrioritiesResponse>>;
278
+ listTimeEntryActivities(): Promise<RedmineResult<RedmineTimeEntryActivitiesResponse>>;
279
+ listDocumentCategories(): Promise<RedmineResult<RedmineDocumentCategoriesResponse>>;
280
+ listUsers(params?: {
281
+ status?: number;
282
+ name?: string;
283
+ group_id?: number;
284
+ limit?: number;
285
+ offset?: number;
286
+ }): Promise<RedmineResult<RedmineUsersResponse>>;
287
+ getUser(id: number | "current", include?: string): Promise<RedmineResult<{
288
+ user: RedmineUser;
289
+ }>>;
290
+ createUser(data: {
291
+ login: string;
292
+ firstname: string;
293
+ lastname: string;
294
+ mail: string;
295
+ password?: string;
296
+ generate_password?: boolean;
297
+ must_change_passwd?: boolean;
298
+ auth_source_id?: number;
299
+ mail_notification?: string;
300
+ admin?: boolean;
301
+ send_information?: boolean;
302
+ }): Promise<RedmineResult<{
303
+ user: RedmineUser;
304
+ }>>;
305
+ updateUser(id: number, data: {
306
+ login?: string;
307
+ firstname?: string;
308
+ lastname?: string;
309
+ mail?: string;
310
+ password?: string;
311
+ admin?: boolean;
312
+ status?: number;
313
+ }): Promise<RedmineResult<void>>;
314
+ deleteUser(id: number): Promise<RedmineResult<void>>;
315
+ listGroups(): Promise<RedmineResult<RedmineGroupsResponse>>;
316
+ getGroup(id: number, include?: string): Promise<RedmineResult<{
317
+ group: RedmineGroup;
318
+ }>>;
319
+ createGroup(data: {
320
+ name: string;
321
+ user_ids?: number[];
322
+ }): Promise<RedmineResult<{
323
+ group: RedmineGroup;
324
+ }>>;
325
+ deleteGroup(id: number): Promise<RedmineResult<void>>;
326
+ addUserToGroup(groupId: number, userId: number): Promise<RedmineResult<void>>;
327
+ removeUserFromGroup(groupId: number, userId: number): Promise<RedmineResult<void>>;
328
+ listProjectMemberships(projectId: string | number, params?: {
329
+ limit?: number;
330
+ offset?: number;
331
+ }): Promise<RedmineResult<RedmineMembershipsResponse>>;
332
+ getMembership(id: number): Promise<RedmineResult<{
333
+ membership: RedmineMembership;
334
+ }>>;
335
+ createProjectMembership(projectId: string | number, data: {
336
+ user_id: number;
337
+ role_ids: number[];
338
+ }): Promise<RedmineResult<{
339
+ membership: RedmineMembership;
340
+ }>>;
341
+ updateMembership(id: number, data: {
342
+ role_ids: number[];
343
+ }): Promise<RedmineResult<void>>;
344
+ deleteMembership(id: number): Promise<RedmineResult<void>>;
345
+ listRoles(): Promise<RedmineResult<RedmineRolesResponse>>;
346
+ getRole(id: number): Promise<RedmineResult<{
347
+ role: RedmineRole;
348
+ }>>;
349
+ }