Appearance
GitLab Issues for Agents
SafeCall’s GitLab project holds work items created by the bug collector and manual issues. Use this page when planning or fixing a GitLab issue from Cursor.
Ariadne / Theseus program (inventory, milestones, work-item map): Ariadne and Theseus inventory, roadmap, operator actions. Do not attach those items to the Keryx public launch milestone.
Project
| Field | Value |
|---|---|
| Host | https://gitlab.com |
| Path | sourcecontrollers/safecall |
| API base | https://gitlab.com/api/v4 |
| Git remote name | origin |
| Remote URL | git@gitlab.com:sourcecontrollers/safecall.git |
Human URLs:
- Work item:
https://gitlab.com/sourcecontrollers/safecall/-/work_items/<iid> - Issue:
https://gitlab.com/sourcecontrollers/safecall/-/issues/<iid>
The iid is the number users mean by #35. Bug-collector issues often include server_id, local_bug_id, and a screenshot in the description.
Auth (no token in the repo)
The project is private. A working token lives only on the update host in the bug-collector env file (never commit it):
/home/thomas/bug-collector/bug-collector.env
Relevant vars: GITLAB_TOKEN, GITLAB_PROJECT_ID (usually sourcecontrollers/safecall), optional GITLAB_API_URL.
Fetch one issue
Run from a machine that can SSH to mnew.ssh. Do not print the token.
bash
IID=35 # replace
ssh -o BatchMode=yes -o ConnectTimeout=8 mnew.ssh "bash -s" <<EOF
set -euo pipefail
set -a
. /home/thomas/bug-collector/bug-collector.env
set +a
API_URL="\${GITLAB_API_URL:-https://gitlab.com/api/v4}"
API_URL="\${API_URL%/}"
ENCODED=\$(python3 -c 'import urllib.parse,os; print(urllib.parse.quote(os.environ["GITLAB_PROJECT_ID"], safe=""))')
curl -sS --header "PRIVATE-TOKEN: \$GITLAB_TOKEN" \
"\$API_URL/projects/\$ENCODED/issues/${IID}"
EOFUseful follow-ups:
text
GET /projects/:id/issues/:iid/notesScreenshot paths in the description look like /uploads/<hash>/filename.png. Prefer using title, description text, and metadata JSON over downloading images unless the UI region is unclear.
Commit and close
After implementing an issue, commit with a closing keyword GitLab recognizes, then push to origin:
bash
git commit -m "$(cat <<'EOF'
Add custom sensor chart time range.
Closes #35
EOF
)"
git push origin HEADRepo conventions already in history: Closes #N, Fix #N, Fixes #N, Refs #N. Prefer Closes #N for completed work items and Fixes #N / Fix #N for bug fixes.
Agent checklist
- Resolve
#N→ fetch issue JSON viamnew.ssh+ collector env (above). - Plan from title, description, kind, and metadata (
document_title, capture region, versions). - Implement and validate (typecheck / tests for touched components).
- On user request to commit: include
Closes #N(orFixes #N) and pushorigin.