Ibrahim Serdar Acikgoz
e99eba33ff
app/platform: move failover config initialization to platform ( #21281 )
2022-10-07 13:53:13 +03:00
Christopher Poile
5a4cac43a8
MM-47037 - Prepackage Calls v0.9.0 ( #21268 )
2022-10-06 18:23:30 -04:00
Scott Bishel
18f0cee454
update prepackaged boards to v7.4.0 ( #21206 )
...
Co-authored-by: Mattermod <mattermod@users.noreply.github.com >
2022-10-06 15:19:25 -06:00
Cass C
8edb8157f1
prepackage Playbooks v1.32.4 ( #21267 )
2022-10-06 16:51:15 -03:00
Alejandro García Montoro
70c74fc10d
MM-47374: Revert full text search ( #21233 )
...
* Revert "MM-46871: Add remining search parameters to be escaped (#20963 )"
This reverts commit 8797bfcde7 .
* Revert "MM-46503: Escape incorrect pg user search query (#20863 )"
This reverts commit 8fd1762c3b .
* Revert "MM-44576 autocomplete names including utf 8 chars (#20367 )"
This reverts commit 8444c45959 .
2022-10-06 17:02:20 +02:00
Ibrahim Serdar Acikgoz
10655a2eb3
fix a data race in the platform service ( #21242 )
2022-10-06 14:14:03 +03:00
Ibrahim Serdar Acikgoz
5e69c6b02f
Move cluster, webhub and store out of Server ( #20899 )
2022-10-06 11:04:21 +03:00
Michel Engelen
203df2f537
removed feature flag for Advanced Text Editor ( #21221 )
2022-10-05 21:38:34 +02:00
Azanul Haque
e599a6cbf3
Mm 46416 add default random message ( #21176 )
...
Automatic Merge
2022-10-04 12:52:09 +03:00
Nick Misasi
069049db03
Fix delinquency emails ( #21029 )
...
* attempt to fix delinquency emails in gmail
* fix
* More fix
2022-10-03 14:16:43 -04:00
Nathaniel Allred
7186689f54
Mm 46065 ( #20893 )
...
* if thread is archived, allow the archived time to be returned instead of throwing an error
2022-09-30 13:20:26 -05:00
Ben Cooke
76386df998
[MM-24461] Show last active time of users when not online ( #19126 )
...
* tools updates
* Revert "tools updates"
This reverts commit 6293297b55803c5a263e200ebd80192899666ae9.
* new config EnableLastActiveTime
Co-authored-by: Benjamin Cooke <benjamincooke@Benjamins-MacBook-Pro.local >
Co-authored-by: Benjamin Cooke <benjamincooke@Benjamins-MBP.ht.home >
Co-authored-by: Mattermod <mattermod@users.noreply.github.com >
2022-09-30 13:11:34 -04:00
Alejandro García Montoro
635cea19c7
MM-46105: Simplify posts batch retrieval query ( #21149 )
...
In MySQL, tested in Community, times for the old and new queries are
mostly the same:
- Original : 6 s 250 ms (execution: 258 ms, fetching: 5 s 992 ms)
- New : 6 s 148 ms (execution: 148 ms, fetching: 6 s)
The output from EXPLAIN in Community is also similar for both queries:
- Original:
| id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |
|----|-------------|------------|------------|--------|------------------------|------------------------|---------|----------------------|---------|----------|-----------------------|
| 1 | PRIMARY | <derived2> | | ALL | | | | | 10000 | 100.00 | Using filesort |
| 1 | PRIMARY | Channels | | eq_ref | PRIMARY | PRIMARY | 106 | PostsQuery.ChannelId | 1 | 100.00 | |
| 2 | DERIVED | Posts | | range | idx_posts_create_at_id | idx_posts_create_at_id | 115 | | 3108048 | 100.00 | Using index condition |
- New:
| id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |
|----|-------------|----------|------------|--------|------------------------|------------------------|---------|----------------------------|---------|----------|-----------------------|
| 1 | SIMPLE | Posts | | range | idx_posts_create_at_id | idx_posts_create_at_id | 115 | | 3108050 | 100.00 | Using index condition |
| 1 | SIMPLE | Channels | | eq_ref | PRIMARY | PRIMARY | 106 | mattermost.Posts.ChannelId | 1 | 100.00 | |
In Postgres 12, this was tested locally with a 12M posts database, in a
machine with the following specs:
- CPU: i7-11800H (8C / 16T, 2.3 / 4.6GHz, 24MB)
- Memory: 32GB
- Storage: 1TB SSD M.2 2280 PCIe 4.0x4 Performance NVMe Opal2
The times of the queries in this setup are:
- Original query : 118.080 ms
- New query : 94.454 ms
The complete output from EXPLAIN ANALYZE in Postgres 12:
- Original query:
mattermost=> EXPLAIN ANALYZE
SELECT PostsQuery.*, Channels.TeamId
FROM (
SELECT *
FROM
Posts
WHERE Posts.CreateAt > 1629244800000
OR (Posts.CreateAt = 1629244800000 AND Posts.Id > '')
ORDER BY CreateAt ASC, Id ASC
LIMIT 10000
) AS PostsQuery
LEFT JOIN Channels ON PostsQuery.ChannelId = Channels.Id
ORDER BY CreateAt ASC, Id ASC;
QUERY PLAN
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Sort (cost=156636.28..156661.28 rows=10000 width=375) (actual time=114.093..114.833 rows=10000 loops=1)
Sort Key: posts.createat, posts.id
Sort Method: external merge Disk: 3128kB
-> Hash Right Join (cost=136335.48..155971.89 rows=10000 width=375) (actual time=67.919..107.330 rows=10000 loops=1)
Hash Cond: ((channels.id)::text = (posts.channelid)::text)
-> Seq Scan on channels (cost=0.00..10902.68 rows=272168 width=28) (actual time=0.018..28.826 rows=272168 loops=1)
-> Hash (cost=135721.48..135721.48 rows=10000 width=374) (actual time=40.141..40.144 rows=10000 loops=1)
Buckets: 16384 Batches: 2 Memory Usage: 2244kB
-> Limit (cost=135596.48..135621.48 rows=10000 width=374) (actual time=36.799..38.169 rows=10000 loops=1)
-> Sort (cost=135596.48..135704.93 rows=43380 width=374) (actual time=30.641..31.699 rows=10000 loops=1)
Sort Key: posts.createat, posts.id
Sort Method: external merge Disk: 18840kB
-> Bitmap Heap Scan on posts (cost=827.91..132497.48 rows=43380 width=374) (actual time=1.856..8.630 rows=54398 loops=1)
Recheck Cond: ((createat > '1629244800000'::bigint) OR (createat = '1629244800000'::bigint))
Filter: ((createat > '1629244800000'::bigint) OR ((createat = '1629244800000'::bigint) AND ((id)::text > ''::text)))
Heap Blocks: exact=2674
-> BitmapOr (cost=827.91..827.91 rows=43380 width=0) (actual time=1.660..1.661 rows=0 loops=1)
-> Bitmap Index Scan on idx_posts_create_at (cost=0.00..801.78 rows=43379 width=0) (actual time=1.657..1.657 rows=54398 loops=1)
Index Cond: (createat > '1629244800000'::bigint)
-> Bitmap Index Scan on idx_posts_create_at (cost=0.00..4.44 rows=1 width=0) (actual time=0.002..0.002 rows=0 loops=1)
Index Cond: (createat = '1629244800000'::bigint)
Planning Time: 0.230 ms
JIT:
Functions: 14
Options: Inlining false, Optimization false, Expressions true, Deforming true
Timing: Generation 0.562 ms, Inlining 0.000 ms, Optimization 0.320 ms, Emission 5.863 ms, Total 6.745 ms
Execution Time: 118.080 ms
(27 rows)
- New query:
mattermost=> EXPLAIN ANALYZE
SELECT Posts.*, Channels.TeamId
FROM
Posts
LEFT JOIN Channels ON Posts.ChannelId = Channels.Id
WHERE Posts.CreateAt > 1629244800000
OR (Posts.CreateAt = 1629244800000 AND Posts.Id > '')
ORDER BY Posts.CreateAt ASC, Posts.Id ASC
LIMIT 10000;
QUERY PLAN
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
Limit (cost=148443.93..149610.68 rows=10000 width=375) (actual time=83.610..92.492 rows=10000 loops=1)
-> Gather Merge (cost=148443.93..152661.73 rows=36150 width=375) (actual time=74.409..82.975 rows=10000 loops=1)
Workers Planned: 2
Workers Launched: 2
-> Sort (cost=147443.91..147489.10 rows=18075 width=375) (actual time=64.325..64.629 rows=3436 loops=3)
Sort Key: posts.createat, posts.id
Sort Method: external merge Disk: 5992kB
Worker 0: Sort Method: external merge Disk: 7144kB
Worker 1: Sort Method: external merge Disk: 7152kB
-> Parallel Hash Left Join (cost=12336.48..146152.66 rows=18075 width=375) (actual time=42.908..51.116 rows=18133 loops=3)
Hash Cond: ((posts.channelid)::text = (channels.id)::text)
-> Parallel Bitmap Heap Scan on posts (cost=827.91..132054.64 rows=18075 width=374) (actual time=2.448..5.417 rows=18133 loops=3)
Recheck Cond: ((createat > '1629244800000'::bigint) OR (createat = '1629244800000'::bigint))
Filter: ((createat > '1629244800000'::bigint) OR ((createat = '1629244800000'::bigint) AND ((id)::text > ''::text)))
Heap Blocks: exact=902
-> BitmapOr (cost=827.91..827.91 rows=43380 width=0) (actual time=2.111..2.112 rows=0 loops=1)
-> Bitmap Index Scan on idx_posts_create_at (cost=0.00..801.78 rows=43379 width=0) (actual time=2.105..2.105 rows=54398 loops=1)
Index Cond: (createat > '1629244800000'::bigint)
-> Bitmap Index Scan on idx_posts_create_at (cost=0.00..4.44 rows=1 width=0) (actual time=0.004..0.005 rows=0 loops=1)
Index Cond: (createat = '1629244800000'::bigint)
-> Parallel Hash (cost=9315.03..9315.03 rows=113403 width=28) (actual time=29.928..29.929 rows=90723 loops=3)
Buckets: 65536 Batches: 8 Memory Usage: 2688kB
-> Parallel Seq Scan on channels (cost=0.00..9315.03 rows=113403 width=28) (actual time=5.378..16.495 rows=90723 loops=3)
Planning Time: 0.460 ms
JIT:
Functions: 46
Options: Inlining false, Optimization false, Expressions true, Deforming true
Timing: Generation 2.291 ms, Inlining 0.000 ms, Optimization 1.518 ms, Emission 23.827 ms, Total 27.636 ms
Execution Time: 94.454 ms
(29 rows)
2022-09-30 18:18:26 +02:00
Michael Kochell
15b5b1c191
Avoid counting top channel posts for posts made by plugins and OAuth apps ( #20943 )
...
* add from_integration prop to oauth posts to:
- oauth app posts
- plugin posts
- slash command responses
- incoming webhook posts
* tests
* include check for bot posts
* use from_plugin and from_oauth_app props
* fix test
* avoid counting top channel posts for posts made by plugins and oauth apps
2022-09-30 04:12:15 -04:00
şafak
3e4c44c478
Update Header with application/json ( #21047 )
2022-09-29 20:18:57 +02:00
cyrilzhang-mm
aee1600d49
[MM-42400] Prevent making groups with reserved names ( #21040 )
2022-09-29 09:23:27 -04:00
Mehran Poursadeghi
9da1f1ce43
Update user_store.go ( #20977 )
...
Automatic Merge
2022-09-29 09:57:07 +03:00
Ashish Kurmi
e1a5405049
ci: add minimum GitHub token permissions for workflows ( #20975 )
...
* ci: add minimum GitHub token permissions for workflows
Signed-off-by: Ashish Kurmi <akurmi@stepsecurity.io >
* removing actions and contents read permissions from codeql actions workflow
Signed-off-by: Ashish Kurmi <akurmi@stepsecurity.io >
Signed-off-by: Ashish Kurmi <akurmi@stepsecurity.io >
Co-authored-by: Mattermod <mattermod@users.noreply.github.com >
2022-09-29 06:13:07 +02:00
Vishal
f5f036d94b
[MM-44489] Cloud limits: enforcing files ( #20703 )
...
* Update last accessible file time
* Filter fileInfos
* Set inaccessible header
* Fix lint issue
* Fix lint issue
* Fix i18n
* add nil check
* Fix merge conflicts
* Add helper functions to clear out inaccessible files content
* Remove content for inaccessible files
* Fix typo
* wip
* Remove InaccessibleContent field, instead use Archived
* Add store tests
* Add tests
* Add separate funcs to ignore cloud limits
* Use separate query for MySql
* Use GetReplicaX
Co-authored-by: Mattermod <mattermod@users.noreply.github.com >
2022-09-28 12:52:53 -04:00
Orlando Romo
b9834a2fc2
[MM-42191]: Include deleted posts ( #19985 )
...
* MM-42191: Include deleted posts: Add includeDeleted query parameter for getPostsForChannel
* MM-42191: Fix error typo for includeDeleted query parameter
* MM-42191: Include deleted posts: Set permission error when deleted posts are requested by non system admins
* MM-42191: Include deleted posts: Refactor replyCountSubQuery and conditions when includeDeleted is not presented, refactor getRootPosts
* MM-42191: Include deleted posts: Refactor getRootPosts function along with skipFetchThreads and includeDeleted
* MM-42191: Include deleted posts: Rename includeDeleted to include_deleted param
* MM-42191: Include deleted posts: Fix failed posts unit tests
* MM-42191: Include deleted posts: Add missing include deleted option in multiple queries
* MM-42191: Include deleted posts: Add tests for include deleted option in TestGetPostsForChannel, TestGetPostsBefore, TestGetPostsAfter
* MM-42191: include deleted posts: Add tests cases for post store test
* MM-42191: Include deleted posts: Add extra unit test to ensure not returning deleted posts when IncludeDelete is false
Co-authored-by: Mattermod <mattermod@users.noreply.github.com >
2022-09-27 14:00:42 -04:00
Zef Hemel
1d8bb0605c
Merge pull request #21126 from weblate/weblate-mattermost-mattermost-server_master
...
Translations update from Mattermost Weblate
2022-09-27 11:57:12 +02:00
MArtin Johnson
fcfdadf106
Translated using Weblate (Swedish)
...
Currently translated at 100.0% (2382 of 2382 strings)
Translation: mattermost-languages-shipped/mattermost-server
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-server_master/sv/
2022-09-26 18:03:47 +02:00
master7
963643fd6c
Translated using Weblate (Polish)
...
Currently translated at 100.0% (2382 of 2382 strings)
Translation: mattermost-languages-shipped/mattermost-server
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-server_master/pl/
2022-09-26 18:03:47 +02:00
kaakaa
1690286e6b
Translated using Weblate (Japanese)
...
Currently translated at 100.0% (2382 of 2382 strings)
Translation: mattermost-languages-shipped/mattermost-server
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-server_master/ja/
2022-09-26 18:03:46 +02:00
Matthew Williams
ec4df746ea
Translated using Weblate (English (Australia))
...
Currently translated at 100.0% (2381 of 2381 strings)
Translation: mattermost-languages-shipped/mattermost-server
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-server_master/en_AU/
2022-09-26 18:03:46 +02:00
Shivashis Padhi
2ea14ef395
[MM-47002] Fix new private channels not showing up in least active channels insights ( #21031 )
...
Automatic Merge
2022-09-23 17:12:24 +03:00
mattermod
943fa33f64
Update latest version to 7.3.0
2022-09-23 12:23:38 +00:00
Tim Scheuermann
ad0705bbca
MM-46990 Report correct import error ( #21025 )
2022-09-21 12:15:33 +02:00
Zef Hemel
6b4813899f
Merge pull request #21044 from weblate/weblate-mattermost-mattermost-server_master
...
Translations update from Mattermost Weblate
2022-09-21 11:46:45 +02:00
kaakaa
3df269f84e
Translated using Weblate (Japanese)
...
Currently translated at 100.0% (2381 of 2381 strings)
Translation: mattermost-languages-shipped/mattermost-server
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-server_master/ja/
2022-09-19 18:03:40 +02:00
Kaya Zeren
1d52250264
Translated using Weblate (Turkish)
...
Currently translated at 100.0% (2381 of 2381 strings)
Translation: mattermost-languages-shipped/mattermost-server
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-server_master/tr/
2022-09-19 18:03:40 +02:00
Tom De Moor
a94d2141da
Translated using Weblate (Dutch)
...
Currently translated at 100.0% (2381 of 2381 strings)
Translation: mattermost-languages-shipped/mattermost-server
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-server_master/nl/
2022-09-19 18:03:39 +02:00
Mattermod
1a5ecfa957
Update minor version to 7.4.0 ( #21033 )
...
Automatic Merge
2022-09-15 16:29:09 +03:00
Vishal
44011db725
Add a semaphore ( #21027 )
2022-09-15 13:38:16 +05:30
Agniva De Sarker
a8154ddae0
MM-38698: Add limit to the CLI compliance export command ( #20997 )
...
```release-note
A batchSize option has been added to the mattermost export
CLI command to limit the number of items exported. By default,
if it is not included, it exports all the posts.
```
https://mattermost.atlassian.net/browse/MM-38698
Co-authored-by: Mattermod <mattermod@users.noreply.github.com >
2022-09-15 08:46:43 +05:30
Said Atrahouch
4f363574fc
Merge pull request #21005 from mattermost/MM-45580-notify-admin-delinquency-update-billing
...
[MM-45580] Send deliquency since to end users and allow new notify ad…
2022-09-14 12:13:06 +02:00
Agniva De Sarker
c5d7ac0876
MM-46604: Fix racy access to session props ( #20996 )
...
The core mistake was that the webconn doesn't really go out of scope
once the connection disconnects. It is kept in the webhub connIndex
to be reconnected if the user connects again. This was the new
behavior as part of reliable websockets.
Therefore, it was a mistake to return the session to the pool
once the connection drops. Because the connection would still
recieve events from the web_hub.
And once you release the session, another login might acquire the
session and set some props, while the web_hub might still try
to send events to it, which will cause a read of the map prop.
The following test case illustrates such a race. It is very
hard to trigger it organically, hence I artificially wrote
the code.
The right fix is to release the session only when the connection
is stale and gets deleted from the conn index. The PR has been
load tested in `-race` mode just for extra sanity check.
```go
func TestHubSessionRace(t *testing.T) {
th := Setup(t).InitBasic()
defer th.TearDown()
s := httptest.NewServer(dummyWebsocketHandler(t))
defer s.Close()
th.Server.HubStart()
wc1 := registerDummyWebConn(t, th.App, s.Listener.Addr(), th.BasicUser.Id)
defer wc1.Close()
var wg sync.WaitGroup
wg.Add(2)
go func() {
defer wg.Done()
token := wc1.GetSessionToken()
// Return to pool after *WebConn.Pump finishes
wc1.App.Srv().userService.ReturnSessionToPool(wc1.GetSession())
// A new HTTP requests acquires a session which gets it from the pool
sess, _ := wc1.App.GetSession(token)
// Login happens which sets some session properties
sess.AddProp(model.SessionPropPlatform, "chrome")
}()
go func() {
defer wg.Done()
// Called from *WebConn.shouldSendEvent
t.Log("session: ", wc1.GetSession().Props[model.SessionPropIsGuest] == "true")
}()
wg.Wait()
}
```
https://mattermost.atlassian.net/browse/MM-46604
```release-note
NONE
```
2022-09-14 14:27:24 +05:30
Cass C
27cb087091
prepackage playbooks v1.32.3 ( #21019 )
2022-09-13 10:33:32 -04:00
Zef Hemel
fc867ea88c
Merge pull request #21017 from mattermost/weblate_220913
...
Weblate 220913
2022-09-13 14:54:35 +02:00
MArtin Johnson
75259215a2
Translated using Weblate (Swedish)
...
Currently translated at 100.0% (2381 of 2381 strings)
Translation: mattermost-languages-shipped/mattermost-server
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-server_master/sv/
Translated using Weblate (Swedish)
Currently translated at 98.4% (2341 of 2379 strings)
Translation: mattermost-languages-shipped/mattermost-server
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-server_master/sv/
2022-09-13 13:48:27 +02:00
master7
5408ed084b
Translated using Weblate (Polish)
...
Currently translated at 100.0% (2381 of 2381 strings)
Translation: mattermost-languages-shipped/mattermost-server
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-server_master/pl/
Translated using Weblate (Polish)
Currently translated at 100.0% (2379 of 2379 strings)
Translation: mattermost-languages-shipped/mattermost-server
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-server_master/pl/
2022-09-13 13:48:14 +02:00
Kaya Zeren
7b417ca26a
Translated using Weblate (Turkish)
...
Currently translated at 100.0% (2379 of 2379 strings)
Translation: mattermost-languages-shipped/mattermost-server
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-server_master/tr/
2022-09-13 13:48:08 +02:00
Hosted Weblate
d515a96a07
Update translation files
...
Updated by "Cleanup translation files" hook in Weblate.
Translation: mattermost-languages-shipped/mattermost-server
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-server_master/
2022-09-13 13:48:02 +02:00
jprusch
212efe18ca
Translated using Weblate (German)
...
Currently translated at 100.0% (2381 of 2381 strings)
Translation: mattermost-languages-shipped/mattermost-server
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-server_master/de/
Translated using Weblate (German)
Currently translated at 100.0% (2379 of 2379 strings)
Translation: mattermost-languages-shipped/mattermost-server
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-server_master/de/
Translated using Weblate (German)
Currently translated at 100.0% (2379 of 2379 strings)
Translation: mattermost-languages-shipped/mattermost-server
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-server_master/de/
2022-09-13 13:47:56 +02:00
Matthew Williams
afc372099b
Translated using Weblate (English (Australia))
...
Currently translated at 100.0% (2379 of 2379 strings)
Translation: mattermost-languages-shipped/mattermost-server
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-server_master/en_AU/
2022-09-13 13:47:40 +02:00
Tom De Moor
f4123ef584
Translated using Weblate (Dutch)
...
Currently translated at 99.2% (2364 of 2381 strings)
Translation: mattermost-languages-shipped/mattermost-server
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-server_master/nl/
Translated using Weblate (Dutch)
Currently translated at 99.4% (2366 of 2379 strings)
Translation: mattermost-languages-shipped/mattermost-server
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-server_master/nl/
Translated using Weblate (Dutch)
Currently translated at 99.0% (2356 of 2379 strings)
Translation: mattermost-languages-shipped/mattermost-server
Translate-URL: https://translate.mattermost.com/projects/mattermost/mattermost-server_master/nl/
2022-09-13 13:47:01 +02:00
Mattermod
99c9957fcf
Merge branch 'master' into MM-45580-notify-admin-delinquency-update-billing
2022-09-13 14:35:21 +03:00
Said Atrahouch
fb3b2a4f47
[MM-45580] Update with the typo the map
2022-09-13 13:13:35 +02:00
Said Atrahouch
aaabf71ceb
Update model/notify_admin.go
...
Co-authored-by: Maria A Nunez <maria.nunez@mattermost.com >
2022-09-13 13:06:04 +02:00
Zef Hemel
7fff071fee
Merge pull request #21003 from weblate/weblate-mattermost-mattermost-server_master
...
Translations update from Mattermost Weblate
2022-09-13 10:38:50 +02:00