Compare commits
8
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7b18e983c9 | ||
|
|
c0e64c9052 | ||
|
|
0d54ccd342 | ||
|
|
d4d5b23c7d | ||
|
|
a641034895 | ||
|
|
9dd24526ef | ||
|
|
6d4f772d78 | ||
|
|
4c4dada3da |
@@ -57,7 +57,7 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
TEST_DB: REFERENCE
|
TEST_DB: REFERENCE
|
||||||
run: |
|
run: |
|
||||||
cargo run --bin revolt-delta &
|
cargo build --bin revolt-delta && (cargo run --bin revolt-delta &)
|
||||||
|
|
||||||
- name: Wait for API to go up
|
- name: Wait for API to go up
|
||||||
if: github.event_name != 'pull_request' && github.ref_name == 'master'
|
if: github.event_name != 'pull_request' && github.ref_name == 'master'
|
||||||
|
|||||||
Generated
+9
-9
@@ -3580,7 +3580,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "revolt-bonfire"
|
name = "revolt-bonfire"
|
||||||
version = "0.6.12"
|
version = "0.6.13"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"async-std",
|
"async-std",
|
||||||
"async-tungstenite",
|
"async-tungstenite",
|
||||||
@@ -3600,7 +3600,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "revolt-config"
|
name = "revolt-config"
|
||||||
version = "0.6.12"
|
version = "0.6.13"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"async-std",
|
"async-std",
|
||||||
"cached",
|
"cached",
|
||||||
@@ -3612,7 +3612,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "revolt-database"
|
name = "revolt-database"
|
||||||
version = "0.6.12"
|
version = "0.6.13"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"async-lock",
|
"async-lock",
|
||||||
"async-recursion",
|
"async-recursion",
|
||||||
@@ -3657,7 +3657,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "revolt-delta"
|
name = "revolt-delta"
|
||||||
version = "0.6.12"
|
version = "0.6.13"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"async-channel",
|
"async-channel",
|
||||||
"async-std",
|
"async-std",
|
||||||
@@ -3703,7 +3703,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "revolt-models"
|
name = "revolt-models"
|
||||||
version = "0.6.12"
|
version = "0.6.13"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"indexmap",
|
"indexmap",
|
||||||
"iso8601-timestamp 0.2.11",
|
"iso8601-timestamp 0.2.11",
|
||||||
@@ -3719,7 +3719,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "revolt-permissions"
|
name = "revolt-permissions"
|
||||||
version = "0.6.12"
|
version = "0.6.13"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"async-std",
|
"async-std",
|
||||||
"async-trait",
|
"async-trait",
|
||||||
@@ -3734,7 +3734,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "revolt-presence"
|
name = "revolt-presence"
|
||||||
version = "0.6.12"
|
version = "0.6.13"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"async-std",
|
"async-std",
|
||||||
"log",
|
"log",
|
||||||
@@ -3745,7 +3745,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "revolt-quark"
|
name = "revolt-quark"
|
||||||
version = "0.6.12"
|
version = "0.6.13"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"async-lock",
|
"async-lock",
|
||||||
"async-recursion",
|
"async-recursion",
|
||||||
@@ -3798,7 +3798,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "revolt-result"
|
name = "revolt-result"
|
||||||
version = "0.6.12"
|
version = "0.6.13"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"revolt_okapi",
|
"revolt_okapi",
|
||||||
"revolt_rocket_okapi",
|
"revolt_rocket_okapi",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "revolt-bonfire"
|
name = "revolt-bonfire"
|
||||||
version = "0.6.12"
|
version = "0.6.13"
|
||||||
license = "AGPL-3.0-or-later"
|
license = "AGPL-3.0-or-later"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
|
|
||||||
@@ -37,4 +37,4 @@ revolt-presence = { path = "../core/presence", features = ["redis-is-patched"] }
|
|||||||
sentry = "0.31.5"
|
sentry = "0.31.5"
|
||||||
|
|
||||||
# redis
|
# redis
|
||||||
fred = { version = "8.0.1", features = ["subscriber-client"] }
|
fred = { version = "8.0.1", features = ["subscriber-client"] }
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "revolt-config"
|
name = "revolt-config"
|
||||||
version = "0.6.12"
|
version = "0.6.13"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
license = "AGPL-3.0-or-later"
|
license = "AGPL-3.0-or-later"
|
||||||
authors = ["Paul Makles <me@insrt.uk>"]
|
authors = ["Paul Makles <me@insrt.uk>"]
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "revolt-database"
|
name = "revolt-database"
|
||||||
version = "0.6.12"
|
version = "0.6.13"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
license = "AGPL-3.0-or-later"
|
license = "AGPL-3.0-or-later"
|
||||||
authors = ["Paul Makles <me@insrt.uk>"]
|
authors = ["Paul Makles <me@insrt.uk>"]
|
||||||
@@ -23,11 +23,11 @@ default = ["mongodb", "async-std-runtime", "tasks"]
|
|||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
# Core
|
# Core
|
||||||
revolt-config = { version = "0.6.12", path = "../config" }
|
revolt-config = { version = "0.6.13", path = "../config" }
|
||||||
revolt-result = { version = "0.6.12", path = "../result" }
|
revolt-result = { version = "0.6.13", path = "../result" }
|
||||||
revolt-models = { version = "0.6.12", path = "../models" }
|
revolt-models = { version = "0.6.13", path = "../models" }
|
||||||
revolt-presence = { version = "0.6.12", path = "../presence" }
|
revolt-presence = { version = "0.6.13", path = "../presence" }
|
||||||
revolt-permissions = { version = "0.6.12", path = "../permissions", features = [
|
revolt-permissions = { version = "0.6.13", path = "../permissions", features = [
|
||||||
"serde",
|
"serde",
|
||||||
"bson",
|
"bson",
|
||||||
] }
|
] }
|
||||||
|
|||||||
@@ -0,0 +1,28 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"_object_type": "User",
|
||||||
|
"_id": "__ID:0__",
|
||||||
|
"username": "Owner",
|
||||||
|
"discriminator": "0001"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"_object_type": "User",
|
||||||
|
"_id": "__ID:1__",
|
||||||
|
"username": "Member",
|
||||||
|
"discriminator": "0001"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"_object_type": "User",
|
||||||
|
"_id": "__ID:2__",
|
||||||
|
"username": "Member",
|
||||||
|
"discriminator": "0002"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"_object_type": "Channel",
|
||||||
|
"_id": "__ID:3__",
|
||||||
|
"channel_type": "Group",
|
||||||
|
"name": "My Group",
|
||||||
|
"owner": "__ID:0__",
|
||||||
|
"recipients": ["__ID:0__", "__ID:1__"]
|
||||||
|
}
|
||||||
|
]
|
||||||
@@ -695,6 +695,32 @@ mod tests {
|
|||||||
|
|
||||||
use crate::{fixture, util::permissions::DatabasePermissionQuery};
|
use crate::{fixture, util::permissions::DatabasePermissionQuery};
|
||||||
|
|
||||||
|
#[async_std::test]
|
||||||
|
async fn permissions_group_channel() {
|
||||||
|
database_test!(|db| async move {
|
||||||
|
fixture!(db, "group_with_members",
|
||||||
|
owner user 0
|
||||||
|
member1 user 1
|
||||||
|
member2 user 2
|
||||||
|
channel channel 3);
|
||||||
|
|
||||||
|
let mut query = DatabasePermissionQuery::new(&db, &owner).channel(&channel);
|
||||||
|
assert!(calculate_channel_permissions(&mut query)
|
||||||
|
.await
|
||||||
|
.has_channel_permission(ChannelPermission::SendMessage));
|
||||||
|
|
||||||
|
let mut query = DatabasePermissionQuery::new(&db, &member1).channel(&channel);
|
||||||
|
assert!(calculate_channel_permissions(&mut query)
|
||||||
|
.await
|
||||||
|
.has_channel_permission(ChannelPermission::SendMessage));
|
||||||
|
|
||||||
|
let mut query = DatabasePermissionQuery::new(&db, &member2).channel(&channel);
|
||||||
|
assert!(!calculate_channel_permissions(&mut query)
|
||||||
|
.await
|
||||||
|
.has_channel_permission(ChannelPermission::SendMessage));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
#[async_std::test]
|
#[async_std::test]
|
||||||
async fn permissions_text_channel() {
|
async fn permissions_text_channel() {
|
||||||
database_test!(|db| async move {
|
database_test!(|db| async move {
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ use std::borrow::Cow;
|
|||||||
|
|
||||||
use revolt_permissions::{
|
use revolt_permissions::{
|
||||||
calculate_user_permissions, ChannelType, Override, PermissionQuery, PermissionValue,
|
calculate_user_permissions, ChannelType, Override, PermissionQuery, PermissionValue,
|
||||||
RelationshipStatus,
|
RelationshipStatus, DEFAULT_PERMISSION_DIRECT_MESSAGE,
|
||||||
};
|
};
|
||||||
|
|
||||||
use crate::{Channel, Database, Member, Server, User};
|
use crate::{Channel, Database, Member, Server, User};
|
||||||
@@ -209,7 +209,7 @@ impl PermissionQuery for DatabasePermissionQuery<'_> {
|
|||||||
match channel {
|
match channel {
|
||||||
Cow::Borrowed(Channel::Group { permissions, .. })
|
Cow::Borrowed(Channel::Group { permissions, .. })
|
||||||
| Cow::Owned(Channel::Group { permissions, .. }) => Override {
|
| Cow::Owned(Channel::Group { permissions, .. }) => Override {
|
||||||
allow: permissions.unwrap_or_default() as u64,
|
allow: permissions.unwrap_or(*DEFAULT_PERMISSION_DIRECT_MESSAGE as i64) as u64,
|
||||||
deny: 0,
|
deny: 0,
|
||||||
},
|
},
|
||||||
Cow::Borrowed(Channel::TextChannel {
|
Cow::Borrowed(Channel::TextChannel {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "revolt-models"
|
name = "revolt-models"
|
||||||
version = "0.6.12"
|
version = "0.6.13"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
license = "AGPL-3.0-or-later"
|
license = "AGPL-3.0-or-later"
|
||||||
authors = ["Paul Makles <me@insrt.uk>"]
|
authors = ["Paul Makles <me@insrt.uk>"]
|
||||||
@@ -18,8 +18,8 @@ default = ["serde", "partials"]
|
|||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
# Core
|
# Core
|
||||||
revolt-config = { version = "0.6.12", path = "../config" }
|
revolt-config = { version = "0.6.13", path = "../config" }
|
||||||
revolt-permissions = { version = "0.6.12", path = "../permissions" }
|
revolt-permissions = { version = "0.6.13", path = "../permissions" }
|
||||||
|
|
||||||
# Utility
|
# Utility
|
||||||
regex = "1"
|
regex = "1"
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "revolt-permissions"
|
name = "revolt-permissions"
|
||||||
version = "0.6.12"
|
version = "0.6.13"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
license = "AGPL-3.0-or-later"
|
license = "AGPL-3.0-or-later"
|
||||||
authors = ["Paul Makles <me@insrt.uk>"]
|
authors = ["Paul Makles <me@insrt.uk>"]
|
||||||
@@ -21,7 +21,7 @@ async-std = { version = "1.8.0", features = ["attributes"] }
|
|||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
# Core
|
# Core
|
||||||
revolt-result = { version = "0.6.5", path = "../result" }
|
revolt-result = { version = "0.6.13", path = "../result" }
|
||||||
|
|
||||||
# Utility
|
# Utility
|
||||||
auto_ops = "0.3.0"
|
auto_ops = "0.3.0"
|
||||||
|
|||||||
@@ -111,7 +111,7 @@ pub async fn calculate_channel_permissions<P: PermissionQuery>(query: &mut P) ->
|
|||||||
query.set_server_from_channel().await;
|
query.set_server_from_channel().await;
|
||||||
|
|
||||||
if query.are_we_server_owner().await {
|
if query.are_we_server_owner().await {
|
||||||
return ChannelPermission::GrantAllSafe.into();
|
ChannelPermission::GrantAllSafe.into()
|
||||||
} else if query.are_we_a_member().await {
|
} else if query.are_we_a_member().await {
|
||||||
let mut permissions = calculate_server_permissions(query).await;
|
let mut permissions = calculate_server_permissions(query).await;
|
||||||
permissions.apply(query.get_default_channel_permissions().await);
|
permissions.apply(query.get_default_channel_permissions().await);
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "revolt-presence"
|
name = "revolt-presence"
|
||||||
version = "0.6.12"
|
version = "0.6.13"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
license = "AGPL-3.0-or-later"
|
license = "AGPL-3.0-or-later"
|
||||||
authors = ["Paul Makles <me@insrt.uk>"]
|
authors = ["Paul Makles <me@insrt.uk>"]
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "revolt-result"
|
name = "revolt-result"
|
||||||
version = "0.6.12"
|
version = "0.6.13"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
license = "AGPL-3.0-or-later"
|
license = "AGPL-3.0-or-later"
|
||||||
authors = ["Paul Makles <me@insrt.uk>"]
|
authors = ["Paul Makles <me@insrt.uk>"]
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "revolt-delta"
|
name = "revolt-delta"
|
||||||
version = "0.6.12"
|
version = "0.6.13"
|
||||||
license = "AGPL-3.0-or-later"
|
license = "AGPL-3.0-or-later"
|
||||||
authors = ["Paul Makles <paulmakles@gmail.com>"]
|
authors = ["Paul Makles <paulmakles@gmail.com>"]
|
||||||
edition = "2018"
|
edition = "2018"
|
||||||
|
|||||||
@@ -65,13 +65,8 @@ pub async fn message_send(
|
|||||||
// Disallow mentions for new users (TRUST-0: <12 hours age) in public servers
|
// Disallow mentions for new users (TRUST-0: <12 hours age) in public servers
|
||||||
let allow_mentions = if let Some(server) = query.server_ref() {
|
let allow_mentions = if let Some(server) = query.server_ref() {
|
||||||
if server.discoverable {
|
if server.discoverable {
|
||||||
if (Utc::now() - ulid::Ulid::from_string(&user.id).unwrap().datetime())
|
(Utc::now() - ulid::Ulid::from_string(&user.id).unwrap().datetime())
|
||||||
< Duration::hours(12)
|
>= Duration::hours(12)
|
||||||
{
|
|
||||||
false
|
|
||||||
} else {
|
|
||||||
true
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
|
|||||||
+100
-100
@@ -1,100 +1,100 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "revolt-quark"
|
name = "revolt-quark"
|
||||||
version = "0.6.12"
|
version = "0.6.13"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
license = "AGPL-3.0-or-later"
|
license = "AGPL-3.0-or-later"
|
||||||
|
|
||||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
mongo = ["mongodb"]
|
mongo = ["mongodb"]
|
||||||
rocket_impl = [
|
rocket_impl = [
|
||||||
"rocket",
|
"rocket",
|
||||||
"rocket_empty",
|
"rocket_empty",
|
||||||
"rocket_cors",
|
"rocket_cors",
|
||||||
|
|
||||||
"lru",
|
"lru",
|
||||||
"dashmap",
|
"dashmap",
|
||||||
|
|
||||||
"authifier/database-mongodb",
|
"authifier/database-mongodb",
|
||||||
"authifier/rocket_impl",
|
"authifier/rocket_impl",
|
||||||
"authifier/okapi_impl",
|
"authifier/okapi_impl",
|
||||||
]
|
]
|
||||||
|
|
||||||
test = ["async-std", "mongo", "mongodb/async-std-runtime", "rocket_impl"]
|
test = ["async-std", "mongo", "mongodb/async-std-runtime", "rocket_impl"]
|
||||||
default = ["test"]
|
default = ["test"]
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
# Serialisation
|
# Serialisation
|
||||||
revolt_optional_struct = "0.2.0"
|
revolt_optional_struct = "0.2.0"
|
||||||
serde = { version = "1", features = ["derive"] }
|
serde = { version = "1", features = ["derive"] }
|
||||||
validator = { version = "0.16", features = ["derive"] }
|
validator = { version = "0.16", features = ["derive"] }
|
||||||
iso8601-timestamp = { version = "0.1.8", features = ["schema", "bson"] }
|
iso8601-timestamp = { version = "0.1.8", features = ["schema", "bson"] }
|
||||||
|
|
||||||
# Formats
|
# Formats
|
||||||
bincode = "1.3.3"
|
bincode = "1.3.3"
|
||||||
serde_json = "1.0.78"
|
serde_json = "1.0.78"
|
||||||
bson = { version = "2.1.0", features = ["chrono-0_4"] }
|
bson = { version = "2.1.0", features = ["chrono-0_4"] }
|
||||||
|
|
||||||
# Spec Generation
|
# Spec Generation
|
||||||
schemars = "0.8.8"
|
schemars = "0.8.8"
|
||||||
revolt_okapi = "0.9.1"
|
revolt_okapi = "0.9.1"
|
||||||
revolt_rocket_okapi = { version = "0.9.1", features = ["swagger"] }
|
revolt_rocket_okapi = { version = "0.9.1", features = ["swagger"] }
|
||||||
|
|
||||||
# Databases
|
# Databases
|
||||||
redis-kiss = { version = "0.1.4" }
|
redis-kiss = { version = "0.1.4" }
|
||||||
mongodb = { optional = true, version = "2.1.0", default-features = false }
|
mongodb = { optional = true, version = "2.1.0", default-features = false }
|
||||||
|
|
||||||
# Async
|
# Async
|
||||||
futures = "0.3.19"
|
futures = "0.3.19"
|
||||||
deadqueue = "0.2.1"
|
deadqueue = "0.2.1"
|
||||||
async-trait = "0.1.51"
|
async-trait = "0.1.51"
|
||||||
async-recursion = "1.0.0"
|
async-recursion = "1.0.0"
|
||||||
async-std = { version = "1.8.0", features = ["attributes"], optional = true }
|
async-std = { version = "1.8.0", features = ["attributes"], optional = true }
|
||||||
|
|
||||||
# Logging
|
# Logging
|
||||||
log = "0.4.14"
|
log = "0.4.14"
|
||||||
pretty_env_logger = "0.4.0"
|
pretty_env_logger = "0.4.0"
|
||||||
|
|
||||||
# Util
|
# Util
|
||||||
rand = "0.8.5"
|
rand = "0.8.5"
|
||||||
ulid = "0.5.0"
|
ulid = "0.5.0"
|
||||||
regex = "1.5.5"
|
regex = "1.5.5"
|
||||||
nanoid = "0.4.0"
|
nanoid = "0.4.0"
|
||||||
linkify = "0.8.1"
|
linkify = "0.8.1"
|
||||||
dotenv = "0.15.0"
|
dotenv = "0.15.0"
|
||||||
indexmap = "1.9.1"
|
indexmap = "1.9.1"
|
||||||
decancer = "1.6.2"
|
decancer = "1.6.2"
|
||||||
impl_ops = "0.1.1"
|
impl_ops = "0.1.1"
|
||||||
num_enum = "0.5.6"
|
num_enum = "0.5.6"
|
||||||
reqwest = "0.11.10"
|
reqwest = "0.11.10"
|
||||||
bitfield = "0.13.2"
|
bitfield = "0.13.2"
|
||||||
once_cell = "1.17.1"
|
once_cell = "1.17.1"
|
||||||
async-lock = "2.6.0"
|
async-lock = "2.6.0"
|
||||||
|
|
||||||
lru = { version = "0.7.6", optional = true }
|
lru = { version = "0.7.6", optional = true }
|
||||||
dashmap = { version = "5.2.0", optional = true }
|
dashmap = { version = "5.2.0", optional = true }
|
||||||
|
|
||||||
# Web Push
|
# Web Push
|
||||||
base64 = "0.13.0"
|
base64 = "0.13.0"
|
||||||
web-push = "0.7.2"
|
web-push = "0.7.2"
|
||||||
|
|
||||||
# Implementations
|
# Implementations
|
||||||
rocket_http = { optional = true, version = "0.5.0-rc.2" }
|
rocket_http = { optional = true, version = "0.5.0-rc.2" }
|
||||||
rocket = { optional = true, version = "0.5.0-rc.2", default-features = false, features = [
|
rocket = { optional = true, version = "0.5.0-rc.2", default-features = false, features = [
|
||||||
"json",
|
"json",
|
||||||
] }
|
] }
|
||||||
rocket_empty = { version = "0.1.1", optional = true, features = ["schema"] }
|
rocket_empty = { version = "0.1.1", optional = true, features = ["schema"] }
|
||||||
rocket_cors = { optional = true, git = "https://github.com/lawliet89/rocket_cors", rev = "c17e8145baa4790319fdb6a473e465b960f55e7c" }
|
rocket_cors = { optional = true, git = "https://github.com/lawliet89/rocket_cors", rev = "c17e8145baa4790319fdb6a473e465b960f55e7c" }
|
||||||
|
|
||||||
# Authifier
|
# Authifier
|
||||||
authifier = { version = "1.0.8", features = ["async-std-runtime"] }
|
authifier = { version = "1.0.8", features = ["async-std-runtime"] }
|
||||||
|
|
||||||
# Sentry
|
# Sentry
|
||||||
sentry = "0.31.5"
|
sentry = "0.31.5"
|
||||||
|
|
||||||
# Core
|
# Core
|
||||||
revolt-result = { path = "../core/result", features = ["serde", "schemas"] }
|
revolt-result = { path = "../core/result", features = ["serde", "schemas"] }
|
||||||
revolt-presence = { path = "../core/presence", features = ["redis-is-patched"] }
|
revolt-presence = { path = "../core/presence", features = ["redis-is-patched"] }
|
||||||
revolt-database = { path = "../core/database" }
|
revolt-database = { path = "../core/database" }
|
||||||
revolt-models = { path = "../core/models" }
|
revolt-models = { path = "../core/models" }
|
||||||
|
|||||||
@@ -5,3 +5,15 @@ publish:
|
|||||||
cargo publish --package revolt-models
|
cargo publish --package revolt-models
|
||||||
cargo publish --package revolt-presence
|
cargo publish --package revolt-presence
|
||||||
cargo publish --package revolt-database
|
cargo publish --package revolt-database
|
||||||
|
|
||||||
|
patch:
|
||||||
|
cargo release version patch --execute
|
||||||
|
|
||||||
|
minor:
|
||||||
|
cargo release version minor --execute
|
||||||
|
|
||||||
|
major:
|
||||||
|
cargo release version major --execute
|
||||||
|
|
||||||
|
release:
|
||||||
|
scripts/try-tag-and-release.sh
|
||||||
|
|||||||
Executable
+14
@@ -0,0 +1,14 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
date=$(date +'%Y%m%d')
|
||||||
|
incr=1
|
||||||
|
|
||||||
|
while [ $(git tag -l "$date-$incr") ]; do
|
||||||
|
incr=$((incr+1))
|
||||||
|
done
|
||||||
|
|
||||||
|
tag=$date-$incr
|
||||||
|
echo About to tag and push $tag in 3 seconds...
|
||||||
|
sleep 3s
|
||||||
|
|
||||||
|
git tag $tag
|
||||||
|
git push --atomic origin $(git rev-parse --abbrev-ref HEAD) $tag
|
||||||
Reference in New Issue
Block a user