Connect Your First Provider¶
This guide walks you through connecting an SCM provider, creating a project, adding a service, and verifying that data flows into SerOps.
Overview¶
The end-to-end flow for getting data into SerOps is:
graph LR
A[Add Integration] --> B[Create Project]
B --> C[Add Service]
C --> D[Configure Webhook]
D --> E[First Batch Appears]
Step 1: Add an Integration¶
Integrations store your SCM credentials once and let you reuse them across all projects.
- Navigate to Integrations
- Click Add Integration
-
Select your provider type:
Provider Credential Type Required Scope GitLab Personal Access Token apiGitHub Personal Access Token repo,read:orgAzure DevOps Personal Access Token Code (Read),Build (Read)Bitbucket App Password repository:read,pipeline:read -
Enter a descriptive Name (e.g., "Company GitLab")
- Paste your access token
- Click Save
Tip
Use a dedicated service account for the access token rather than a personal account. This avoids token invalidation when team members leave.
Step 2: Create a Project¶
- Navigate to Projects
- Click + New Project
- Enter a Project Name (e.g., "Payment Service")
-
Configure Environments -- toggle on the environments you use (development, staging, production) and set branch patterns:
Environment Example Pattern Production main, master, release/*Staging staging, release-candidate/*Development develop, dev, feature/* -
Click Create
Step 3: Add a Service Using the Integration¶
- Open your newly created project
- Click + Add Service
- Toggle "Use Global Integration" ON
- Select your saved integration from the dropdown
- Enter the Project ID (GitLab) or Repository (GitHub, e.g.,
owner/repo-name) -
Click Verify to test the connection
Verification Success
If verification succeeds, you will see a green checkmark and the repository name.
Verification Fails
- Confirm the access token has the required scopes
- Confirm the Project ID or repository name is correct
- Check that the token has not expired
-
Click Add Service
Step 4: Configure the Webhook¶
Webhooks provide real-time updates when code is pushed or pipelines complete.
Each CI/CD binding gets its own unique webhook URL and auto-generated secret. You can either use automatic setup or configure manually.
Automatic Setup (Recommended)¶
- Navigate to your service's CI/CD binding
- Click Setup Webhook (or call
POST /api/projects/cicd-bindings/{id}/setup-webhook/) - SerOps registers the webhook URL and secret with the provider automatically (GitLab, GitHub, Bitbucket)
Note: Jenkins and Azure DevOps require manual configuration — the setup action returns the URL and token for you to configure manually.
GitLab (Manual)¶
- In SerOps, navigate to your service's CI/CD binding and copy the Webhook URL and Secret Token
- URL format:
https://your-serops.com/api/webhooks/gitlab/{binding_id}/ - In GitLab, go to your project's Settings > Webhooks
- Paste the URL and Secret Token
- Enable the following triggers:
- Push events
- Pipeline events
- Job events
- Click Add webhook
GitHub (Manual)¶
- In SerOps, navigate to your service's CI/CD binding and copy the Webhook URL and Secret
- URL format:
https://your-serops.com/api/webhooks/github/{binding_id}/ - In GitHub, go to your repository's Settings > Webhooks > Add webhook
- Set Payload URL to the binding-specific webhook URL
- Set Content type to
application/json - Set Secret to the auto-generated secret
- Select events:
- Pushes
- Workflow runs
- Click Add webhook
Automatic Background Sync
Even without webhooks, SerOps automatically syncs recent deployments every 10 minutes using your access token. Webhooks provide faster, real-time updates but are not strictly required.
Step 5: Configure Your Data Collection Agents¶
Before batches can appear, your log shippers and metric exporters must tag every record with the correct enrichment fields (organisation, project, service, environment). SerOps uses these fields to query and filter data from your providers.
See Configure Data Collection Agents for the full field reference and agent configuration examples for Fluentd, Filebeat, Logstash, Promtail, Datadog Agent, and more.
Step 6: Verify Your First Batch¶
Once data starts flowing:
- Navigate to the Analyses page
- You should see your first batch appear within the configured
BATCH_GENERATION_INTERVAL(default: 60 seconds) - The batch will show:
- Environment badge (Production, Staging, or Development)
- Number of log entries included
- AI analysis status (pending, analyzing, or complete)
Note
The first batch may take a few minutes to appear, depending on:
- Whether logs exist in your log storage provider for the registered service
- The batch generation interval
- Whether any deployments or code changes have been detected
Troubleshooting¶
| Symptom | Likely Cause | Resolution |
|---|---|---|
| No batches appear | Service name mismatch | Ensure the service_name in your logs matches the registered service name exactly |
| No deployments shown | Token scope insufficient | Verify the access token has api scope (GitLab) or repo scope (GitHub) |
| Webhook not firing | URL unreachable | Ensure your SerOps instance is accessible from the SCM provider's network |
| "Unknown" status | Database naming | Check the Troubleshooting page for database table name issues |
Next Steps¶
- Configure Data Collection Agents -- set up log shippers and metric exporters with the required enrichment fields
- Set Up Infrastructure Services -- add databases, caches, and other infrastructure
- Compare AI Models -- analyze batches with different AI models
- Configure Quiet Hours -- suppress notifications during off-hours