Merge branch 'main' into feat/admin-api
# Conflicts: # crates/delta/src/routes/mod.rs
This commit is contained in:
30
.github/workflows/renovate.yml
vendored
Normal file
30
.github/workflows/renovate.yml
vendored
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
# DO NOT EDIT DIRECTLY IN REPOSITORY
|
||||||
|
# Managed in Terraform templates
|
||||||
|
|
||||||
|
name: Renovate
|
||||||
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
|
schedule:
|
||||||
|
- cron: '0/15 * * * *'
|
||||||
|
jobs:
|
||||||
|
renovate:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- id: app-token
|
||||||
|
uses: actions/create-github-app-token@v2
|
||||||
|
with:
|
||||||
|
app-id: ${{ secrets.GH_STOAT_RELEASE_APP_ID }}
|
||||||
|
private-key: ${{ secrets.GH_STOAT_RELEASE_APP_PRIVATE_KEY }}
|
||||||
|
|
||||||
|
- name: Setup Mise
|
||||||
|
uses: immich-app/devtools/actions/use-mise@7b8610a904d57da241e4ddba17fa62b62b15aed4 # use-mise-action-v2.0.2
|
||||||
|
with:
|
||||||
|
github_token: ${{ steps.app-token.outputs.token }}
|
||||||
|
|
||||||
|
- name: Self-hosted Renovate
|
||||||
|
uses: renovatebot/github-action@v46.1.14
|
||||||
|
with:
|
||||||
|
token: '${{ steps.app-token.outputs.token }}'
|
||||||
|
env:
|
||||||
|
RENOVATE_PLATFORM_COMMIT: 'enabled'
|
||||||
|
RENOVATE_REPOSITORIES: '${{ github.repository }}'
|
||||||
@@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
*️⃣
|
*️⃣
|
||||||
0️⃣
|
0️⃣
|
||||||
1️⃣
|
1️⃣
|
||||||
@@ -242,6 +241,7 @@
|
|||||||
🆘
|
🆘
|
||||||
🆙
|
🆙
|
||||||
🆚
|
🆚
|
||||||
|
🇦
|
||||||
🇦🇨
|
🇦🇨
|
||||||
🇦🇩
|
🇦🇩
|
||||||
🇦🇪
|
🇦🇪
|
||||||
@@ -259,6 +259,7 @@
|
|||||||
🇦🇼
|
🇦🇼
|
||||||
🇦🇽
|
🇦🇽
|
||||||
🇦🇿
|
🇦🇿
|
||||||
|
🇧
|
||||||
🇧🇦
|
🇧🇦
|
||||||
🇧🇧
|
🇧🇧
|
||||||
🇧🇩
|
🇧🇩
|
||||||
@@ -280,6 +281,7 @@
|
|||||||
🇧🇼
|
🇧🇼
|
||||||
🇧🇾
|
🇧🇾
|
||||||
🇧🇿
|
🇧🇿
|
||||||
|
🇨
|
||||||
🇨🇦
|
🇨🇦
|
||||||
🇨🇨
|
🇨🇨
|
||||||
🇨🇩
|
🇨🇩
|
||||||
@@ -301,6 +303,7 @@
|
|||||||
🇨🇽
|
🇨🇽
|
||||||
🇨🇾
|
🇨🇾
|
||||||
🇨🇿
|
🇨🇿
|
||||||
|
🇩
|
||||||
🇩🇪
|
🇩🇪
|
||||||
🇩🇬
|
🇩🇬
|
||||||
🇩🇯
|
🇩🇯
|
||||||
@@ -308,6 +311,7 @@
|
|||||||
🇩🇲
|
🇩🇲
|
||||||
🇩🇴
|
🇩🇴
|
||||||
🇩🇿
|
🇩🇿
|
||||||
|
🇪
|
||||||
🇪🇦
|
🇪🇦
|
||||||
🇪🇨
|
🇪🇨
|
||||||
🇪🇪
|
🇪🇪
|
||||||
@@ -317,12 +321,14 @@
|
|||||||
🇪🇸
|
🇪🇸
|
||||||
🇪🇹
|
🇪🇹
|
||||||
🇪🇺
|
🇪🇺
|
||||||
|
🇫
|
||||||
🇫🇮
|
🇫🇮
|
||||||
🇫🇯
|
🇫🇯
|
||||||
🇫🇰
|
🇫🇰
|
||||||
🇫🇲
|
🇫🇲
|
||||||
🇫🇴
|
🇫🇴
|
||||||
🇫🇷
|
🇫🇷
|
||||||
|
🇬
|
||||||
🇬🇦
|
🇬🇦
|
||||||
🇬🇧
|
🇬🇧
|
||||||
🇬🇩
|
🇬🇩
|
||||||
@@ -342,12 +348,14 @@
|
|||||||
🇬🇺
|
🇬🇺
|
||||||
🇬🇼
|
🇬🇼
|
||||||
🇬🇾
|
🇬🇾
|
||||||
|
🇭
|
||||||
🇭🇰
|
🇭🇰
|
||||||
🇭🇲
|
🇭🇲
|
||||||
🇭🇳
|
🇭🇳
|
||||||
🇭🇷
|
🇭🇷
|
||||||
🇭🇹
|
🇭🇹
|
||||||
🇭🇺
|
🇭🇺
|
||||||
|
🇮
|
||||||
🇮🇨
|
🇮🇨
|
||||||
🇮🇩
|
🇮🇩
|
||||||
🇮🇪
|
🇮🇪
|
||||||
@@ -359,10 +367,12 @@
|
|||||||
🇮🇷
|
🇮🇷
|
||||||
🇮🇸
|
🇮🇸
|
||||||
🇮🇹
|
🇮🇹
|
||||||
|
🇯
|
||||||
🇯🇪
|
🇯🇪
|
||||||
🇯🇲
|
🇯🇲
|
||||||
🇯🇴
|
🇯🇴
|
||||||
🇯🇵
|
🇯🇵
|
||||||
|
🇰
|
||||||
🇰🇪
|
🇰🇪
|
||||||
🇰🇬
|
🇰🇬
|
||||||
🇰🇭
|
🇰🇭
|
||||||
@@ -374,6 +384,7 @@
|
|||||||
🇰🇼
|
🇰🇼
|
||||||
🇰🇾
|
🇰🇾
|
||||||
🇰🇿
|
🇰🇿
|
||||||
|
🇱
|
||||||
🇱🇦
|
🇱🇦
|
||||||
🇱🇧
|
🇱🇧
|
||||||
🇱🇨
|
🇱🇨
|
||||||
@@ -385,6 +396,7 @@
|
|||||||
🇱🇺
|
🇱🇺
|
||||||
🇱🇻
|
🇱🇻
|
||||||
🇱🇾
|
🇱🇾
|
||||||
|
🇲
|
||||||
🇲🇦
|
🇲🇦
|
||||||
🇲🇨
|
🇲🇨
|
||||||
🇲🇩
|
🇲🇩
|
||||||
@@ -408,6 +420,7 @@
|
|||||||
🇲🇽
|
🇲🇽
|
||||||
🇲🇾
|
🇲🇾
|
||||||
🇲🇿
|
🇲🇿
|
||||||
|
🇳
|
||||||
🇳🇦
|
🇳🇦
|
||||||
🇳🇨
|
🇳🇨
|
||||||
🇳🇪
|
🇳🇪
|
||||||
@@ -420,7 +433,9 @@
|
|||||||
🇳🇷
|
🇳🇷
|
||||||
🇳🇺
|
🇳🇺
|
||||||
🇳🇿
|
🇳🇿
|
||||||
|
🇴
|
||||||
🇴🇲
|
🇴🇲
|
||||||
|
🇵
|
||||||
🇵🇦
|
🇵🇦
|
||||||
🇵🇪
|
🇵🇪
|
||||||
🇵🇫
|
🇵🇫
|
||||||
@@ -435,12 +450,15 @@
|
|||||||
🇵🇹
|
🇵🇹
|
||||||
🇵🇼
|
🇵🇼
|
||||||
🇵🇾
|
🇵🇾
|
||||||
|
🇶
|
||||||
🇶🇦
|
🇶🇦
|
||||||
|
🇷
|
||||||
🇷🇪
|
🇷🇪
|
||||||
🇷🇴
|
🇷🇴
|
||||||
🇷🇸
|
🇷🇸
|
||||||
🇷🇺
|
🇷🇺
|
||||||
🇷🇼
|
🇷🇼
|
||||||
|
🇸
|
||||||
🇸🇦
|
🇸🇦
|
||||||
🇸🇧
|
🇸🇧
|
||||||
🇸🇨
|
🇸🇨
|
||||||
@@ -462,6 +480,7 @@
|
|||||||
🇸🇽
|
🇸🇽
|
||||||
🇸🇾
|
🇸🇾
|
||||||
🇸🇿
|
🇸🇿
|
||||||
|
🇹
|
||||||
🇹🇦
|
🇹🇦
|
||||||
🇹🇨
|
🇹🇨
|
||||||
🇹🇩
|
🇹🇩
|
||||||
@@ -479,6 +498,7 @@
|
|||||||
🇹🇻
|
🇹🇻
|
||||||
🇹🇼
|
🇹🇼
|
||||||
🇹🇿
|
🇹🇿
|
||||||
|
🇺
|
||||||
🇺🇦
|
🇺🇦
|
||||||
🇺🇬
|
🇺🇬
|
||||||
🇺🇲
|
🇺🇲
|
||||||
@@ -486,6 +506,7 @@
|
|||||||
🇺🇸
|
🇺🇸
|
||||||
🇺🇾
|
🇺🇾
|
||||||
🇺🇿
|
🇺🇿
|
||||||
|
🇻
|
||||||
🇻🇦
|
🇻🇦
|
||||||
🇻🇨
|
🇻🇨
|
||||||
🇻🇪
|
🇻🇪
|
||||||
@@ -493,11 +514,15 @@
|
|||||||
🇻🇮
|
🇻🇮
|
||||||
🇻🇳
|
🇻🇳
|
||||||
🇻🇺
|
🇻🇺
|
||||||
|
🇼
|
||||||
🇼🇫
|
🇼🇫
|
||||||
🇼🇸
|
🇼🇸
|
||||||
|
🇽
|
||||||
🇽🇰
|
🇽🇰
|
||||||
|
🇾
|
||||||
🇾🇪
|
🇾🇪
|
||||||
🇾🇹
|
🇾🇹
|
||||||
|
🇿
|
||||||
🇿🇦
|
🇿🇦
|
||||||
🇿🇲
|
🇿🇲
|
||||||
🇿🇼
|
🇿🇼
|
||||||
|
|||||||
@@ -106,8 +106,8 @@ fn custom_openapi_spec() -> OpenApi {
|
|||||||
extensions.insert(
|
extensions.insert(
|
||||||
"x-logo".to_owned(),
|
"x-logo".to_owned(),
|
||||||
json!({
|
json!({
|
||||||
"url": "https://revolt.chat/header.png",
|
"url": "https://stoat.chat/header.png",
|
||||||
"altText": "Revolt Header"
|
"altText": "Stoat Header"
|
||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -115,7 +115,7 @@ fn custom_openapi_spec() -> OpenApi {
|
|||||||
"x-tagGroups".to_owned(),
|
"x-tagGroups".to_owned(),
|
||||||
json!([
|
json!([
|
||||||
{
|
{
|
||||||
"name": "Revolt",
|
"name": "Stoat",
|
||||||
"tags": [
|
"tags": [
|
||||||
"Core"
|
"Core"
|
||||||
]
|
]
|
||||||
@@ -196,18 +196,21 @@ fn custom_openapi_spec() -> OpenApi {
|
|||||||
OpenApi {
|
OpenApi {
|
||||||
openapi: OpenApi::default_version(),
|
openapi: OpenApi::default_version(),
|
||||||
info: Info {
|
info: Info {
|
||||||
title: "Revolt API".to_owned(),
|
title: "Stoat API".to_owned(),
|
||||||
description: Some("Open source user-first chat platform.".to_owned()),
|
description: Some("Open source user-first chat platform.".to_owned()),
|
||||||
terms_of_service: Some("https://revolt.chat/terms".to_owned()),
|
terms_of_service: Some("https://stoat.chat/terms".to_owned()),
|
||||||
contact: Some(Contact {
|
contact: Some(Contact {
|
||||||
name: Some("Revolt Support".to_owned()),
|
name: Some("Stoat".to_owned()),
|
||||||
url: Some("https://revolt.chat".to_owned()),
|
url: Some("https://stoat.chat".to_owned()),
|
||||||
email: Some("contact@revolt.chat".to_owned()),
|
email: Some("contact@stoat.chat".to_owned()),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
}),
|
}),
|
||||||
license: Some(License {
|
license: Some(License {
|
||||||
name: "AGPLv3".to_owned(),
|
name: "AGPLv3".to_owned(),
|
||||||
url: Some("https://github.com/stoatchat/stoatchat/blob/main/crates/delta/LICENSE".to_owned()),
|
url: Some(
|
||||||
|
"https://github.com/stoatchat/stoatchat/blob/main/crates/delta/LICENSE"
|
||||||
|
.to_owned(),
|
||||||
|
),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
}),
|
}),
|
||||||
version: env!("CARGO_PKG_VERSION").to_string(),
|
version: env!("CARGO_PKG_VERSION").to_string(),
|
||||||
@@ -215,24 +218,19 @@ fn custom_openapi_spec() -> OpenApi {
|
|||||||
},
|
},
|
||||||
servers: vec![
|
servers: vec![
|
||||||
Server {
|
Server {
|
||||||
url: "https://api.revolt.chat".to_owned(),
|
url: "https://api.stoat.chat".to_owned(),
|
||||||
description: Some("Revolt Production".to_owned()),
|
description: Some("Stoat Production".to_owned()),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
Server {
|
Server {
|
||||||
url: "https://revolt.chat/api".to_owned(),
|
url: "https://beta.stoat.chat/api".to_owned(),
|
||||||
description: Some("Revolt Staging".to_owned()),
|
description: Some("Stoat Beta".to_owned()),
|
||||||
..Default::default()
|
|
||||||
},
|
|
||||||
Server {
|
|
||||||
url: "http://local.revolt.chat:14702".to_owned(),
|
|
||||||
description: Some("Local Revolt Environment".to_owned()),
|
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
external_docs: Some(ExternalDocs {
|
external_docs: Some(ExternalDocs {
|
||||||
url: "https://developers.revolt.chat".to_owned(),
|
url: "https://developers.stoat.chat".to_owned(),
|
||||||
description: Some("Revolt Developer Documentation".to_owned()),
|
description: Some("Stoat Developer Documentation".to_owned()),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
}),
|
}),
|
||||||
extensions,
|
extensions,
|
||||||
@@ -247,19 +245,19 @@ fn custom_openapi_spec() -> OpenApi {
|
|||||||
Tag {
|
Tag {
|
||||||
name: "Core".to_owned(),
|
name: "Core".to_owned(),
|
||||||
description: Some(
|
description: Some(
|
||||||
"Use in your applications to determine information about the Revolt node"
|
"Use in your applications to determine information about the Stoat node"
|
||||||
.to_owned(),
|
.to_owned(),
|
||||||
),
|
),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
Tag {
|
Tag {
|
||||||
name: "User Information".to_owned(),
|
name: "User Information".to_owned(),
|
||||||
description: Some("Query and fetch users on Revolt".to_owned()),
|
description: Some("Query and fetch users on Stoat".to_owned()),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
Tag {
|
Tag {
|
||||||
name: "Direct Messaging".to_owned(),
|
name: "Direct Messaging".to_owned(),
|
||||||
description: Some("Direct message other users on Revolt".to_owned()),
|
description: Some("Direct message other users on Stoat".to_owned()),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
Tag {
|
Tag {
|
||||||
@@ -276,7 +274,7 @@ fn custom_openapi_spec() -> OpenApi {
|
|||||||
},
|
},
|
||||||
Tag {
|
Tag {
|
||||||
name: "Channel Information".to_owned(),
|
name: "Channel Information".to_owned(),
|
||||||
description: Some("Query and fetch channels on Revolt".to_owned()),
|
description: Some("Query and fetch channels on Stoat".to_owned()),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
Tag {
|
Tag {
|
||||||
@@ -306,7 +304,7 @@ fn custom_openapi_spec() -> OpenApi {
|
|||||||
},
|
},
|
||||||
Tag {
|
Tag {
|
||||||
name: "Server Information".to_owned(),
|
name: "Server Information".to_owned(),
|
||||||
description: Some("Query and fetch servers on Revolt".to_owned()),
|
description: Some("Query and fetch servers on Stoat".to_owned()),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
Tag {
|
Tag {
|
||||||
@@ -342,7 +340,7 @@ fn custom_openapi_spec() -> OpenApi {
|
|||||||
Tag {
|
Tag {
|
||||||
name: "Onboarding".to_owned(),
|
name: "Onboarding".to_owned(),
|
||||||
description: Some(
|
description: Some(
|
||||||
"After signing up to Revolt, users must pick a unique username".to_owned(),
|
"After signing up to Stoat, users must pick a unique username".to_owned(),
|
||||||
),
|
),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
@@ -354,7 +352,7 @@ fn custom_openapi_spec() -> OpenApi {
|
|||||||
Tag {
|
Tag {
|
||||||
name: "Web Push".to_owned(),
|
name: "Web Push".to_owned(),
|
||||||
description: Some(
|
description: Some(
|
||||||
"Subscribe to and receive Revolt push notifications while offline".to_owned(),
|
"Subscribe to and receive Stoat push notifications while offline".to_owned(),
|
||||||
),
|
),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -21,32 +21,26 @@ async fn main() -> Result<(), std::io::Error> {
|
|||||||
// Configure API schema
|
// Configure API schema
|
||||||
#[derive(OpenApi)]
|
#[derive(OpenApi)]
|
||||||
#[openapi(
|
#[openapi(
|
||||||
modifiers(&SecurityAddon),
|
paths(api::root, api::proxy, api::embed),
|
||||||
paths(
|
components(schemas(
|
||||||
api::root,
|
api::RootResponse,
|
||||||
api::proxy,
|
revolt_result::Error,
|
||||||
api::embed
|
revolt_result::ErrorType,
|
||||||
),
|
revolt_models::v0::ImageSize,
|
||||||
components(
|
revolt_models::v0::Image,
|
||||||
schemas(
|
revolt_models::v0::Video,
|
||||||
api::RootResponse,
|
revolt_models::v0::TwitchType,
|
||||||
revolt_result::Error,
|
revolt_models::v0::LightspeedType,
|
||||||
revolt_result::ErrorType,
|
revolt_models::v0::BandcampType,
|
||||||
revolt_models::v0::ImageSize,
|
revolt_models::v0::Special,
|
||||||
revolt_models::v0::Image,
|
revolt_models::v0::WebsiteMetadata,
|
||||||
revolt_models::v0::Video,
|
revolt_models::v0::Text,
|
||||||
revolt_models::v0::TwitchType,
|
revolt_models::v0::Embed
|
||||||
revolt_models::v0::LightspeedType,
|
))
|
||||||
revolt_models::v0::BandcampType,
|
|
||||||
revolt_models::v0::Special,
|
|
||||||
revolt_models::v0::WebsiteMetadata,
|
|
||||||
revolt_models::v0::Text,
|
|
||||||
revolt_models::v0::Embed
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)]
|
)]
|
||||||
struct ApiDoc;
|
struct ApiDoc;
|
||||||
|
|
||||||
|
#[allow(dead_code)]
|
||||||
struct SecurityAddon;
|
struct SecurityAddon;
|
||||||
|
|
||||||
impl Modify for SecurityAddon {
|
impl Modify for SecurityAddon {
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import type { ScalarOptions } from '@scalar/docusaurus';
|
|||||||
const config: Config = {
|
const config: Config = {
|
||||||
title: 'Stoat Developers',
|
title: 'Stoat Developers',
|
||||||
tagline: 'Developer documentation for Stoat',
|
tagline: 'Developer documentation for Stoat',
|
||||||
favicon: 'https://stoat.chat/favicon.svg',
|
favicon: 'https://stoat.chat/favicon-stoat.svg',
|
||||||
|
|
||||||
future: {
|
future: {
|
||||||
v4: true,
|
v4: true,
|
||||||
@@ -80,10 +80,10 @@ const config: Config = {
|
|||||||
respectPrefersColorScheme: true,
|
respectPrefersColorScheme: true,
|
||||||
},
|
},
|
||||||
navbar: {
|
navbar: {
|
||||||
title: 'Stoat Developers',
|
|
||||||
logo: {
|
logo: {
|
||||||
alt: 'Stoat',
|
alt: 'Stoat for Developers',
|
||||||
src: 'https://stoat.chat/favicon.svg',
|
src: '/img/navbar.light.svg',
|
||||||
|
srcDark: '/img/navbar.dark.svg'
|
||||||
},
|
},
|
||||||
items: [
|
items: [
|
||||||
{
|
{
|
||||||
|
|||||||
9
docs/static/img/navbar.dark.svg
vendored
Normal file
9
docs/static/img/navbar.dark.svg
vendored
Normal file
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 18 KiB |
22
docs/static/img/navbar.light.svg
vendored
Normal file
22
docs/static/img/navbar.light.svg
vendored
Normal file
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 19 KiB |
11
renovate.json
Normal file
11
renovate.json
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
|
||||||
|
"extends": [
|
||||||
|
"config:recommended"
|
||||||
|
],
|
||||||
|
"cloneSubmodules": true,
|
||||||
|
"cloneSubmodulesFilter": [
|
||||||
|
"*",
|
||||||
|
"!packages/client/assets"
|
||||||
|
]
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user