Repositories
Repositories connect your Git providers to Pricore, enabling automatic package syncing when you push new tags or update branches.
Supported Providers
Pricore supports multiple Git providers:
| Provider | Features |
|---|---|
| GitHub | OAuth integration, webhooks, automatic sync |
| GitLab | OAuth integration, webhooks, self-hosted support |
| Bitbucket | OAuth integration, webhooks |
| Generic Git | Manual URL entry, SSH/HTTPS clone |
Connecting a Repository
Via OAuth (Recommended)
- Navigate to Repositories > Connect Repository
- Select your Git provider (GitHub, GitLab, or Bitbucket)
- Authorize Pricore to access your repositories
- Select the repository to connect
- Pricore automatically:
- Fetches
composer.jsonfrom the default branch - Creates a package with the discovered metadata
- Sets up webhooks for automatic syncing
- Fetches
Via URL (Generic Git)
For repositories not on supported OAuth providers:
- Navigate to Repositories > Add Repository
- Select "Generic Git"
- Enter the repository URL (HTTPS or SSH)
- Configure authentication if needed (deploy key or credentials)
- Manually trigger the initial sync
Repository Configuration
Sync Settings
| Setting | Description |
|---|---|
| Auto-sync | Automatically sync when webhooks are received |
| Sync branches | Include dev versions from branches |
| Branch filter | Only sync specific branches (e.g., main, develop) |
Webhook Configuration
For OAuth-connected repositories, webhooks are configured automatically. For manual setup:
GitHub:
URL: https://packages.yourcompany.com/webhooks/github/{repository-id}
Content-type: application/json
Events: Push, Create (tags)GitLab:
URL: https://packages.yourcompany.com/webhooks/gitlab/{repository-id}
Trigger: Push events, Tag push eventsBitbucket:
URL: https://packages.yourcompany.com/webhooks/bitbucket/{repository-id}
Events: Repository pushSync Status
Each repository shows its sync status:
| Status | Description |
|---|---|
| OK | Last sync completed successfully |
| Pending | Sync is queued or in progress |
| Failed | Last sync encountered an error |
Viewing Sync History
- Go to the repository page
- Click Sync History
- View logs for each sync attempt
Manual Sync
To manually trigger a sync:
- Go to the repository page
- Click Sync Now
- Pricore fetches all tags and branches, updating package versions
Repository Permissions
Repository actions require appropriate organization roles:
| Action | Required Role |
|---|---|
| View repositories | Member |
| Connect repository | Admin |
| Edit settings | Admin |
| Delete repository | Admin |
| Trigger manual sync | Admin |
Troubleshooting
Sync Failures
Common causes of sync failures:
- Invalid composer.json - Ensure your repository has a valid
composer.jsonat the root - Authentication issues - Re-authorize the OAuth connection
- Webhook delivery failed - Check your Git provider's webhook logs
- Rate limiting - Wait and retry, or check API limits
Missing Versions
If versions aren't appearing:
- Verify tags follow semver format (e.g.,
v1.0.0or1.0.0) - Check that
composer.jsonexists in the tagged commit - Trigger a manual sync
- Review sync logs for errors
Webhook Not Triggering
- Verify the webhook URL is correct
- Check that the webhook is active in your Git provider
- Ensure your Pricore instance is publicly accessible
- Review webhook delivery logs in your Git provider
Best Practices
- Use OAuth when possible - Automatic webhook setup and easier management
- Enable auto-sync - Keep packages updated without manual intervention
- Tag releases properly - Use semantic versioning for clear version history
- Monitor sync status - Check failed syncs promptly to avoid stale packages
- Secure webhooks - Use webhook secrets when available