Docs / GitLab Integration

GitLab Integration

Included in Pro

Connect Pyckle to GitLab to index issues and merge requests in real-time. Search your backlog alongside your code.

Set Up Issue & MR Indexing

1

Get your webhook URL

GitLab webhooks use a different endpoint from GitHub:

https://pyckle.co/webhooks/gitlab/YOUR_API_KEY/issues
2

Add the webhook in GitLab

Go to your project → Settings → Webhooks:

  • URL: your webhook URL from step 1
  • Secret token: generate a random string (you'll add it to Fly)
  • Trigger: check "Issues events" and "Merge request events"
  • SSL verification: enabled
3

Set webhook secret on Fly

fly secrets set -a pyckle GITLAB_WEBHOOK_SECRET=
4

Bulk-import existing issues (optional)

Webhooks only index new events. To import your existing backlog, use the MCP tool directly:

index_git_issues( platform="gitlab", project_id="group/project", # e.g. "myorg/backend" state="all", max_issues=500 )
5

Verify indexing

search_code("authentication bug MR")

Results from GitLab issues and MRs appear tagged with source: "git" and issue_kind: "mr" or "issue".

Self-Hosted GitLab

Pyckle supports self-hosted GitLab instances. Set the GITLAB_URL environment variable to your instance URL:

fly secrets set -a pyckle GITLAB_URL="https://gitlab.yourcompany.com"

If your instance requires a private token for API access:

fly secrets set -a pyckle GITLAB_TOKEN="glpat_xxxx"

Troubleshooting

Webhook shows 403

The secret token in GitLab doesn't match GITLAB_WEBHOOK_SECRET on Fly. Re-run fly secrets set.

MRs indexed but issues missing

Check that "Issues events" is checked in the GitLab webhook settings — it's a separate checkbox from "Merge request events".

index_git_issues returns 0 results on self-hosted

Ensure GITLAB_URL is set to your base URL (not the API path) and GITLAB_TOKEN has at least Reporter access to the project.