paperclip-github-plugin 0.3.6 → 0.4.0
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 +15 -7
- package/dist/manifest.js +1 -1
- package/dist/ui/index.js +412 -25
- package/dist/ui/index.js.map +3 -3
- package/dist/worker.js +64 -5
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -19,6 +19,7 @@ With this plugin, you can:
|
|
|
19
19
|
- import open GitHub issues into Paperclip without adding title prefixes or duplicate issues
|
|
20
20
|
- keep descriptions, labels, and status aligned with GitHub over time
|
|
21
21
|
- configure mappings and import defaults per Paperclip company
|
|
22
|
+
- on authenticated Paperclip deployments, choose exactly which company agents should receive the saved GitHub token as `GITHUB_TOKEN`
|
|
22
23
|
- run sync manually or on a schedule
|
|
23
24
|
- triage open pull requests from mapped Paperclip projects in a hosted queue
|
|
24
25
|
- give Paperclip agents native GitHub tools for issues, pull requests, CI, review threads, and org-level projects
|
|
@@ -28,6 +29,7 @@ With this plugin, you can:
|
|
|
28
29
|
The plugin adds a full in-host workflow instead of a one-off import script:
|
|
29
30
|
|
|
30
31
|
- a hosted settings page for GitHub auth, repository mappings, company defaults, and sync controls
|
|
32
|
+
- authenticated-only setup controls for Paperclip board access and company-scoped agent token propagation
|
|
31
33
|
- a dashboard widget that shows readiness, sync status, and last-run results
|
|
32
34
|
- saved sync diagnostics that let operators inspect the latest per-issue failures, raw errors, and suggested next steps
|
|
33
35
|
- 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
|
|
@@ -105,13 +107,14 @@ npx paperclipai plugin install --local "$PWD"
|
|
|
105
107
|
|
|
106
108
|
1. Open the plugin settings for **GitHub Sync** from inside the Paperclip company you want to configure.
|
|
107
109
|
2. Paste a GitHub token, validate it, and save it.
|
|
108
|
-
3. If the deployment
|
|
109
|
-
4.
|
|
110
|
-
5.
|
|
111
|
-
6.
|
|
112
|
-
7.
|
|
113
|
-
8.
|
|
114
|
-
9.
|
|
110
|
+
3. If the deployment is authenticated, connect Paperclip board access from the same settings page and complete the approval flow.
|
|
111
|
+
4. If the deployment is authenticated, choose which agents in the current company should receive the saved GitHub token as `GITHUB_TOKEN`.
|
|
112
|
+
5. Add one or more repository mappings for the current company.
|
|
113
|
+
6. For each mapping, either choose an existing GitHub-linked Paperclip project or enter the project name that should receive synced issues.
|
|
114
|
+
7. 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`.
|
|
115
|
+
8. Choose the automatic sync interval in minutes.
|
|
116
|
+
9. Save the settings and run the first manual sync.
|
|
117
|
+
10. Repeat inside other companies if they need their own mappings, defaults, board access, or agent token propagation.
|
|
115
118
|
|
|
116
119
|
Repository input accepts either `owner/repo` or `https://github.com/owner/repo`.
|
|
117
120
|
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.
|
|
@@ -152,6 +155,8 @@ The plugin is designed to avoid persisting raw credentials in plugin state.
|
|
|
152
155
|
|
|
153
156
|
- GitHub tokens saved through the UI are stored as Paperclip secret references.
|
|
154
157
|
- Paperclip board access tokens are also stored as per-company secret references.
|
|
158
|
+
- The settings UI also keeps lightweight non-secret identity labels for those saved connections, so later visits can still show who the shared GitHub token and company board access are connected as.
|
|
159
|
+
- On authenticated deployments, any selected propagation agents receive `GITHUB_TOKEN` as an agent env secret-ref binding that points at the same saved GitHub token secret instead of a copied raw token.
|
|
155
160
|
- The worker resolves those secret references at runtime instead of storing raw tokens in plugin state.
|
|
156
161
|
- On authenticated Paperclip deployments, sync is blocked until the relevant company has connected Paperclip board access.
|
|
157
162
|
|
|
@@ -183,10 +188,13 @@ The plugin exposes GitHub workflow tools to Paperclip agents, including:
|
|
|
183
188
|
|
|
184
189
|
When an agent posts a GitHub comment or review-thread reply through the plugin, the message includes a footer disclosing that it was created by a Paperclip AI agent and which model was used.
|
|
185
190
|
|
|
191
|
+
Current host caveat: on authenticated Paperclip deployments, the Paperclip host currently guards `GET /api/plugins/tools` and `POST /api/plugins/tools/execute` with board authentication before dispatching to any plugin worker. If an agent run does not have board access for the target company, GitHub Sync tool discovery and execution fail with `403 {"error":"Board access required"}` before this plugin's worker code runs.
|
|
192
|
+
|
|
186
193
|
## Troubleshooting
|
|
187
194
|
|
|
188
195
|
- If setup is reported as incomplete, confirm that a GitHub token has been saved or that `${PAPERCLIP_HOME:-~/.paperclip}/plugins/github-sync/config.json` contains `githubToken`, and make sure at least one mapping has a created Paperclip project.
|
|
189
196
|
- If Paperclip says board access is required, open plugin settings inside the affected company and complete the Paperclip board access flow before retrying sync.
|
|
197
|
+
- If GitHub Sync agent tools fail with `403 {"error":"Board access required"}` on `/api/plugins/tools` or `/api/plugins/tools/execute`, the current Paperclip host rejected the request before the plugin worker ran. Re-run from a board-authenticated session or agent run that has board access to the target company.
|
|
190
198
|
- 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.
|
|
191
199
|
- 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.
|
|
192
200
|
- 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.
|
package/dist/manifest.js
CHANGED
|
@@ -503,7 +503,7 @@ var require2 = createRequire(import.meta.url);
|
|
|
503
503
|
var packageJson = require2("../package.json");
|
|
504
504
|
var DASHBOARD_WIDGET_CAPABILITY = "ui.dashboardWidget.register";
|
|
505
505
|
var SCHEDULE_TICK_CRON = "* * * * *";
|
|
506
|
-
var MANIFEST_VERSION = "0.
|
|
506
|
+
var MANIFEST_VERSION = "0.4.0"?.trim() || typeof packageJson.version === "string" && packageJson.version.trim() || process.env.npm_package_version?.trim() || "0.0.0-dev";
|
|
507
507
|
var manifest = {
|
|
508
508
|
id: "paperclip-github-plugin",
|
|
509
509
|
apiVersion: 1,
|