paperclip-github-plugin 0.2.3 → 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.
package/README.md CHANGED
@@ -20,6 +20,7 @@ With this plugin, you can:
20
20
  - keep descriptions, labels, and status aligned with GitHub over time
21
21
  - configure mappings and import defaults per Paperclip company
22
22
  - run sync manually or on a schedule
23
+ - triage open pull requests from mapped Paperclip projects in a hosted queue
23
24
  - give Paperclip agents native GitHub tools for issues, pull requests, CI, and review threads
24
25
 
25
26
  ## What you get in Paperclip
@@ -29,6 +30,7 @@ The plugin adds a full in-host workflow instead of a one-off import script:
29
30
  - a hosted settings page for GitHub auth, repository mappings, company defaults, and sync controls
30
31
  - a dashboard widget that shows readiness, sync status, and last-run results
31
32
  - saved sync diagnostics that let operators inspect the latest per-issue failures, raw errors, and suggested next steps
33
+ - a project sidebar item that opens a live project-scoped Pull Requests page for the mapped repository and can show the open PR count through a lightweight badge read
32
34
  - manual sync actions from global, project, and issue toolbar surfaces
33
35
  - a GitHub detail tab on synced Paperclip issues
34
36
  - GitHub link annotations on sync-generated status transition comments when the host supports comment annotations
@@ -57,6 +59,12 @@ If a company already has a Paperclip project bound to a GitHub repository worksp
57
59
 
58
60
  The plugin does more than mirror issue text. It looks at linked pull requests, CI, review threads, and trusted new GitHub comments so imported Paperclip issues can reflect where the work actually is.
59
61
 
62
+ ### Project pull request command center
63
+
64
+ Each mapped project can expose a **Pull Requests** entry in the sidebar that opens a live GitHub queue page for that repository. The sidebar badge uses a lightweight total-count read, while the queue keeps the default view fast by loading only the current 10-row page, uses a repo-wide metrics read for the summary cards, reuses that cached metrics scan to keep filtered views fast by fetching only the visible filtered rows, keeps repo-scoped count, metrics, and per-PR review/check insight caches warm for repeat visits, lets operators explicitly bust those caches with Refresh when they want a live reread, shows total, mergeable, reviewable, and failing cards that filter the table, includes an **Up to date** column that distinguishes current branches, clean update candidates, conflict cases, and unknown freshness when GitHub cannot confirm the comparison, shows the PR target branch with a highlighted default-branch badge, keeps the list sorted by most recently updated first, paginates larger repositories, keeps a compact bottom detail pane with markdown-and-HTML-rendered conversation plus an inline comment composer, supports deterministic **Update branch** actions for clean behind-base pull requests, adds Copilot quick actions that post `@copilot` requests for **Fix CI**, **Rebase**, and **Address review feedback**, requests Copilot through GitHub’s native reviewer flow for **Review**, keeps the existing comment, review, re-run CI, merge, and close actions, hides any pull request action whose required GitHub permission is not verified for the saved token, and opens linked Paperclip issues in a plugin-provided right drawer so operators can stay on the queue page.
65
+
66
+ Paperclip issue linkage on the queue prefers the GitHub issue that the pull request closes, so imported GitHub issues and delivery work stay connected in the same project view. If a pull request has no closing-issue-backed link yet, the queue falls back to the Paperclip issue created directly from that pull request and updates the table immediately when that create action returns.
67
+
60
68
  ### Agent workflows built in
61
69
 
62
70
  Paperclip agents can search GitHub for duplicates, read and update issues, post comments, create pull requests, inspect changed files and CI, reply to review threads, resolve or unresolve threads, and request reviewers without leaving the Paperclip plugin surface.
@@ -98,12 +106,13 @@ npx paperclipai plugin install --local "$PWD"
98
106
  3. If the deployment requires authenticated Paperclip board access, connect it from the same settings page and complete the approval flow.
99
107
  4. Add one or more repository mappings for the current company.
100
108
  5. For each mapping, either choose an existing GitHub-linked Paperclip project or enter the project name that should receive synced issues.
101
- 6. Optionally configure company-wide defaults for imported issues, including the default assignee, the default Paperclip status, and ignored GitHub usernames.
109
+ 6. Optionally configure company-wide defaults for imported issues, including the default assignee, the default Paperclip status, and ignored GitHub usernames. Bot aliases such as `renovate[bot]` are matched when you save `renovate`.
102
110
  7. Choose the automatic sync interval in minutes.
103
111
  8. Save the settings and run the first manual sync.
104
112
  9. Repeat inside other companies if they need their own mappings, defaults, or board access.
105
113
 
106
114
  Repository input accepts either `owner/repo` or `https://github.com/owner/repo`.
115
+ When a token is saved, the settings page audits the mapped repositories for the permissions needed by pull request actions and warns when permissions are missing or GitHub cannot verify them yet.
107
116
 
