Commit graph

2582 commits

Author SHA1 Message Date
Joey Orlando
5cc9d5441f
include note about docker-compose rabbitmq version bump 2023-07-04 15:49:30 -04:00
Joey Orlando
f5495ed702
add first multi-role e2e tests (#2417)
# What this PR does

Lays ground work for #1586. Adds three new fixtures, `adminRolePage`,
`editorRolePage`, and `viewerRolePage`. These fixtures can be easily
accessed in a `test` context and allow the test to be run as a user
authenticated with one of these Grafana basic roles.

The bulk of the changes in the PR are to the "global setup" step. There
is a bit of logic + communication with the Grafana instance's API, in
order to create all the necessary authentication credentials.

Lastly, adds the first basic role authorization test, asserting that
Admin/Editors can view the list of OnCall users, whereas Viewers cannot.

## Checklist

- [x] Unit, integration, and e2e (if applicable) tests updated
- [ ] Documentation added (or `pr:no public docs` PR label added if not
required)
- [ ] `CHANGELOG.md` updated (or `pr:no changelog` PR label added if not
required)
2023-07-04 09:19:14 +00:00
Innokentii Konstantinov
44d0252ef1
Remove test push dynamic setting (#2416) 2023-07-04 15:01:30 +08:00
Vadim Stepanov
44e1bef250
Add full avatar URL for on-call users in schedule internal API (#2414)
# What this PR does

Adds full avatar URL for on-call users in schedule internal API
(`avatar_full`).

## 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)
2023-06-30 14:45:40 +01:00
Joey Orlando
97096b4663
update oss image build drone step 2023-06-30 11:20:16 +02:00
Michael Derynck
8a373fb9f1 Update CHANGELOG.md, merge main 2023-06-29 14:50:24 -06:00
Michael Derynck
8ea5f93719
Update CHANGELOG.md 2023-06-29 14:46:05 -06:00
Michael Derynck
2b81dfd8c3
Remove attempt to check token when editor/viewers are accessing the plugin (#2410)
# What this PR does
Remove attempt to check token when editor/viewers are accessing the
plugin. Only check the token for reinstall during sync from the
PluginConfigPage since only Admins would have access to it.

## Which issue(s) this PR fixes

## 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)
2023-06-29 14:17:02 -06:00
Vadim Stepanov
aa2bb81519
Simplify SlackEventApiEndpointView methods (#2384)
# What this PR does

Simplifies `_get_organization_from_payload` and
`_get_slack_team_identity_from_payload` methods on
`SlackEventApiEndpointView`, so it's (hopefully) easier to grasp.

## 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)
2023-06-29 16:23:33 +00:00
Yulya Artyukhina
04047c6ebe
Resolution notes endpoint docs (#2404)
# What this PR does
- Add docs for `/resolution_notes` public api endpoint
- Fix resolution notes order to show notes for the newest alert group on
top

## Which issue(s) this PR fixes
https://github.com/grafana/oncall/issues/222

## 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)
2023-06-29 14:08:21 +00:00
Joey Orlando
cc20c9dfdd
re-enable mypy GitHub Actions CI job (#2390)
# What this PR does

```bash
❯ mypy .
Success: no issues found in 595 source files
```

- re-enable the mypy CI check
- fixes all `django-manager-missing` mypy errors
- disable all other rules currently giving mypy errors
- changing the approach here. rather than enforcing that backend
contributors fix >= 1 `mypy` error on their PR, lets simply disable all
the rules that're currently returning errors and slowly re-enable these
one at a time #2392

## Checklist

- [ ] Unit, integration, and e2e (if applicable) tests updated (N/A)
- [ ] Documentation added (or `pr:no public docs` PR label added if not
required) (N/A)
- [ ] `CHANGELOG.md` updated (or `pr:no changelog` PR label added if not
required) (N/A)
2023-06-29 14:01:52 +00:00
Joey Orlando
c705bded9f
add back "/v8" suffix to linux/arm64 platform 2023-06-29 15:45:12 +02:00
github-actions[bot]
6d2b51bb1c
Merge: Release oncall Helm chart 1.3.2 (#2399)
Merge this PR to `main` branch to start another [github actions
job](https://github.com/grafana/oncall/blob/dev/.github/workflows/helm_release.yml)
that will release the updated version of the chart (version: 1.3.2,
appVersion: v1.3.2) into `grafana/helm-charts` helm repository.

This PR was created automatically by this [github
action](https://github.com/grafana/oncall/blob/dev/.github/workflows/helm_release_pr.yml).

---------

Co-authored-by: GitHub Actions <actions@github.com>
Co-authored-by: Joey Orlando <joey.orlando@grafana.com>
2023-06-29 09:24:37 -04:00
Joey Orlando
323ab30fdd
use different drone plugin image to use docker buildx
for multiarch support
2023-06-29 15:14:13 +02:00
Yulya Artyukhina
cef9e0ac79
Fix alerts order in public api (#2402)
# What this PR does
Change alerts order in `/alert` public api endpoint

## Which issue(s) this PR fixes
https://github.com/grafana/oncall/issues/1031

## 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)
2023-06-29 12:52:30 +00:00
Joey Orlando
3c798f28d6
fix oss docker image build drone step 2023-06-29 14:16:47 +02:00
Joey Orlando
cb31ea4c6f
fix oss docker image build drone step 2023-06-29 14:16:17 +02:00
Joey Orlando
8c768f2a70
v1.3.2 2023-06-29 13:47:39 +02:00
Joey Orlando
952af0b36f
Update CHANGELOG.md 2023-06-29 07:42:36 -04:00
Michael Derynck
5b009563db
OnCall plugin use service accounts instead of api keys (#2385)
# What this PR does
Changes OnCall plugin to use service accounts and api tokens instead of
api keys. API keys will continue to work but if the plugin ever replaces
them it will use a service account instead. Previously this was thought
to be unnecessary but it was missing the case where the API key was
converted to a service account which it could no longer find when
searching the `/api/auth/keys` endpoint. That key would not be deleted
and it would conflict with a newly created one of the same name.

Now the behaviour is as follows: 
1. Anytime a new token is needed all API keys and tokens under the
service account matching the defined names will be deleted
2. A service account will be created named `sa-autogen-OnCall` if one
does not already exist
3. An api token will be created under that service account named
`OnCall`

## Which issue(s) this PR fixes
#1806 

## 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)

---------

Co-authored-by: Joey Orlando <joey.orlando@grafana.com>
2023-06-29 07:37:28 -04:00
Joey Orlando
228889f850
v1.3.4 2023-06-29 13:05:00 +02:00
Joey Orlando
8ff5af5e4a
update CHANGELOG 2023-06-29 13:01:59 +02:00
github-actions[bot]
753d0b4696
Merge: Release oncall Helm chart 1.3.3 (#2378)
Merge this PR to `main` branch to start another [github actions
job](https://github.com/grafana/oncall/blob/dev/.github/workflows/helm_release.yml)
that will release the updated version of the chart (version: 1.3.3,
appVersion: v1.3.3) into `grafana/helm-charts` helm repository.

This PR was created automatically by this [github
action](https://github.com/grafana/oncall/blob/dev/.github/workflows/helm_release_pr.yml).

---------

Co-authored-by: GitHub Actions <actions@github.com>
2023-06-29 06:58:51 -04:00
Joey Orlando
d2754ae64f
use docker buildx native multiarch image support (#2375)
# What this PR does

`docker buildx` natively supports multiarch builds. This means we no
longer need to have duplicate `docker build` Drone steps + there is no
longer a need for the manual "manifesting" step. This [blog
post](https://www.docker.com/blog/multi-arch-build-and-images-the-simple-way/)
from Docker perfectly summarizes the difference between what we do now
vs. what this PR would do.

This would also get rid of pushing `vX.Y.Z-{architecture}` tagged
images. These are redundant because modern `docker` clients can pull the
appropriate image for the host OS, from a multiarch image:
<img width="618" alt="Screenshot 2023-06-28 at 12 54 09"
src="https://github.com/grafana/oncall/assets/9406895/ce4cd0ef-b92e-4273-877d-a73818d9cc54">


## Checklist

- [ ] Unit, integration, and e2e (if applicable) tests updated (N/A)
- [ ] Documentation added (or `pr:no public docs` PR label added if not
required) (N/A)
- [ ] `CHANGELOG.md` updated (or `pr:no changelog` PR label added if not
required) (N/A)
2023-06-29 06:51:21 -04:00
Joey Orlando
aefaa84f28
update rabbitmq docker containers to v3.12.0 (#2359)
# What this PR does

Update `rabbitmq` Docker containers used in the `docker-compose` config
files, Drone pipelines, and GitHub Actions to use version 3.12.0.

FWIW, we're already using v12.0.0 of the bitnami `rabbitmq` `helm` chart
which, by default, uses the `3.12.0-debian-11-r0` tag for the `rabbitmq`
image ([chart
docs](https://artifacthub.io/packages/helm/bitnami/rabbitmq/12.0.0)).

closes #695 

## Checklist

- [ ] Unit, integration, and e2e (if applicable) tests updated (N/A)
- [ ] Documentation added (or `pr:no public docs` PR label added if not
required) (N/A)
- [ ] `CHANGELOG.md` updated (or `pr:no changelog` PR label added if not
required) (N/A)
2023-06-29 06:49:00 -04:00
Joey Orlando
60ef4450e6
in the e2e tests, await the grafana instance if it is currently down/unavailable (#2366)
# What this PR does

In the e2e tests, await the grafana instance if it is currently
down/unavailable. This is mostly useful for when the tests are run
against a hosted grafana instance and it is possible that the instance
is paused ([example
build](https://drone.grafana.net/grafana/oncall-private/5735/1/4)).

https://www.loom.com/share/35eb49035d454ac6ba306cddfe63f255

## Checklist

- [ ] Unit, integration, and e2e (if applicable) tests updated (N/A)
- [ ] Documentation added (or `pr:no public docs` PR label added if not
required) (N/A)
- [ ] `CHANGELOG.md` updated (or `pr:no changelog` PR label added if not
required) (N/A)
2023-06-29 06:48:23 -04:00
Vadim Stepanov
3ebfd9c8b2
Remove outdated Slack functionality to create alerts (#2383)
# What this PR does

There's an outdated Slack handler that creates alerts when a file is
shared in a channel. I can't remember why it was introduced in the first
place, but I'm pretty sure that it's deprecated a long time ago, and
this feature is not documented anywhere. The PR also removes
`AlertReceiveChannel.integration_slack_channel_id` as it's no longer
used.

## 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)
2023-06-29 10:09:02 +00:00
Vadim Stepanov
be4176b947
Make OrderedModel.save() respect additional arguments (#2382)
# What this PR does

Make `OrderedModel.save()` respect additional arguments (e.g. `using`)

## 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)
2023-06-28 14:53:48 +00:00
Innokentii Konstantinov
03663ea319 Update CHANGELOG.md 2023-06-28 17:52:17 +08:00
Innokentii Konstantinov
5c37aeb0b9 Update CHANGELOG.md 2023-06-28 17:51:13 +08:00
Innokentii Konstantinov
f13a059e03
Merge pull request #2373 from grafana/dev
Dev to main
2023-06-28 17:48:44 +08:00
Joey Orlando
ffd6aac400
mock package.json version for plugin configuration tests (#2370) 2023-06-28 17:18:37 +08:00
Rares Mardare
43d1f607f0
Fix for #2357 (#2372)
# What this PR does

#2357
2023-06-28 12:12:12 +03:00
Yulya Artyukhina
f1fcb41fb4
Add "user_was_notified_of_alert_groups" metric (#2334)
This PR adds new metric for Prometheus exporter
"user_was_notified_of_alert_groups" which counts how many alert groups
user was notified of.

## 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)

---------

Co-authored-by: Joey Orlando <joey.orlando@grafana.com>
2023-06-28 08:15:19 +00:00
Ildar Iskhakov
cb2351d17d
Merge pull request #2368 from grafana/dev
v1.3.2
2023-06-28 09:50:10 +08:00
Ildar Iskhakov
8f5441b4c6
Update CHANGELOG.md 2023-06-28 09:41:45 +08:00
Vadim Stepanov
3fafcb43b1
Fix 404 link for schedule quality (#2358)
Fixes https://github.com/grafana/oncall/issues/2357

Old link (404):
https://grafana.com/docs/oncall/latest/calendar-schedules/web-schedule/#schedule-quality-report
New link:
https://grafana.com/docs/oncall/latest/on-call-schedules/web-schedule/#schedule-quality-report
2023-06-27 11:50:16 +00:00
Joey Orlando
75028d0427
continue addressing mypy violations (#2170)
# What this PR does

See #2173 

Also, closes #2187 . All of the new files under `type_stubs/icalendar`
were autogenerated by running:

```bash
stubgen -p icalendar -o type_stubs
```

## Checklist

- [ ] Unit, integration, and e2e (if applicable) tests updated
- [ ] Documentation added (or `pr:no public docs` PR label added if not
required)
- [ ] `CHANGELOG.md` updated (or `pr:no changelog` PR label added if not
required)
2023-06-27 10:23:08 +00:00
Rares Mardare
951a2a5d45
Use correct slack key/display_name in templates (#2352)
Slack was prior to this using the wrong key to display the name of the
template
2023-06-27 12:31:54 +03:00
Joey Orlando
f75747ac23
For "You're Going OnCall" push notifications, show shift times in the user's configured timezone, otherwise UTC (#2351)
# Which issue(s) this PR fixes

closes #2350

## Checklist

- [x] Unit, integration, and e2e (if applicable) tests updated
- [ ] Documentation added (or `pr:no public docs` PR label added if not
required) (N/A)
- [x] `CHANGELOG.md` updated (or `pr:no changelog` PR label added if not
required)
2023-06-27 05:59:54 +00:00
Ildar Iskhakov
065cc9343a
Show 100000+ in stats when there are more than 100000 alert groups in the result (#1901)
# What this PR does

## Which issue(s) this PR fixes

## Checklist

- [ ] Unit, integration, and e2e (if applicable) tests updated
- [ ] Documentation added (or `pr:no public docs` PR label added if not
required)
- [ ] `CHANGELOG.md` updated (or `pr:no changelog` PR label added if not
required)
2023-06-27 02:58:16 +00:00
Ildar Iskhakov
e265bade4f
Refactor docs for the new integrations page (#2290)
# What this PR does

## Which issue(s) this PR fixes

## Checklist

- [ ] Unit, integration, and e2e (if applicable) tests updated
- [ ] Documentation added (or `pr:no public docs` PR label added if not
required)
- [ ] `CHANGELOG.md` updated (or `pr:no changelog` PR label added if not
required)

---------

Co-authored-by: Joey Orlando <joey.orlando@grafana.com>
2023-06-27 09:57:27 +08:00
Michael Derynck
dd713bac55
Change permissions used for finishing plugin setup (#2242)
Fixes issue where user not having `plugins:install`permission were
unable to complete setup of OnCall.

- Check multiple Grafana permissions to complete OnCall setup instead of
`plugins:install` since the plugin is already installed at this point
- Use the following permissions
  - `plugins:write` - Plugin setup will write to plugin config
- `users:read` - Grafana API key being granted to OnCall will be used to
read users from Grafana
- `teams:read` - Grafana API key being granted to OnCall will be used to
read teams from Grafana
- `apikeys:create` - If Grafana API key does not exist it will be
created
- `apikeys:delete` - If existing Grafana API key does not work it will
be deleted and recreated

Closes https://github.com/grafana/oncall-private/issues/1925

TODO:
- [x] Fix tests
2023-06-26 22:22:13 +00:00
Matias Bordese
493544cd7f
Merge pull request #2348 from grafana/helm-release/1.3.1
Merge: Release oncall Helm chart 1.3.1
2023-06-26 15:12:51 -03:00
GitHub Actions
bf6a4adde4 Release oncall Helm chart 1.3.1 2023-06-26 17:27:46 +00:00
Matias Bordese
a0befe98fd
Merge pull request #2346 from grafana/dev
v1.3.1
2023-06-26 14:26:39 -03:00
Matias Bordese
d23e2f44da
Update CHANGELOG.md 2023-06-26 14:12:52 -03:00
Vadim Stepanov
1203b615c9
Fix phone call & SMS relay (#2345)
# What this PR does

Fix incorrect order of arguments for phone provider method invocations
when relaying phone calls and SMS from OSS instances.

## 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)
2023-06-26 16:09:21 +00:00
Matias Bordese
f4eb2bbf2e
Remove unused prefetch_related in metrics task (#2343)
The `prefecth_related` data here is not being used later (since we are
applying filters not getting `.all`) and it is preloading all alert
groups for integrations into memory (which can be a lot).
2023-06-26 14:12:10 +00:00
github-actions[bot]
0268d7d3f1
Merge: Release oncall Helm chart 1.3.0 (#2342)
Merge this PR to `main` branch to start another [github actions
job](https://github.com/grafana/oncall/blob/dev/.github/workflows/helm_release.yml)
that will release the updated version of the chart (version: 1.3.0,
appVersion: v1.3.0) into `grafana/helm-charts` helm repository.

This PR was created automatically by this [github
action](https://github.com/grafana/oncall/blob/dev/.github/workflows/helm_release_pr.yml).

Co-authored-by: GitHub Actions <actions@github.com>
2023-06-26 09:58:30 -04:00