@engineeros/connector 1.37.0 → 1.40.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 +26 -0
- package/bin/engineeros-connector.mjs +212 -192
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -344,6 +344,24 @@ Unknown runtime failures may use one read-only LLM diagnosis per run through the
|
|
|
344
344
|
|
|
345
345
|
Verification results are cached per commit and role. Completed checks are reused. An interrupted check requires inspection before a new revision; it is not automatically billed again. Existing workers must load the new connector code before these protections apply.
|
|
346
346
|
|
|
347
|
+
## Integrations: GitHub, GitLab, Jira, Linear and monday.com
|
|
348
|
+
|
|
349
|
+
EngineerOS holds no credentials for these services and none of them calls EngineerOS. When EngineerOS needs one (pull request review, Goal pull requests, repository import, backlog triage, filing defects in Linear), it asks the connector, which makes the call with this machine's own sign-in and sends back only the answer.
|
|
350
|
+
|
|
351
|
+
```sh
|
|
352
|
+
engineeros-connector integrations # what this machine is signed in to
|
|
353
|
+
gh auth login # GitHub, through the GitHub CLI
|
|
354
|
+
glab auth login # GitLab, through the GitLab CLI
|
|
355
|
+
engineeros-connector connect linear # prompts for a Linear API key
|
|
356
|
+
engineeros-connector connect jira --site https://acme.atlassian.net --email you@acme.com
|
|
357
|
+
engineeros-connector connect monday # prompts for a monday.com API token
|
|
358
|
+
engineeros-connector disconnect linear # removes the key from this machine
|
|
359
|
+
```
|
|
360
|
+
|
|
361
|
+
The GitHub and GitLab CLIs need not be installed beforehand. **Install** beside the machine in Admin → Integrations, or `connect github` / `connect gitlab` here, has the connector download the release it pins (GitHub CLI 2.102.0, GitLab CLI 1.120.0) from the vendor's own release page, refuse it unless it matches the SHA-256 recorded in `src/integration-install.mjs`, and unpack it into `~/.engineeros/tools/<tool>/<version>`. Only the connector uses that copy, and only when the tool is not already on PATH; nothing is installed system-wide. Then sign in: **Sign in** beside the machine in Admin → Integrations starts the CLI's own device sign-in here (`gh auth login --web`, `glab auth login --device`) and shows its one-time code and page in EngineerOS. Whoever approves the code becomes the machine's GitHub or GitLab identity, so only the machine's owner can start it; the CLI keeps the token in the system keyring, and an unapproved code is abandoned after 15 minutes. `gh auth login`, `glab auth login` or `connect github` / `connect gitlab` in a terminal work too.
|
|
362
|
+
|
|
363
|
+
A token is read without echo (or from stdin when piped), checked with the provider, and kept in the platform's protected store: Windows Data Protection, the macOS login Keychain, or the Linux Secret Service (install `secret-tool` and run a keyring such as GNOME Keyring). Sign-ins belong to the machine's user, so every workspace connected on the machine shares them. The running connector reads them on each request; no restart is needed. EngineerOS can ask only for the operations the connector lists (`src/integration-requests.mjs`), each with checked arguments, and answers travel back over the connector's authenticated HTTP channel.
|
|
364
|
+
|
|
347
365
|
## Optional tool and plugin inventory
|
|
348
366
|
|
|
349
367
|
Connector 1.7 advertises a curated candidate catalog alongside the operator-managed inventory. The catalog covers code intelligence, design, work management, source control, documentation, research, API development, browser testing, quality and security, data, infrastructure, observability and development environments. Candidate entries are metadata only: they are not installed, authenticated, admitted, started or exposed to coding agents.
|
|
@@ -387,6 +405,14 @@ Manifests are strict internal JSON configuration with these required fields:
|
|
|
387
405
|
|
|
388
406
|
At most 16 providers may be registered per workspace even though the read-only catalog is larger. Local files must be regular files (resolve symlinks before registration). Inspection compares installed package metadata and entrypoint bytes; it does not verify the entire dependency tree. Local version/hash mismatches and unavailable files report preparation actions. Registered HTTPS providers may use connector-managed OAuth: open **Tools and plugins**, choose **Sign in**, and complete consent in the browser opened on the connected machine. The connector follows MCP authorization discovery, uses PKCE with a loopback callback, and advertises only status, scopes and expiry. Windows protects the credential payload with current-user DPAPI outside the repository; unsupported platform keychains fail closed. Sign out deletes the local credential but does not remove the provider registration. MCP protocol, runtime and index health remain unchecked until a provider pilot implements them. Every entry remains execution-disabled, even if authentication succeeds. Launch paths, endpoints, tokens, authorization codes and raw file errors are excluded from advertised inventory. Do not put secrets in labels, URLs, descriptions or evidence references.
|
|
389
407
|
|
|
408
|
+
## Implement designed test cases
|
|
409
|
+
|
|
410
|
+
In **Quality → Test design**, select cases marked **To automate**, choose **Generate automated tests**, and review the resulting testing Goal. Mark it ready and run it with the connected coding agent. The Goal freezes the selected case definitions and uses the repository's existing framework. Test design shows progress and links back to the same Goal for retries or revisions.
|
|
411
|
+
|
|
412
|
+
Include exactly one designed case reference in each implemented test name, such as `TC-SIGN-001 rejects a wrong password` or Python's `test_TC_SIGN_001_wrong_password`. The frozen test command must produce per-case JUnit XML inside the workspace. The connector collects that measured report and the committed repository inventory; a comment containing the reference or an aggregate pass count does not establish coverage. Tests must have real assertions and be active and passing. QA then reviews whether the assertions implement the case's steps and expected results before the case becomes **Automated**.
|
|
413
|
+
|
|
414
|
+
Use connector 1.40.0 with backend migration `20261015_000132`. If verification says the per-case report or inventory is missing, correct the reporting command or connector and continue through the existing Goal. Work and failed measurements are preserved. Delete the implementation Goal only when intentionally starting over; repeated selections reuse its ownership.
|
|
415
|
+
|
|
390
416
|
## Record CI test results
|
|
391
417
|
|
|
392
418
|
Your CI can record each test suite's results in EngineerOS, where they sit beside manual and scheduled results on the project's Quality page, link to the test inventory, and open or resolve defects. No pairing is needed. Have your test runner write JUnit XML (pytest `--junitxml`, Vitest `--reporter=junit`, `jest-junit`, Playwright's `junit` reporter, `node --test --test-reporter=junit`, Maven Surefire, `go-junit-report`, `dotnet test --logger junit`), then run this after the tests, also when they failed:
|