paperclip-github-plugin 0.2.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.
- package/LICENSE +184 -0
- package/README.md +216 -0
- package/dist/manifest.js +548 -0
- package/dist/ui/index.js +5336 -0
- package/dist/ui/index.js.map +7 -0
- package/dist/worker.js +6544 -0
- package/package.json +55 -0
package/dist/manifest.js
ADDED
|
@@ -0,0 +1,548 @@
|
|
|
1
|
+
// src/manifest.ts
|
|
2
|
+
import { createRequire } from "node:module";
|
|
3
|
+
|
|
4
|
+
// src/github-agent-tools.ts
|
|
5
|
+
var repositoryProperty = {
|
|
6
|
+
type: "string",
|
|
7
|
+
description: "GitHub repository as owner/repo or https://github.com/owner/repo. Omit when the current Paperclip project has exactly one mapped repository."
|
|
8
|
+
};
|
|
9
|
+
var paperclipIssueIdProperty = {
|
|
10
|
+
type: "string",
|
|
11
|
+
description: "Paperclip issue id used to infer the linked GitHub issue and repository when available."
|
|
12
|
+
};
|
|
13
|
+
var issueNumberProperty = {
|
|
14
|
+
type: "integer",
|
|
15
|
+
minimum: 1,
|
|
16
|
+
description: "GitHub issue number."
|
|
17
|
+
};
|
|
18
|
+
var pullRequestNumberProperty = {
|
|
19
|
+
type: "integer",
|
|
20
|
+
minimum: 1,
|
|
21
|
+
description: "GitHub pull request number."
|
|
22
|
+
};
|
|
23
|
+
var llmModelProperty = {
|
|
24
|
+
type: "string",
|
|
25
|
+
description: "Exact LLM name used to draft the comment. Required so the plugin can append the mandatory AI-authorship footer."
|
|
26
|
+
};
|
|
27
|
+
var issueTargetSchema = {
|
|
28
|
+
anyOf: [
|
|
29
|
+
{
|
|
30
|
+
required: ["paperclipIssueId"]
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
required: ["issueNumber"]
|
|
34
|
+
}
|
|
35
|
+
]
|
|
36
|
+
};
|
|
37
|
+
var pullRequestTargetSchema = {
|
|
38
|
+
anyOf: [
|
|
39
|
+
{
|
|
40
|
+
required: ["paperclipIssueId"]
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
required: ["pullRequestNumber"]
|
|
44
|
+
}
|
|
45
|
+
]
|
|
46
|
+
};
|
|
47
|
+
var GITHUB_AGENT_TOOLS = [
|
|
48
|
+
{
|
|
49
|
+
name: "search_repository_items",
|
|
50
|
+
displayName: "Search Repository Items",
|
|
51
|
+
description: "Search issues and pull requests in a GitHub repository for triage and deduplication.",
|
|
52
|
+
parametersSchema: {
|
|
53
|
+
type: "object",
|
|
54
|
+
additionalProperties: false,
|
|
55
|
+
required: ["query"],
|
|
56
|
+
properties: {
|
|
57
|
+
repository: repositoryProperty,
|
|
58
|
+
query: {
|
|
59
|
+
type: "string",
|
|
60
|
+
description: "Free-text search query."
|
|
61
|
+
},
|
|
62
|
+
type: {
|
|
63
|
+
type: "string",
|
|
64
|
+
enum: ["issue", "pull_request", "all"],
|
|
65
|
+
description: "Which item type to search."
|
|
66
|
+
},
|
|
67
|
+
state: {
|
|
68
|
+
type: "string",
|
|
69
|
+
enum: ["open", "closed", "all"],
|
|
70
|
+
description: "State filter."
|
|
71
|
+
},
|
|
72
|
+
author: {
|
|
73
|
+
type: "string",
|
|
74
|
+
description: "GitHub login that authored the item."
|
|
75
|
+
},
|
|
76
|
+
assignee: {
|
|
77
|
+
type: "string",
|
|
78
|
+
description: "GitHub login assigned to the item."
|
|
79
|
+
},
|
|
80
|
+
labels: {
|
|
81
|
+
type: "array",
|
|
82
|
+
items: {
|
|
83
|
+
type: "string"
|
|
84
|
+
},
|
|
85
|
+
description: "Label names that must be present on the item."
|
|
86
|
+
},
|
|
87
|
+
limit: {
|
|
88
|
+
type: "integer",
|
|
89
|
+
minimum: 1,
|
|
90
|
+
maximum: 50,
|
|
91
|
+
description: "Maximum number of results to return."
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
name: "get_issue",
|
|
98
|
+
displayName: "Get Issue",
|
|
99
|
+
description: "Read one GitHub issue with its metadata, assignees, labels, milestone, and linked pull requests.",
|
|
100
|
+
parametersSchema: {
|
|
101
|
+
type: "object",
|
|
102
|
+
additionalProperties: false,
|
|
103
|
+
...issueTargetSchema,
|
|
104
|
+
properties: {
|
|
105
|
+
repository: repositoryProperty,
|
|
106
|
+
issueNumber: issueNumberProperty,
|
|
107
|
+
paperclipIssueId: paperclipIssueIdProperty
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
name: "list_issue_comments",
|
|
113
|
+
displayName: "List Issue Comments",
|
|
114
|
+
description: "Read all comments on a GitHub issue so the agent has the full implementation context.",
|
|
115
|
+
parametersSchema: {
|
|
116
|
+
type: "object",
|
|
117
|
+
additionalProperties: false,
|
|
118
|
+
...issueTargetSchema,
|
|
119
|
+
properties: {
|
|
120
|
+
repository: repositoryProperty,
|
|
121
|
+
issueNumber: issueNumberProperty,
|
|
122
|
+
paperclipIssueId: paperclipIssueIdProperty
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
name: "update_issue",
|
|
128
|
+
displayName: "Update Issue",
|
|
129
|
+
description: "Update GitHub issue fields such as title, body, state, labels, assignees, or milestone.",
|
|
130
|
+
parametersSchema: {
|
|
131
|
+
type: "object",
|
|
132
|
+
additionalProperties: false,
|
|
133
|
+
...issueTargetSchema,
|
|
134
|
+
properties: {
|
|
135
|
+
repository: repositoryProperty,
|
|
136
|
+
issueNumber: issueNumberProperty,
|
|
137
|
+
paperclipIssueId: paperclipIssueIdProperty,
|
|
138
|
+
title: {
|
|
139
|
+
type: "string"
|
|
140
|
+
},
|
|
141
|
+
body: {
|
|
142
|
+
type: "string"
|
|
143
|
+
},
|
|
144
|
+
state: {
|
|
145
|
+
type: "string",
|
|
146
|
+
enum: ["open", "closed"]
|
|
147
|
+
},
|
|
148
|
+
setLabels: {
|
|
149
|
+
type: "array",
|
|
150
|
+
items: {
|
|
151
|
+
type: "string"
|
|
152
|
+
}
|
|
153
|
+
},
|
|
154
|
+
addLabels: {
|
|
155
|
+
type: "array",
|
|
156
|
+
items: {
|
|
157
|
+
type: "string"
|
|
158
|
+
}
|
|
159
|
+
},
|
|
160
|
+
removeLabels: {
|
|
161
|
+
type: "array",
|
|
162
|
+
items: {
|
|
163
|
+
type: "string"
|
|
164
|
+
}
|
|
165
|
+
},
|
|
166
|
+
setAssignees: {
|
|
167
|
+
type: "array",
|
|
168
|
+
items: {
|
|
169
|
+
type: "string"
|
|
170
|
+
}
|
|
171
|
+
},
|
|
172
|
+
addAssignees: {
|
|
173
|
+
type: "array",
|
|
174
|
+
items: {
|
|
175
|
+
type: "string"
|
|
176
|
+
}
|
|
177
|
+
},
|
|
178
|
+
removeAssignees: {
|
|
179
|
+
type: "array",
|
|
180
|
+
items: {
|
|
181
|
+
type: "string"
|
|
182
|
+
}
|
|
183
|
+
},
|
|
184
|
+
milestoneNumber: {
|
|
185
|
+
type: ["integer", "null"],
|
|
186
|
+
minimum: 1,
|
|
187
|
+
description: "Milestone number to set, or null to clear the milestone."
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
},
|
|
192
|
+
{
|
|
193
|
+
name: "add_issue_comment",
|
|
194
|
+
displayName: "Add Issue Comment",
|
|
195
|
+
description: "Post a comment on a GitHub issue or pull request. Provide only the human-facing message body; include llmModel so the plugin can append the required AI-authorship footer.",
|
|
196
|
+
parametersSchema: {
|
|
197
|
+
type: "object",
|
|
198
|
+
additionalProperties: false,
|
|
199
|
+
required: ["body", "llmModel"],
|
|
200
|
+
...issueTargetSchema,
|
|
201
|
+
properties: {
|
|
202
|
+
repository: repositoryProperty,
|
|
203
|
+
issueNumber: issueNumberProperty,
|
|
204
|
+
paperclipIssueId: paperclipIssueIdProperty,
|
|
205
|
+
body: {
|
|
206
|
+
type: "string",
|
|
207
|
+
description: "Human-facing comment body without the AI footer."
|
|
208
|
+
},
|
|
209
|
+
llmModel: llmModelProperty
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
},
|
|
213
|
+
{
|
|
214
|
+
name: "create_pull_request",
|
|
215
|
+
displayName: "Create Pull Request",
|
|
216
|
+
description: "Open a GitHub pull request once the implementation branch is pushed.",
|
|
217
|
+
parametersSchema: {
|
|
218
|
+
type: "object",
|
|
219
|
+
additionalProperties: false,
|
|
220
|
+
required: ["head", "base", "title"],
|
|
221
|
+
properties: {
|
|
222
|
+
repository: repositoryProperty,
|
|
223
|
+
head: {
|
|
224
|
+
type: "string",
|
|
225
|
+
description: "Head branch name or owner:branch."
|
|
226
|
+
},
|
|
227
|
+
base: {
|
|
228
|
+
type: "string",
|
|
229
|
+
description: "Base branch name."
|
|
230
|
+
},
|
|
231
|
+
title: {
|
|
232
|
+
type: "string"
|
|
233
|
+
},
|
|
234
|
+
body: {
|
|
235
|
+
type: "string"
|
|
236
|
+
},
|
|
237
|
+
draft: {
|
|
238
|
+
type: "boolean"
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
},
|
|
243
|
+
{
|
|
244
|
+
name: "get_pull_request",
|
|
245
|
+
displayName: "Get Pull Request",
|
|
246
|
+
description: "Read one pull request with branch metadata, review summary, and merge readiness.",
|
|
247
|
+
parametersSchema: {
|
|
248
|
+
type: "object",
|
|
249
|
+
additionalProperties: false,
|
|
250
|
+
...pullRequestTargetSchema,
|
|
251
|
+
properties: {
|
|
252
|
+
repository: repositoryProperty,
|
|
253
|
+
pullRequestNumber: pullRequestNumberProperty,
|
|
254
|
+
paperclipIssueId: paperclipIssueIdProperty
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
},
|
|
258
|
+
{
|
|
259
|
+
name: "update_pull_request",
|
|
260
|
+
displayName: "Update Pull Request",
|
|
261
|
+
description: "Edit pull request title, body, base branch, open or close it, or convert between draft and ready for review.",
|
|
262
|
+
parametersSchema: {
|
|
263
|
+
type: "object",
|
|
264
|
+
additionalProperties: false,
|
|
265
|
+
...pullRequestTargetSchema,
|
|
266
|
+
properties: {
|
|
267
|
+
repository: repositoryProperty,
|
|
268
|
+
pullRequestNumber: pullRequestNumberProperty,
|
|
269
|
+
paperclipIssueId: paperclipIssueIdProperty,
|
|
270
|
+
title: {
|
|
271
|
+
type: "string"
|
|
272
|
+
},
|
|
273
|
+
body: {
|
|
274
|
+
type: "string"
|
|
275
|
+
},
|
|
276
|
+
base: {
|
|
277
|
+
type: "string"
|
|
278
|
+
},
|
|
279
|
+
state: {
|
|
280
|
+
type: "string",
|
|
281
|
+
enum: ["open", "closed"]
|
|
282
|
+
},
|
|
283
|
+
isDraft: {
|
|
284
|
+
type: "boolean",
|
|
285
|
+
description: "True converts the pull request to draft. False marks it ready for review."
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
},
|
|
290
|
+
{
|
|
291
|
+
name: "list_pull_request_files",
|
|
292
|
+
displayName: "List Pull Request Files",
|
|
293
|
+
description: "List the changed files in a pull request, including additions, deletions, and patches when available.",
|
|
294
|
+
parametersSchema: {
|
|
295
|
+
type: "object",
|
|
296
|
+
additionalProperties: false,
|
|
297
|
+
...pullRequestTargetSchema,
|
|
298
|
+
properties: {
|
|
299
|
+
repository: repositoryProperty,
|
|
300
|
+
pullRequestNumber: pullRequestNumberProperty,
|
|
301
|
+
paperclipIssueId: paperclipIssueIdProperty
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
},
|
|
305
|
+
{
|
|
306
|
+
name: "get_pull_request_checks",
|
|
307
|
+
displayName: "Get Pull Request Checks",
|
|
308
|
+
description: "Read CI status for a pull request, including workflow runs, check runs, and commit status contexts.",
|
|
309
|
+
parametersSchema: {
|
|
310
|
+
type: "object",
|
|
311
|
+
additionalProperties: false,
|
|
312
|
+
...pullRequestTargetSchema,
|
|
313
|
+
properties: {
|
|
314
|
+
repository: repositoryProperty,
|
|
315
|
+
pullRequestNumber: pullRequestNumberProperty,
|
|
316
|
+
paperclipIssueId: paperclipIssueIdProperty
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
},
|
|
320
|
+
{
|
|
321
|
+
name: "list_pull_request_review_threads",
|
|
322
|
+
displayName: "List Pull Request Review Threads",
|
|
323
|
+
description: "Read review threads on a pull request, including file paths, comments, and resolution state.",
|
|
324
|
+
parametersSchema: {
|
|
325
|
+
type: "object",
|
|
326
|
+
additionalProperties: false,
|
|
327
|
+
...pullRequestTargetSchema,
|
|
328
|
+
properties: {
|
|
329
|
+
repository: repositoryProperty,
|
|
330
|
+
pullRequestNumber: pullRequestNumberProperty,
|
|
331
|
+
paperclipIssueId: paperclipIssueIdProperty
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
},
|
|
335
|
+
{
|
|
336
|
+
name: "reply_to_review_thread",
|
|
337
|
+
displayName: "Reply To Review Thread",
|
|
338
|
+
description: "Reply to an existing pull request review thread. Provide only the human-facing body; include llmModel so the plugin can append the required AI-authorship footer.",
|
|
339
|
+
parametersSchema: {
|
|
340
|
+
type: "object",
|
|
341
|
+
additionalProperties: false,
|
|
342
|
+
required: ["threadId", "body", "llmModel"],
|
|
343
|
+
properties: {
|
|
344
|
+
threadId: {
|
|
345
|
+
type: "string",
|
|
346
|
+
description: "GitHub pull request review thread node id."
|
|
347
|
+
},
|
|
348
|
+
body: {
|
|
349
|
+
type: "string",
|
|
350
|
+
description: "Human-facing reply body without the AI footer."
|
|
351
|
+
},
|
|
352
|
+
llmModel: llmModelProperty
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
},
|
|
356
|
+
{
|
|
357
|
+
name: "resolve_review_thread",
|
|
358
|
+
displayName: "Resolve Review Thread",
|
|
359
|
+
description: "Mark a pull request review thread as resolved after addressing the feedback.",
|
|
360
|
+
parametersSchema: {
|
|
361
|
+
type: "object",
|
|
362
|
+
additionalProperties: false,
|
|
363
|
+
required: ["threadId"],
|
|
364
|
+
properties: {
|
|
365
|
+
threadId: {
|
|
366
|
+
type: "string",
|
|
367
|
+
description: "GitHub pull request review thread node id."
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
},
|
|
372
|
+
{
|
|
373
|
+
name: "unresolve_review_thread",
|
|
374
|
+
displayName: "Unresolve Review Thread",
|
|
375
|
+
description: "Reopen a previously resolved pull request review thread.",
|
|
376
|
+
parametersSchema: {
|
|
377
|
+
type: "object",
|
|
378
|
+
additionalProperties: false,
|
|
379
|
+
required: ["threadId"],
|
|
380
|
+
properties: {
|
|
381
|
+
threadId: {
|
|
382
|
+
type: "string",
|
|
383
|
+
description: "GitHub pull request review thread node id."
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
},
|
|
388
|
+
{
|
|
389
|
+
name: "request_pull_request_reviewers",
|
|
390
|
+
displayName: "Request Pull Request Reviewers",
|
|
391
|
+
description: "Request users or teams to review a pull request.",
|
|
392
|
+
parametersSchema: {
|
|
393
|
+
type: "object",
|
|
394
|
+
additionalProperties: false,
|
|
395
|
+
...pullRequestTargetSchema,
|
|
396
|
+
properties: {
|
|
397
|
+
repository: repositoryProperty,
|
|
398
|
+
pullRequestNumber: pullRequestNumberProperty,
|
|
399
|
+
paperclipIssueId: paperclipIssueIdProperty,
|
|
400
|
+
userReviewers: {
|
|
401
|
+
type: "array",
|
|
402
|
+
minItems: 1,
|
|
403
|
+
items: {
|
|
404
|
+
type: "string"
|
|
405
|
+
}
|
|
406
|
+
},
|
|
407
|
+
teamReviewers: {
|
|
408
|
+
type: "array",
|
|
409
|
+
minItems: 1,
|
|
410
|
+
items: {
|
|
411
|
+
type: "string"
|
|
412
|
+
}
|
|
413
|
+
}
|
|
414
|
+
},
|
|
415
|
+
anyOf: [
|
|
416
|
+
{
|
|
417
|
+
required: ["paperclipIssueId", "userReviewers"]
|
|
418
|
+
},
|
|
419
|
+
{
|
|
420
|
+
required: ["paperclipIssueId", "teamReviewers"]
|
|
421
|
+
},
|
|
422
|
+
{
|
|
423
|
+
required: ["pullRequestNumber", "userReviewers"]
|
|
424
|
+
},
|
|
425
|
+
{
|
|
426
|
+
required: ["pullRequestNumber", "teamReviewers"]
|
|
427
|
+
}
|
|
428
|
+
]
|
|
429
|
+
}
|
|
430
|
+
}
|
|
431
|
+
];
|
|
432
|
+
|
|
433
|
+
// src/manifest.ts
|
|
434
|
+
var require2 = createRequire(import.meta.url);
|
|
435
|
+
var packageJson = require2("../package.json");
|
|
436
|
+
var DASHBOARD_WIDGET_CAPABILITY = "ui.dashboardWidget.register";
|
|
437
|
+
var SCHEDULE_TICK_CRON = "* * * * *";
|
|
438
|
+
var MANIFEST_VERSION = process.env.PLUGIN_VERSION?.trim() || typeof packageJson.version === "string" && packageJson.version.trim() || process.env.npm_package_version?.trim() || "0.0.0-dev";
|
|
439
|
+
var manifest = {
|
|
440
|
+
id: "paperclip-github-plugin",
|
|
441
|
+
apiVersion: 1,
|
|
442
|
+
version: MANIFEST_VERSION,
|
|
443
|
+
displayName: "GitHub Sync",
|
|
444
|
+
description: "Synchronize GitHub issues into Paperclip projects.",
|
|
445
|
+
author: "\xC1lvaro S\xE1nchez-Mariscal",
|
|
446
|
+
categories: ["connector", "ui"],
|
|
447
|
+
capabilities: [
|
|
448
|
+
"ui.page.register",
|
|
449
|
+
DASHBOARD_WIDGET_CAPABILITY,
|
|
450
|
+
"ui.detailTab.register",
|
|
451
|
+
"ui.commentAnnotation.register",
|
|
452
|
+
"ui.action.register",
|
|
453
|
+
"plugin.state.read",
|
|
454
|
+
"plugin.state.write",
|
|
455
|
+
"instance.settings.register",
|
|
456
|
+
"issues.read",
|
|
457
|
+
"issues.create",
|
|
458
|
+
"issues.update",
|
|
459
|
+
"issue.comments.read",
|
|
460
|
+
"issue.comments.create",
|
|
461
|
+
"agents.read",
|
|
462
|
+
"jobs.schedule",
|
|
463
|
+
"http.outbound",
|
|
464
|
+
"secrets.read-ref",
|
|
465
|
+
"agent.tools.register"
|
|
466
|
+
],
|
|
467
|
+
instanceConfigSchema: {
|
|
468
|
+
type: "object",
|
|
469
|
+
properties: {
|
|
470
|
+
githubTokenRef: {
|
|
471
|
+
type: "string",
|
|
472
|
+
title: "GitHub Token Secret"
|
|
473
|
+
},
|
|
474
|
+
paperclipBoardApiTokenRefs: {
|
|
475
|
+
type: "object",
|
|
476
|
+
title: "Paperclip Board Token Secrets",
|
|
477
|
+
additionalProperties: {
|
|
478
|
+
type: "string"
|
|
479
|
+
}
|
|
480
|
+
},
|
|
481
|
+
paperclipApiBaseUrl: {
|
|
482
|
+
type: "string",
|
|
483
|
+
title: "Trusted Paperclip API Origin"
|
|
484
|
+
}
|
|
485
|
+
}
|
|
486
|
+
},
|
|
487
|
+
jobs: [
|
|
488
|
+
{
|
|
489
|
+
jobKey: "sync.github-issues",
|
|
490
|
+
displayName: "Sync GitHub issues",
|
|
491
|
+
description: "Checks for GitHub issue updates and syncs them on the configured cadence.",
|
|
492
|
+
schedule: SCHEDULE_TICK_CRON
|
|
493
|
+
}
|
|
494
|
+
],
|
|
495
|
+
tools: GITHUB_AGENT_TOOLS,
|
|
496
|
+
entrypoints: {
|
|
497
|
+
worker: "./dist/worker.js",
|
|
498
|
+
ui: "./dist/ui/"
|
|
499
|
+
},
|
|
500
|
+
ui: {
|
|
501
|
+
slots: [
|
|
502
|
+
{
|
|
503
|
+
type: "dashboardWidget",
|
|
504
|
+
id: "paperclip-github-plugin-dashboard-widget",
|
|
505
|
+
displayName: "GitHub Sync",
|
|
506
|
+
exportName: "GitHubSyncDashboardWidget"
|
|
507
|
+
},
|
|
508
|
+
{
|
|
509
|
+
type: "detailTab",
|
|
510
|
+
id: "paperclip-github-plugin-issue-detail-tab",
|
|
511
|
+
displayName: "GitHub",
|
|
512
|
+
exportName: "GitHubSyncIssueDetailTab",
|
|
513
|
+
entityTypes: ["issue"]
|
|
514
|
+
},
|
|
515
|
+
{
|
|
516
|
+
type: "commentAnnotation",
|
|
517
|
+
id: "paperclip-github-plugin-comment-annotation",
|
|
518
|
+
displayName: "GitHub Sync Links",
|
|
519
|
+
exportName: "GitHubSyncCommentAnnotation",
|
|
520
|
+
entityTypes: ["comment"]
|
|
521
|
+
},
|
|
522
|
+
{
|
|
523
|
+
type: "globalToolbarButton",
|
|
524
|
+
id: "paperclip-github-plugin-global-toolbar-button",
|
|
525
|
+
displayName: "GitHub Sync",
|
|
526
|
+
exportName: "GitHubSyncGlobalToolbarButton"
|
|
527
|
+
},
|
|
528
|
+
{
|
|
529
|
+
type: "toolbarButton",
|
|
530
|
+
id: "paperclip-github-plugin-toolbar-button",
|
|
531
|
+
displayName: "GitHub Sync",
|
|
532
|
+
exportName: "GitHubSyncEntityToolbarButton",
|
|
533
|
+
entityTypes: ["project", "issue"]
|
|
534
|
+
},
|
|
535
|
+
{
|
|
536
|
+
type: "settingsPage",
|
|
537
|
+
id: "paperclip-github-plugin-settings-page",
|
|
538
|
+
displayName: "GitHub Sync",
|
|
539
|
+
exportName: "GitHubSyncSettingsPage"
|
|
540
|
+
}
|
|
541
|
+
]
|
|
542
|
+
}
|
|
543
|
+
};
|
|
544
|
+
var manifest_default = manifest;
|
|
545
|
+
export {
|
|
546
|
+
manifest_default as default,
|
|
547
|
+
manifest
|
|
548
|
+
};
|