Skip to content

Commit 6643cf2

Browse files
committed
restructure code, use shared workspace packages
1 parent 516c738 commit 6643cf2

26 files changed

+135
-106
lines changed

Diff for: .editorconfig

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
root = true
2+
3+
[*]
4+
end_of_line = lf
5+
insert_final_newline = true
6+
7+
[*.{rs}]
8+
charset = utf-8
9+
indent_style = space
10+
indent_size = 4
11+
12+
[*.yaml,*.yml]
13+
indent_style = space
14+
indent_size = 2

Diff for: .replit

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
run = "bash run_replit.sh"
1+
run = "bash scripts/run_replit.sh"
22
hidden = ["target", "dump.rdb", ".git"]
33
entrypoint = "README.md"
44

Diff for: Cargo.lock

+44-44
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: Cargo.toml

+11-5
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,13 @@
11
[workspace]
2-
32
members = [
4-
"src/sexurity-api",
5-
"src/sexurity-poller",
6-
"src/sexurity-discord"
7-
]
3+
"src/security_api",
4+
"src/security_poller",
5+
"src/security_discord"
6+
]
7+
8+
[workspace.dependencies]
9+
tokio = { version = "1.38.0", features = ["full"] }
10+
serde = { version = "1.0.163", features = ["derive"] }
11+
serde_json = "1.0.96"
12+
log = "0.4.17"
13+
pretty_env_logger = "0.5.0"

Diff for: Dockerfile

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
FROM rust:1.75 as builder
2-
WORKDIR /usr/src/sexurity
2+
WORKDIR /usr/src/security
33

44
COPY . .
5-
RUN cargo install --path src/sexurity-discord
6-
RUN cargo install --path src/sexurity-poller
5+
RUN cargo install --path src/security_discord
6+
RUN cargo install --path src/security_poller
77

