You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs(gitlab): hide internal inputs, trim setup.md, default ref to main
Customer-facing surface cleanup before GA:
* gitlab/templates/review.yml: change droid_action_ref default from
"dev" to "main" so customers who don't set it track stable.
Description annotated 'Internal: most users leave at the default'.
* docs/gitlab-setup.md: drop droid_action_ref, droid_action_repo,
stage from the Inputs table — they're for self-hosted GitLab
mirrors / advanced overrides, not standard customer config.
* docs/gitlab-setup.md: drop everything from 'How it works' onward
(How it works, What's not yet supported, Troubleshooting,
Self-hosted GitLab). Those belong in deeper docs / runbooks; the
setup page should be exactly setup.
* docs/gitlab-setup.md: drop the 'pin to a release tag (e.g. v1)'
advice — droid-action doesn't tag yet, and the @main URL pin is
the canonical pattern.
* gitlab/examples/.gitlab-ci.example.yml: drop droid_action_ref from
the inputs block + drop the same line from the optional fill
snippet. Update the comment to just explain the @main pin.
* gitlab/examples/README.md: drop the 'custom stage' reference now
that stage isn't documented as a user-facing knob.
The hidden inputs still exist in the template with sensible defaults,
so air-gapped customers mirroring droid-action can still override
droid_action_repo or pin droid_action_ref to a private SHA — they just
aren't part of the documented surface.
Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
| `automatic_review` | `"true"` | Run code review automatically on every MR pipeline. |
75
-
| `automatic_security_review` | `"false"` | Run a parallel security-focused subagent on every MR pipeline. Findings are prefixed `[security]` and posted alongside code-review comments. |
| `security_block_on_high` | `"false"` | Block merge on HIGH security findings. (Mirrors GitHub action; surface-level parity.) |
82
-
| `settings` | `""` | Droid Exec settings as a JSON string or a path to a JSON file. Merged into `~/.factory/droid/settings.json` before each `droid exec` call. |
83
-
| `droid_action_repo` | `https://github.com/Factory-AI/droid-action.git` | Override if you mirror droid-action privately. |
84
-
| `droid_action_ref` | `"dev"` | Git ref of droid-action to clone at runtime. Should match the `include: remote:` URL ref. |
85
-
| `stage` | `"test"` | GitLab CI stage to assign the `droid-review` job to. |
| `automatic_review` | `"true"` | Run code review automatically on every MR pipeline. |
72
+
| `automatic_security_review` | `"false"` | Run a parallel security-focused subagent on every MR pipeline. Findings are prefixed `[security]` and posted alongside code-review comments. |
| `security_block_on_high` | `"false"` | Block merge on HIGH security findings. (Mirrors GitHub action; surface-level parity.) |
79
+
| `settings` | `""` | Droid Exec settings as a JSON string or a path to a JSON file. Merged into `~/.factory/droid/settings.json` before each `droid exec` call. |
86
80
87
81
## What you get
88
82
@@ -99,57 +93,3 @@ Each MR pipeline produces:
99
93
- **A custom droid library** copied from
100
94
`$DROID_ACTION_DIR/.factory/droids`into `~/.factory/droids` on the
101
95
runner, so subagents like `security-reviewer` are reachable.
102
-
103
-
## How it works
104
-
105
-
The pipeline runs in two passes:
106
-
107
-
1. **Pass 1 (candidates)** — Droid Exec reads the MR diff, description, and
108
-
existing comments, then writes `/tmp/droid-prompts/review_candidates.json`
109
-
with candidate findings. The security-reviewer subagent runs in parallel
110
-
if `automatic_security_review` is on. **No MR mutations** happen in this
111
-
pass — the MR-write tools are excluded from `--enabled-tools`.
112
-
2. **Pass 2 (validator)** — Droid Exec rereads the candidates, filters out
113
-
duplicates and low-confidence findings, and batches all approved comments
114
-
into a single `gitlab_mr___submit_review` call. The sticky note is
115
-
updated via `gitlab_mr___update_tracking_note`.
116
-
117
-
A small GitLab MCP server (`src/mcp/gitlab-mr-server.ts`) is launched on
118
-
the runner to expose those two write tools.
119
-
120
-
## What's not yet supported
121
-
122
-
These exist in the GitHub action but require platform features GitLab
123
-
does not currently expose, and are not part of Phase 1:
| Pipeline runs but no comments posted | `GITLAB_TOKEN` not set or missing `api` scope | Add a masked `GITLAB_TOKEN` CI/CD variable with `api`-scoped PAT |
138
-
| `Could not find file` on include | `droid_action_ref` doesn't exist in `Factory-AI/droid-action` | Verify the ref; pin to a stable tag |
139
-
| `factory_api_key is required` error | `FACTORY_API_KEY` not set or scoped wrong | Add as **masked**, **unprotected** variable at the right level (project / subgroup / top-level group) |
140
-
| Sticky note posts but inline findings missing | Pass 2 hit a transient API error | Inspect `.droid-debug/prompts/pass2-output.jsonl`; re-run the pipeline |
141
-
| Pipeline times out | Very large MR | Set `review_depth: "shallow"` for faster feedback |
142
-
143
-
## Self-hosted GitLab
144
-
145
-
The component reads `CI_API_V4_URL` and `CI_SERVER_URL` from the standard
146
-
GitLab CI environment. Self-managed GitLab works as long as your runner
147
-
can:
148
-
149
-
- Reach `https://app.factory.ai/cli` to install the Droid CLI
150
-
- Reach `https://github.com/Factory-AI/droid-action.git` (or your private
151
-
mirror, via `droid_action_repo`)
152
-
- Reach `https://raw.githubusercontent.com/...` for the `include: remote:`
153
-
154
-
Mirror droid-action internally and set `droid_action_repo` + `droid_action_ref`
0 commit comments