Repository Lifecycle
After you connect a repository to Buzzbin, four maintenance actions become the most important over time:
- rotating or replacing the GitLab token
- switching the repository between active and inactive
- disconnecting or deleting the repository
- understanding webhook health and whether deliveries are still expected to work
This page explains the behavior of each one.
Who can do what
In practice:
- view repository details: organization members
- edit details, status, and rotate token:
ADMINandOWNER - delete or disconnect the repository:
OWNERonly
Rotating the GitLab token
If your Project Access Token expired, was revoked, leaked, or simply needs to be replaced, enter the new token in Repository Settings.
When a new token is saved, Buzzbin:
- re-validates the token
- refreshes the stored token hint and token-set timestamp
- repairs the webhook if that is needed
The UI does not show the full old or new token value. It only keeps a non-sensitive hint and the timestamp of the last token set or rotation.
What active and inactive mean
Each repository has an isActive state.
Active: Buzzbin processes relevant events normallyInactive: the connection remains in place, but webhook events are skipped for review work
Important detail: making a repository inactive does not necessarily remove the webhook. This is a soft product on/off switch, not a full disconnect from GitLab.
That makes inactive useful when:
- you want to pause reviews temporarily
- you want to stop usage without losing settings
- the repository is in maintenance or transition
Deleting or disconnecting a repository
Deleting a repository is stronger than marking it inactive:
- the repository connection is removed from the active product flow
- Buzzbin attempts to deregister the GitLab webhook as well
- from the user's point of view, this is the final disconnect action
If the webhook was already gone or GitLab is temporarily unreachable, Buzzbin still performs a best-effort cleanup. This is not meant to be a casual toggle, so use it only when you really want the connection removed.
Inactive vs delete
The short version:
inactive: soft pause for reviews, without losing the basic setup and without necessarily removing the webhookdelete: disconnect the repository and attempt to remove the webhook
If you only want reviews to stop for a while, inactive is usually the better choice. If you want the repository fully removed from Buzzbin's active flow, delete is the right action.
What webhook health means
Buzzbin does not rely only on the existence of a stored webhook ID. GitLab can temporarily disable a hook and still list it as present.
That is why Buzzbin keeps a separate webhook health status:
UNKNOWN: no health verdict has been recorded yetHEALTHY: deliveries are expected to work normallyDISABLED: GitLab has disabled the hook temporarilyMISSING: the hook is no longer present on the GitLab side
What happens when the webhook is unhealthy
Buzzbin does more than warn about DISABLED or MISSING hooks. It also tries to
repair them automatically.
In practice:
DISABLEDis usually repaired by re-enabling or re-asserting the hook settingsMISSINGis usually repaired by registering the webhook again
This repair is automatic and normally does not require a manual user action.
Useful signals in Repository Settings
The repository settings page helps you maintain the connection with fields such as:
- repository name
- repository URL
- stored token hint
- last token-set timestamp
- active/inactive status
- overall connection and webhook state
If reviews suddenly stop, this page plus Webhook Deliveries and Review Jobs is the right place to begin troubleshooting.
Common maintenance scenarios
The token expired
Rotate the token in GitLab and save the new value in Buzzbin.
You want reviews paused for a few weeks
Mark the repository inactive instead of deleting it.
The repository moved away or no longer uses Buzzbin
Delete the repository so the active connection and webhook can be cleaned up.
Reviews stopped silently
Check webhook health and the Webhook Deliveries page. The hook may have become disabled or missing on the GitLab side.