# What this PR does
Makes it possible to acknowledge/unacknowledge and resolve/unresolve
alert groups via public API, and makes sure these actions are reflected
properly in the alert group timeline.
## Demo
```bash
curl --request POST \
--header "Authorization: TOKEN" \
http://localhost:8080/api/v1/alert_groups/IQMHLV8INB24N/resolve
```
<img width="651" alt="Screenshot 2023-10-04 at 16 05 27"
src="https://github.com/grafana/oncall/assets/20116910/d4e66868-0132-4b6b-95c7-8424fced7c0b">
## Which issue(s) this PR fixes
https://github.com/grafana/oncall/issues/3051
## Checklist
- [x] Unit, integration, and e2e (if applicable) tests updated
- [x] Documentation added (or `pr:no public docs` PR label added if not
required)
- [x] `CHANGELOG.md` updated (or `pr:no changelog` PR label added if not
required)
|
||
|---|---|---|
| .. | ||
| __init__.py | ||
| alert.py | ||
| alert_group.py | ||
| alert_group_counter.py | ||
| alert_group_log_record.py | ||
| alert_manager_models.py | ||
| alert_receive_channel.py | ||
| channel_filter.py | ||
| custom_button.py | ||
| escalation_chain.py | ||
| escalation_policy.py | ||
| grafana_alerting_contact_point.py | ||
| invitation.py | ||
| maintainable_object.py | ||
| resolution_note.py | ||
| user_has_notification.py | ||