ritsec / ops-bot-iii Goto Github PK
View Code? Open in Web Editor NEWOBIII: Open Source Discord Bot, created by RITSEC
License: Apache License 2.0
OBIII: Open Source Discord Bot, created by RITSEC
License: Apache License 2.0
Is your feature request related to a problem? Please describe.
Slash Command Declaration are more complicated than they need to be
Describe the solution you'd like
Simplify Slash Command Declaration
Describe alternatives you've considered
N/A
Additional context
N/A
Is your feature request related to a problem? Please describe.
Signins all last 2 hours, make general meetings last for 4 hours
Describe the solution you'd like
Have General Meeting signins last for 4 hours
Describe alternatives you've considered
N/A
Additional context
N/A
Describe the bug
When bot is restarted when signin is active, it will leave message and not delete it.
To Reproduce
Start signin
Restart Bot
Signin is still visible but doesn't work
Expected behavior
When bot is killed it should close out by deleting all those pending message deletes
Logs and Evidence
N/A
Additional context
N/A
Is your feature request related to a problem? Please describe.
IG leads sometimes have low signins for the IG they lead because they forget to click the signin button after creating a signin.
Describe the solution you'd like
Signin creators should automatically be signed in to the IG they've created a signin for.
Describe alternatives you've considered
N/A
Additional context
N/A
Describe the bug
After the 2 hours for sign-ins are done, the interaction message does not delete
To Reproduce
Run \signin
and wait
Expected behavior
After 2 hours the sign-in should delete
Logs and Evidence
{
"id": "AgAAAYphi1G2Vz8qiQAAAAAAAAAYAAAAAEFZcGhpMXIzQUFDLVN2VjlxbmFfNXdBQQAAACQAAAAAMDE4YTYxYzQtNjAyNi00NmNjLWI0NTItZTI0ZjI1ZWEyM2Nl",
"content": {
"timestamp": "2023-09-04T18:53:54.998Z",
"tags": [
"service:obiii",
"source:go",
"filename:obiii.log",
"sourcecategory:sourcecode",
"datadog.submission_auth:private_api_key",
"env:prod"
],
"host": "obiii.maxfus.co",
"service": "OBIII",
"message": "[dd.service=OBIII dd.env=prod dd.trace_id=\"1939644762994719823\" dd.span_id=\"1939644762994719823\"] Error encounted while deleting interaction response",
"attributes": {
"dd": {
"span_id": "1939644762994719823",
"service": "OBIII"
},
"level": "error",
"time": "2023-09-04T18:53:54Z",
"error": "HTTP 401 Unauthorized, {\"message\": \"Invalid Webhook Token\", \"code\": 50027}",
"user": {
"bot": false,
"verified": false,
"flags": 0,
"banner": "",
"avatar": "2350e8003216585ea598525d14e2123f",
"locale": "",
"discriminator": "0",
"token": "",
"premium_type": 0,
"accent_color": 0,
"system": false,
"mfa_enabled": false,
"id": "309141130858070016",
"public_flags": 4194432,
"email": "",
"username": "1nv8rzim"
},
"span": {
"ParentID": 0,
"Meta": {
"language": "go",
"runtime-id": "7be496a0-e7df-4e8a-ad2b-19f0c3edb069",
"env": "prod",
"_dd": {
"p": {
"dm": "-1"
}
}
},
"Type": "",
"Metrics": {
"process_id": 2801073,
"_sampling_priority_v1": 1,
"_dd": {
"agent_psr": 1,
"top_level": 1,
"trace_span_attribute_schema": 0
}
},
"Start": 1693846433446592800,
"Resource": "/signin",
"Service": "OBIII",
"TraceID": 1939644762994719700,
"Error": 0,
"Duration": 3423485349,
"Name": "commands.slash.signin:Signin",
"SpanID": 1939644762994719700
}
}
}
}
Additional context
N/A
Is your feature request related to a problem? Please describe.
N/A
Describe the solution you'd like
Use config values to be used in DataDog tracer service and tracer env.
Describe alternatives you've considered
N/A
Additional context
N/A
Describe the bug
The message by ChaseK that has the most :angryreact:s (53) was initially on the scoreboard in 1st place but does not show up anymore. Instead, Kenny's message that has 38 :angryreact:s shows up as 1st instead.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
ChaseK's message listed as 1st instead of Kenny's message.
Is your feature request related to a problem? Please describe.
OBIII currently runs as root, this is a security concern
Describe the solution you'd like
OBIII should have another dedicated user to run as instead of root
Describe alternatives you've considered
N/A
Additional context
N/A
Is your feature request related to a problem? Please describe.
Kudos can only be given to a single person
Describe the solution you'd like
Instead of only allowing a single user to receive kudos in a single message, all for up to set amount to be attached to kudos
Describe alternatives you've considered
N/A
Additional context
N/A\
Describe the bug
An error is sent when logging/buttons.go
is used; throws an invalid emoji error
To Reproduce
Cause logging with button to occur.
Examples:
uwu
messageIs the stack running?
messageExpected behavior
Does not cause error
Additional context
N/A
Is your feature request related to a problem? Please describe.
At the end of the year, be able to mark all sign-in as deprecated so they do not influence years to come where sign-ins are measured for permissions.
Describe the solution you'd like
Describe alternatives you've considered
N/A
Additional context
N/A
Describe the bug
You can get infinite amount of signin
To Reproduce
Click the button multiple times
Expected behavior
Not that
Logs and Evidence
N/A
Additional context
N/A
Is your feature request related to a problem? Please describe.
N/A
Describe the solution you'd like
Set up GitHub actions to do the following on merge of a PR into main:
Describe alternatives you've considered
N/A
Additional context
N/A
Describe the bug
Add RVAPT as signin Option
To Reproduce
N/A
Expected behavior
RVAPT should be a sign-in option
Logs and Evidence
N/A
Additional context
N/A
Is your feature request related to a problem? Please describe.
Scheduled tasks are more complicated than they need to be
Describe the solution you'd like
Clean up extra not-needed code
Describe alternatives you've considered
N/A
Additional context
N/A
Is your feature request related to a problem? Please describe.
Create a CODEOWNERS file to prevent the need to manually ping for review
Describe the solution you'd like
A CODEOWNERS file
Describe alternatives you've considered
N/A
Additional context
N/A
Describe the bug
When a message is modified with the length between 1013 and 1024, the outputted field will exceed 1024 and cause an error
To Reproduce
Send a message of 1013-1023 character, OBIII will send an error
Example:
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
Expected behavior
Not cause an error
Logs and Evidence
HTTP 400 Bad Request, {"message": "Invalid Form Body", "code": 50035, "errors": {"embeds": {"0": {"fields": {"1": {"value": {"_errors": [{"code": "BASE_TYPE_MAX_LENGTH", "message": "Must be 1024 or fewer in length."}]}}}}}}}
Additional context
Add any other context about the problem here.
Is your feature request related to a problem? Please describe.
N/A
Describe the solution you'd like
Be able to pull what branch to pull updates from beyond main
Describe alternatives you've considered
N/A
Additional context
N/A
Is your feature request related to a problem? Please describe.
Create a shitposting Leaderboard which will keep track of the top X shitposts ever
Describe the solution you'd like
Slash Commands to view the leaderboard
Database Connectors to store shitposts
Handler to load reacts anytime someone reacts
Describe alternatives you've considered
N/A
Additional context
N/A
Is your feature request related to a problem? Please describe.
When panics are encountered, the are not able to be logged and will cause OBIII to reboot.
Describe the solution you'd like
Implement a panic handler at the entrance of all goroutines in order to catch and log all panics.
Panics should be logged directly to file and not sent via normal discord log management. Similarly, in order to send notifications to discord an alternate method of logging via send embeds via webhooks should be used.
Describe alternatives you've considered
N/A
Additional context
N/A
Is your feature request related to a problem? Please describe.
N/A
Describe the solution you'd like
When a signin closes, a total number of signins as well as who signed will automatically be sent to whoever opened the signin
Describe alternatives you've considered
N/A
Additional context
N/A
Describe the bug
For complex rank-choice voting, visualization through an HTML page is broken.
The text representation of the vote is still accurate.
To Reproduce
Set up a vote where multiple people participate. The generated Sankey diagram will sometime have inconsistencies
Expected behavior
Sankey Diagram should match the text output and does not
Logs and Evidence
N/A
Additional context
N/A
Is your feature request related to a problem? Please describe.
Good Food is back, why do we not get pings
Describe the solution you'd like
Give up pings
Describe alternatives you've considered
N/A
Additional context
N/A
Is your feature request related to a problem? Please describe.
N/A
Describe the solution you'd like
Set up an Actions workflow to ensure that OBIII is able to compile before merging.
Likewise, add other checks to ensure quality of code being committed, examples from chatGPT are below:
Static Code Analysis:
golangci-lint: Integrate golangci-lint into your workflow to catch various coding style, formatting, and potential bugs using its extensive set of linters.
Unit Testing:
go test: Run unit tests using the built-in go test command to ensure that individual components of your code are functioning correctly.
Code Coverage:
go test -cover: Calculate and enforce a minimum code coverage percentage to ensure your tests exercise a substantial portion of your codebase.
Dependency Management:
go mod tidy: Ensure that your project's Go module dependencies are correctly managed and up-to-date.
Security Checks:
gosec: Use gosec to perform static analysis for security vulnerabilities in your Go code.
Documentation Checks:
godoc: Validate that your code is well-documented and adheres to GoDoc standards.
Build Checks:
go build: Ensure that your code compiles successfully with go build to catch any build errors.
Integration Testing:
Integrate tests that simulate real-world scenarios, especially if your application interacts with external services or APIs.
Code Formatting:
Use gofmt or goimports to enforce consistent code formatting.
Git Hooks:
Pre-commit and pre-push hooks that run the above checks locally before allowing commits or pushes
Describe alternatives you've considered
N/A
Additional context
N/A
Is your feature request related to a problem? Please describe.
There is no versioning or release process for OBIII.
Describe the solution you'd like
Implement automated versioning and release creation for merged pull requests to the main branch, following Semantic Versioning (SemVer).
Describe alternatives you've considered
N/A
Additional context
N/A
Describe the bug
Message modification can exceed the maximum length of embeds resulting in sending errors.
To Reproduce
Modify a long message, OBIII will send an error about being unable to send an embed due to exceeding the maximum length of messages
Expected behavior
The message should be shortened to only include edits or extended to use multiple embeds when the messages if of maximum length
Logs and Evidence
{
"id": "AgAAAYph8Iur0MMqiQAAAAAAAAAYAAAAAEFZcGg4Smp3QUFDLVN2VjlxbDg1YXdBQQAAACQAAAAAMDE4YTYxZjAtOWYzNi00ZmUwLTlkZjUtNDk4OWYyZDA2MTNk",
"content": {
"timestamp": "2023-09-04T20:44:28.971Z",
"tags": [
"service:obiii",
"source:go",
"filename:obiii.log",
"sourcecategory:sourcecode",
"datadog.submission_auth:private_api_key",
"env:prod"
],
"host": "obiii.maxfus.co",
"service": "OBIII",
"message": "[dd.service=OBIII dd.env=prod dd.trace_id=\"4643117501368144029\" dd.span_id=\"4643117501368144029\"] HTTP 400 Bad Request, {\"message\": \"Invalid Form Body\", \"code\": 50035, \"errors\": {\"embeds\": {\"_errors\": [{\"code\": \"MAX_EMBED_SIZE_EXCEEDED\", \"message\": \"Embed size exceeds maximum size of 6000\"}]}}}",
"attributes": {
"dd": {
"span_id": "4643117501368144029",
"service": "OBIII"
},
"level": "error",
"time": "2023-09-04T20:44:28Z",
"error": "HTTP 400 Bad Request, {\"message\": \"Invalid Form Body\", \"code\": 50035, \"errors\": {\"embeds\": {\"_errors\": [{\"code\": \"MAX_EMBED_SIZE_EXCEEDED\", \"message\": \"Embed size exceeds maximum size of 6000\"}]}}}",
"span": {
"ParentID": 0,
"Meta": {
"language": "go",
"runtime-id": "db67da43-bcd8-4ebe-90ab-96df941b0b1c",
"env": "prod"
},
"Type": "",
"Metrics": {
"process_id": 2819797,
"_sampling_priority_v1": 1,
"_dd": {
"agent_psr": 1,
"top_level": 1,
"trace_span_attribute_schema": 0
}
},
"Start": 1693860268608962600,
"Resource": "Handlers.MessageEdit",
"Service": "OBIII",
"TraceID": 4643117501368144000,
"Error": 0,
"Duration": 0,
"Name": "commands.handlers.message:MessageEdit",
"SpanID": 4643117501368144000
}
}
}
}
Additional context
N/A
Is your feature request related to a problem? Please describe.
Whenever someone messages in a #message channel, automatically create a thread for responding to enforce the use of threads
Describe the solution you'd like
Create and handler on message which will create a thread for all messages in channels that have "questions" in their name.
Describe alternatives you've considered
N/A
Additional context
N/A
Is your feature request related to a problem? Please describe.
With the deprecation of discord discriminators, we need to remove the use of the discriminator in discord
Describe the solution you'd like
Delete references to discriminator
Describe alternatives you've considered
N/A
Additional context
N/A
Is your feature request related to a problem? Please describe.
N/A
Describe the solution you'd like
Ability to disable google module from config.yml
Describe alternatives you've considered
N/A
Additional context
N/A
Is your feature request related to a problem? Please describe.
Conversion of Members to Alumni is currently a manual process
Describe the solution you'd like
Members can request to become an alumni by using the /alumni
command. This will be sent to E-Board for approval and once approved it the Member's member role will be revoked and the alumni role will be added
Describe alternatives you've considered
N/A
Additional context
N/A
Is your feature request related to a problem? Please describe.
Add signin options for new Interest Groups
Describe the solution you'd like
N/A
Describe alternatives you've considered
N/A
Additional context
N/A
Is your feature request related to a problem? Please describe.
N/A
Describe the solution you'd like
Provide a simple query for E-Board and IP/IG lead which allows them to query signin activity over a given time span
Describe alternatives you've considered
N/A
Additional context
N/A
Describe the solution you'd like
See IR instead of DFIR
Is your feature request related to a problem? Please describe.
I cannot add buttons to role-join (secretary skill issue?) and would like to allow people to join birdos channel and share bird pictures
Describe the solution you'd like
Add a role-join button for birdos, in the same section as cattos and doggos
Describe alternatives you've considered
Please
Actually I would just like E-board to be able to edit obiii roles tbh
Is your feature request related to a problem? Please describe.
N/A
Describe the solution you'd like
OBIII Birthday is super simple, on an enrolled user's birthday they will receive an temporary birthday
role which will give them a little ๐ or ๐ emoji at the end of their name and once their birthday is done the role will be removed.
Independent Features:
birthday
role management
birthday
roleConcepts Used:
Describe alternatives you've considered
N/A
Additional context
This is feature to be completed by OBIII Mentorship group ๐
The same thing with the feedback form ping but for the research grant form.
https://docs.google.com/forms/d/1DDKAok4wW0_KEnKkXiyCGJgJ0YFadC0NUjb5CGkdnEo/edit
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.