108
117
  ## Synchronization behavior
109
118
 
@@ -173,6 +182,8 @@ When an agent posts a GitHub comment or review-thread reply through the plugin,
173
182
  - If the worker reaches an authenticated HTML page instead of the Paperclip API JSON responses it expects, connect Paperclip board access for that company or set `PAPERCLIP_API_URL` to a worker-accessible Paperclip API origin.
174
183
  - If a sync run finishes with partial failures, open the saved troubleshooting panel in GitHub Sync to inspect the repository, issue number, raw error, and suggested fix for each recorded failure.
175
184
  - If sync says the Paperclip API URL is not trusted, reopen the plugin from the current Paperclip host so the settings UI can refresh the saved origin, or set `PAPERCLIP_API_URL` for the worker.
185
+ - If a pull request comment or review action is rejected, read the full toast message. Fine-grained GitHub tokens need write access to that repository, and GitHub requires a review summary when requesting changes.
186
+ - If a GitHub-linked project does not show the **Pull requests** sidebar entry, reopen the plugin settings and re-save the mapping. The project pull request surfaces also recover older mappings when saved ids are missing, and they can fall back to the active project's bound GitHub repository when the project already has a GitHub workspace configured.
176
187
  - If GitHub rate limiting is hit, the plugin pauses sync until the reported reset time instead of retrying pointlessly.
177
188
  - If a manual sync takes longer than the host action window, it continues in the background and updates the UI when it finishes or when a cancellation request stops it.
178
189
 
@@ -205,6 +216,7 @@ If you want the seeded `CEO` agent used in manual verification to opt into Codex
205
216
  - The published version is derived from the GitHub release tag rather than the committed `package.json` version.
206
217
  - Tags may be either `1.2.3` or `v1.2.3`; the workflow normalizes both to `1.2.3`.
207
218
  - During release, the package version is stamped from the tag before build and publish, and the built plugin manifest uses that same resolved version.
219
+ - After a successful publish, the workflow also commits that resolved version back into the checked-in `package.json` on the release target branch so the repository metadata stays in sync with npm.
208
220
  - The workflow is intended for npm trusted publishing through GitHub Actions OIDC, so no long-lived `NPM_TOKEN` secret is required when trusted publishing is configured correctly.
209
221
 
210
222
  ## License
package/dist/manifest.js CHANGED
@@ -435,7 +435,7 @@ var require2 = createRequire(import.meta.url);
435
435
  var packageJson = require2("../package.json");
436
436
  var DASHBOARD_WIDGET_CAPABILITY = "ui.dashboardWidget.register";
437
437
  var SCHEDULE_TICK_CRON = "* * * * *";
438
- var MANIFEST_VERSION = "0.2.3"?.trim() || typeof packageJson.version === "string" && packageJson.version.trim() || process.env.npm_package_version?.trim() || "0.0.0-dev";
438
+ var MANIFEST_VERSION = "0.3.1"?.trim() || typeof packageJson.version === "string" && packageJson.version.trim() || process.env.npm_package_version?.trim() || "0.0.0-dev";
439
439
  var manifest = {
440
440
  id: "paperclip-github-plugin",
441
441
  apiVersion: 1,
@@ -445,6 +445,7 @@ var manifest = {
445
445
  author: "\xC1lvaro S\xE1nchez-Mariscal",
446
446
  categories: ["connector", "ui"],
447
447
  capabilities: [
448
+ "ui.sidebar.register",
448
449
  "ui.page.register",
449
450
  DASHBOARD_WIDGET_CAPABILITY,
450
451
  "ui.detailTab.register",
@@ -453,6 +454,7 @@ var manifest = {
453
454
  "plugin.state.read",
454
455
  "plugin.state.write",
455
456
  "instance.settings.register",
457
+ "projects.read",
456
458
  "issues.read",
457
459
  "issues.create",
458
460
  "issues.update",
@@ -499,6 +501,21 @@ var manifest = {
499
501
  },
500
502
  ui: {
501
503
  slots: [
504
+ {
505
+ type: "page",
506
+ id: "paperclip-github-plugin-project-pull-requests-page",
507
+ displayName: "Pull Requests",
508
+ exportName: "GitHubSyncProjectPullRequestsPage",
509
+ routePath: "github-pull-requests"
510
+ },
511
+ {
512
+ type: "projectSidebarItem",
513
+ id: "paperclip-github-plugin-project-pull-requests-sidebar-item",
514
+ displayName: "Pull Requests",
515
+ exportName: "GitHubSyncProjectPullRequestsSidebarItem",
516
+ entityTypes: ["project"],
517
+ order: 40
518
+ },
502
519
  {
503
520
  type: "dashboardWidget",
504
521
  id: "paperclip-github-plugin-dashboard-widget",