88
FROM ubuntu
99
RUN apt-get update && apt-get install -y wget jq curl && rm -rf /var/lib/apt/lists/*
1010
RUN wget -qO /usr/local/bin/yq https://github.com/mikefarah/yq/releases/latest/download/yq_linux_amd64 && chmod +x /usr/local/bin/yq
1111

12-
COPY --from=builder /usr/local/cargo/bin/sexurity-discord /usr/local/bin/sexurity-discord
13-
COPY --from=builder /usr/local/cargo/bin/sexurity-poller /usr/local/bin/sexurity-poller
14-
COPY ./yaml_to_cli.sh /usr/local/bin/yaml_to_cli.sh
12+
COPY --from=builder /usr/local/cargo/bin/security_discord /usr/local/bin/discord
13+
COPY --from=builder /usr/local/cargo/bin/security_poller /usr/local/bin/poller
14+
COPY ./scripts/yaml_to_cli.sh /usr/local/bin/yaml_to_cli.sh
1515
ENV RUST_LOG info

Diff for: docker-compose.yml

+12-11
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@ services:
88
expose:
99
- "6379"
1010

11-
sexurity-poller:
11+
poller:
1212
depends_on:
1313
- db
14-
image: sexurity
14+
image: hackerone-tracker
1515
links:
1616
- db
1717
build:
@@ -20,17 +20,18 @@ services:
2020
volumes:
2121
- type: bind
2222
source: config.yaml
23-
target: /etc/sexurity/config.yaml
23+
target: /etc/security/config.yaml
2424
environment:
25-
- APP_NAME=sexurity-poller
25+
- APP_NAME=poller
2626
- CONFIG_NAME=poller
2727
restart: always
28-
command: [ "bash", "/usr/local/bin/yaml_to_cli.sh", "/etc/sexurity/config.yaml" ]
28+
command:
29+
["bash", "/usr/local/bin/yaml_to_cli.sh", "/etc/security/config.yaml"]
2930

30-
sexurity-discord:
31+
security_discord:
3132
depends_on:
3233
- db
33-
image: sexurity
34+
image: hackerone-tracker
3435
links:
3536
- db
3637
build:
@@ -39,15 +40,15 @@ services:
3940
volumes:
4041
- type: bind
4142
source: config.yaml
42-
target: /etc/sexurity/config.yaml
43+
target: /etc/security/config.yaml
4344

4445
environment:
45-
- APP_NAME=sexurity-discord
46+
- APP_NAME=discord
4647
- CONFIG_NAME=discord
4748

4849
restart: always
49-
command: [ "bash", "/usr/local/bin/yaml_to_cli.sh", "/etc/sexurity/config.yaml" ]
50+
command:
51+
["bash", "/usr/local/bin/yaml_to_cli.sh", "/etc/security/config.yaml"]
5052

5153
volumes:
5254
db_data:
53-

Diff for: image.png

-52.3 KB
Binary file not shown.

Diff for: run_replit.sh renamed to scripts/run_replit.sh

+2-2
Original file line numberDiff line numberDiff line change
@@ -22,5 +22,5 @@ fi
2222

2323
sed -i -e 's/redis:6379/localhost:6379/g' config.yaml # Replace redis://redis:6379 to redis://localhost:6379 in config file
2424
echo "Starting sexurity..."
25-
RUST_LOG=info APP_NAME=./target/release/sexurity-poller CONFIG_NAME=poller bash yaml_to_cli.sh config.yaml &
26-
RUST_LOG=info APP_NAME=./target/release/sexurity-discord CONFIG_NAME=discord bash yaml_to_cli.sh config.yaml
25+
RUST_LOG=info APP_NAME=./target/release/sexurity-poller CONFIG_NAME=poller bash scripts/yaml_to_cli.sh config.yaml &
26+
RUST_LOG=info APP_NAME=./target/release/sexurity-discord CONFIG_NAME=discord bash scripts/yaml_to_cli.sh config.yaml

Diff for: yaml_to_cli.sh renamed to scripts/yaml_to_cli.sh

File renamed without changes.

Diff for: src/sexurity-api/Cargo.toml renamed to src/security_api/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[package]
2-
name = "sexurity-api"
2+
name = "security_api"
33
version = "0.1.0"
44
edition = "2021"
55

File renamed without changes.
File renamed without changes.

Diff for: src/sexurity-api/src/models.rs renamed to src/security_api/src/models.rs

+1
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ impl ReportsDataQueueItem {
6969
pub mod embed_colors {
7070
pub const NEGATIVE: u32 = 16711680;
7171
pub const POSTIVE: u32 = 5222492;
72+
pub const MAJOR: u32 = 16567356;
7273
pub const TRANSPARENT: u32 = 2829617;
7374
}
7475

File renamed without changes.
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[package]
2-
name = "sexurity-discord"
2+
name = "security_discord"
33
version = "0.1.0"
44
edition = "2021"
55

@@ -8,10 +8,10 @@ edition = "2021"
88
[dependencies]
99
clap = { version = "4.0", features = ["derive", "env"] }
1010
reqwest = { version = "0.11.18", features = ["blocking", "json"] }
11-
sexurity-api = { path = "../sexurity-api" }
12-
serde = { version = "1.0.163", features = ["derive"] }
13-
serde_json = "1.0.96"
11+
security_api = { path = "../security_api" }
12+
serde.workspace = true
13+
serde_json.workspace = true
1414
twilight-util = { version = "0.15.2", features = ["builder"] }
1515
twilight-model = "0.15.2"
16-
log = "0.4.17"
17-
pretty_env_logger = "0.5.0"
16+
log.workspace = true
17+
pretty_env_logger.workspace = true
File renamed without changes.

Diff for: src/sexurity-discord/src/main.rs renamed to src/security_discord/src/main.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ mod subscriptions;
77
use clap::Parser;
88
use reqwest::blocking as reqwest;
99
use serde::Serialize;
10-
use sexurity_api::redis;
10+
use security_api::redis;
1111
use twilight_model::channel::message::embed::Embed;
1212

1313
#[derive(Default, Debug, Parser)]

Diff for: src/sexurity-discord/src/subscriptions/reports.rs renamed to src/security_discord/src/subscriptions/reports.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
use sexurity_api::models;
2-
use sexurity_api::redis::redis::Connection;
1+
use security_api::models;
2+
use security_api::redis::redis::Connection;
33
use std::thread::{self, JoinHandle};
44
use twilight_model::channel::message::embed::Embed;
55
use twilight_util::builder::embed::EmbedBuilder;

Diff for: src/sexurity-discord/src/subscriptions/reputation.rs renamed to src/security_discord/src/subscriptions/reputation.rs

+15-7
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
use sexurity_api::models;
2-
use sexurity_api::redis::redis::cmd;
3-
use sexurity_api::redis::redis::Connection;
1+
use security_api::models;
2+
use security_api::redis::redis::cmd;
3+
use security_api::redis::redis::Connection;
44
use std::thread;
55
use std::thread::JoinHandle;
66
use twilight_model::channel::message::embed::Embed;
@@ -131,11 +131,15 @@ fn build_embed_data(
131131
text = format!("[**``{}``**]({}) was added to [**``{}``**]({}) with **{} reputation** (rank: >100)", new.user_name, format!("https://hackerone.com/{}", new.user_name), handle, format!("https://hackerone.com/{}", handle), new.reputation);
132132
}
133133

134-
let embed = EmbedBuilder::new()
134+
let mut embed = EmbedBuilder::new()
135135
.description(text)
136-
.color(models::embed_colors::POSTIVE)
137-
.build();
138-
return Some(embed);
136+
.color(models::embed_colors::POSTIVE);
137+
138+
if new.rank >= 50 {
139+
embed = embed.color(models::embed_colors::MAJOR);
140+
}
141+
142+
return Some(embed.build());
139143
} else if new.reputation == -1 {
140144
// user removed from leaderboard
141145
let text = format!(
@@ -175,6 +179,10 @@ fn build_embed_data(
175179
.description(text)
176180
.color(models::embed_colors::POSTIVE);
177181

182+
if change >= 50 {
183+
embed_builder = embed_builder.color(models::embed_colors::MAJOR);
184+
}
185+
178186
{
179187
let mut footer = String::from("");
180188
if new.rank < old.rank {
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,17 @@
11
[package]
2-
name = "sexurity-poller"
2+
name = "security_poller"
33
version = "0.1.0"
44
edition = "2021"
55

66
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
77

88
[dependencies]
99
graphql_client = "0.12.0"
10-
serde = { version = "1.0.163", features = ["derive"] }
11-
serde_json = "1.0.96"
12-
sexurity-api = { path = "../sexurity-api" }
10+
serde.workspace = true
11+
serde_json.workspace = true
12+
security_api = { path = "../security_api" }
1313
clap = { version = "4.0", features = ["derive", "env"] }
1414
chrono = "0.4.24"
1515
cronjob = "0.4.17"
16-
log = "0.4.17"
17-
pretty_env_logger = "0.5.0"
18-
16+
log.workspace = true
17+
pretty_env_logger.workspace = true

Diff for: src/sexurity-poller/src/main.rs renamed to src/security_poller/src/main.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ use clap::Parser;
1212

1313
// use std::{env, ffi::OsString, str::FromStr};
1414
use graphql_client::GraphQLQuery;
15-
use sexurity_api::hackerone::{self as hackerone, HackerOneClient};
16-
use sexurity_api::redis;
15+
use security_api::hackerone::{self as hackerone, HackerOneClient};
16+
use security_api::redis;
1717

1818
use crate::polls::PollConfiguration;
1919

Diff for: src/sexurity-poller/src/polls/mod.rs renamed to src/security_poller/src/polls/mod.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
use sexurity_api::hackerone::HackerOneClient;
2-
use sexurity_api::redis::redis::Client;
1+
use security_api::hackerone::HackerOneClient;
2+
use security_api::redis::redis::Client;
33
pub mod programs;
44
pub mod reports;
55
pub mod reputation;

Diff for: src/sexurity-poller/src/polls/programs.rs renamed to src/security_poller/src/polls/programs.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use cronjob::CronJob;
22
use graphql_client::GraphQLQuery;
3-
use sexurity_api::{
3+
use security_api::{
44
hackerone::{
55
self,
66
discovery_query::{DiscoveryQueryOpportunitiesSearchNodes, OpportunitiesQuery, SortInput},

Diff for: src/sexurity-poller/src/polls/reports.rs renamed to src/security_poller/src/polls/reports.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@ extern crate cronjob;
33
use chrono;
44
use cronjob::CronJob;
55
use graphql_client::GraphQLQuery;
6-
use sexurity_api::hackerone::{self as hackerone, HackerOneClient};
7-
use sexurity_api::models::{self as models, ReportData};
8-
use sexurity_api::redis::redis::Commands;
9-
use sexurity_api::redis::{load_set_to_vec, redis, redis::cmd, save_vec_to_set};
6+
use security_api::hackerone::{self as hackerone, HackerOneClient};
7+
use security_api::models::{self as models, ReportData};
8+
use security_api::redis::redis::Commands;
9+
use security_api::redis::{load_set_to_vec, redis, redis::cmd, save_vec_to_set};
1010

1111
pub fn start_poll_event_loop(config: &PollConfiguration) {
1212
let poll_config = config.clone();

0 commit comments

Comments
 (0)