mirror of
https://github.com/aljazceru/CTFd.git
synced 2025-12-17 05:54:19 +01:00
Lint markdown and require markdown changes to pass prettier (#1510)
* Require that markdown files are linted by prettier
This commit is contained in:
7
.github/ISSUE_TEMPLATE.md
vendored
7
.github/ISSUE_TEMPLATE.md
vendored
@@ -6,9 +6,9 @@ If this is a feature request please describe the behavior that you'd like to see
|
||||
|
||||
**Environment**:
|
||||
|
||||
- CTFd Version/Commit:
|
||||
- Operating System:
|
||||
- Web Browser and Version:
|
||||
- CTFd Version/Commit:
|
||||
- Operating System:
|
||||
- Web Browser and Version:
|
||||
|
||||
**What happened?**
|
||||
|
||||
@@ -17,4 +17,3 @@ If this is a feature request please describe the behavior that you'd like to see
|
||||
**How to reproduce your issue**
|
||||
|
||||
**Any associated stack traces or error logs**
|
||||
|
||||
|
||||
1482
CHANGELOG.md
1482
CHANGELOG.md
File diff suppressed because it is too large
Load Diff
@@ -2,20 +2,20 @@
|
||||
|
||||
#### **Did you find a bug?**
|
||||
|
||||
* **Do not open up a GitHub issue if the bug is a security vulnerability in CTFd**. Instead [email the details to us at support@ctfd.io](mailto:support@ctfd.io).
|
||||
- **Do not open up a GitHub issue if the bug is a security vulnerability in CTFd**. Instead [email the details to us at support@ctfd.io](mailto:support@ctfd.io).
|
||||
|
||||
* **Ensure the bug was not already reported** by searching on GitHub under [Issues](https://github.com/CTFd/CTFd/issues).
|
||||
- **Ensure the bug was not already reported** by searching on GitHub under [Issues](https://github.com/CTFd/CTFd/issues).
|
||||
|
||||
* If you're unable to find an open issue addressing the problem, [open a new one](https://github.com/CTFd/CTFd/issues/new). Be sure to fill out the issue template with a **title and clear description**, and as much relevant information as possible (e.g. deployment setup, browser version, etc).
|
||||
- If you're unable to find an open issue addressing the problem, [open a new one](https://github.com/CTFd/CTFd/issues/new). Be sure to fill out the issue template with a **title and clear description**, and as much relevant information as possible (e.g. deployment setup, browser version, etc).
|
||||
|
||||
#### **Did you write a patch that fixes a bug or implements a new feature?**
|
||||
|
||||
* Open a new pull request with the patch.
|
||||
- Open a new pull request with the patch.
|
||||
|
||||
* Ensure the PR description clearly describes the problem and solution. Include the relevant issue number if applicable.
|
||||
- Ensure the PR description clearly describes the problem and solution. Include the relevant issue number if applicable.
|
||||
|
||||
* Ensure all status checks pass. PR's with test failures will not be merged. PR's with insufficient coverage may be merged depending on the situation.
|
||||
- Ensure all status checks pass. PR's with test failures will not be merged. PR's with insufficient coverage may be merged depending on the situation.
|
||||
|
||||
#### **Did you fix whitespace, format code, or make a purely cosmetic patch?**
|
||||
|
||||
Changes that are cosmetic in nature and do not add anything substantial to the stability, functionality, or testability of CTFd will generally not be accepted.
|
||||
Changes that are cosmetic in nature and do not add anything substantial to the stability, functionality, or testability of CTFd will generally not be accepted.
|
||||
|
||||
@@ -7,18 +7,18 @@ This CTFd plugin creates a dynamic challenge type which implements this
|
||||
behavior. Each dynamic challenge starts with an initial point value and then
|
||||
each solve will decrease the value of the challenge until a minimum point value.
|
||||
|
||||
By reducing the value of the challenge on each solve, all users who have previously
|
||||
solved the challenge will have lowered scores. Thus an easier and more solved
|
||||
challenge will naturally have a lower point value than a harder and less solved
|
||||
challenge.
|
||||
By reducing the value of the challenge on each solve, all users who have previously
|
||||
solved the challenge will have lowered scores. Thus an easier and more solved
|
||||
challenge will naturally have a lower point value than a harder and less solved
|
||||
challenge.
|
||||
|
||||
Within CTFd you are free to mix and match regular and dynamic challenges.
|
||||
|
||||
The current implementation requires the challenge to keep track of three values:
|
||||
|
||||
* Initial - The original point valuation
|
||||
* Decay - The amount of solves before the challenge will be at the minimum
|
||||
* Minimum - The lowest possible point valuation
|
||||
- Initial - The original point valuation
|
||||
- Decay - The amount of solves before the challenge will be at the minimum
|
||||
- Minimum - The lowest possible point valuation
|
||||
|
||||
The value decay logic is implemented with the following math:
|
||||
|
||||
@@ -43,12 +43,12 @@ If the number generated is lower than the minimum, the minimum is chosen
|
||||
instead.
|
||||
|
||||
A parabolic function is chosen instead of an exponential or logarithmic decay function
|
||||
so that higher valued challenges have a slower drop from their initial value.
|
||||
so that higher valued challenges have a slower drop from their initial value.
|
||||
|
||||
# Installation
|
||||
|
||||
**REQUIRES: CTFd >= v1.2.0**
|
||||
|
||||
1. Clone this repository to `CTFd/plugins`. It is important that the folder is
|
||||
named `DynamicValueChallenge` so CTFd can serve the files in the `assets`
|
||||
directory.
|
||||
named `DynamicValueChallenge` so CTFd can serve the files in the `assets`
|
||||
directory.
|
||||
|
||||
2
Makefile
2
Makefile
@@ -3,11 +3,13 @@ lint:
|
||||
yarn lint
|
||||
black --check --exclude=CTFd/uploads --exclude=node_modules .
|
||||
prettier --check 'CTFd/themes/**/assets/**/*'
|
||||
prettier --check '**/*.md'
|
||||
|
||||
format:
|
||||
isort --skip=CTFd/uploads -rc CTFd/ tests/
|
||||
black --exclude=CTFd/uploads --exclude=node_modules .
|
||||
prettier --write 'CTFd/themes/**/assets/**/*'
|
||||
prettier --write '**/*.md'
|
||||
|
||||
test:
|
||||
pytest -rf --cov=CTFd --cov-context=test --ignore=node_modules/ \
|
||||
|
||||
75
README.md
75
README.md
@@ -1,47 +1,49 @@
|
||||

|
||||
====
|
||||
# 
|
||||
|
||||
[](https://travis-ci.org/CTFd/CTFd)
|
||||
[](https://community.majorleaguecyber.org/)
|
||||
[](https://docs.ctfd.io/en/latest/?badge=latest)
|
||||
|
||||
## What is CTFd?
|
||||
|
||||
CTFd is a Capture The Flag framework focusing on ease of use and customizability. It comes with everything you need to run a CTF and it's easy to customize with plugins and themes.
|
||||
|
||||

|
||||
|
||||
## Features
|
||||
* Create your own challenges, categories, hints, and flags from the Admin Interface
|
||||
* Dynamic Scoring Challenges
|
||||
* Unlockable challenge support
|
||||
* Challenge plugin architecture to create your own custom challenges
|
||||
* Static & Regex based flags
|
||||
* Custom flag plugins
|
||||
* Unlockable hints
|
||||
* File uploads to the server or an Amazon S3-compatible backend
|
||||
* Limit challenge attempts & hide challenges
|
||||
* Automatic bruteforce protection
|
||||
* Individual and Team based competitions
|
||||
* Have users play on their own or form teams to play together
|
||||
* Scoreboard with automatic tie resolution
|
||||
* Hide Scores from the public
|
||||
* Freeze Scores at a specific time
|
||||
* Scoregraphs comparing the top 10 teams and team progress graphs
|
||||
* Markdown content management system
|
||||
* SMTP + Mailgun email support
|
||||
* Email confirmation support
|
||||
* Forgot password support
|
||||
* Automatic competition starting and ending
|
||||
* Team management, hiding, and banning
|
||||
* Customize everything using the [plugin](https://github.com/CTFd/CTFd/wiki/Plugins) and [theme](https://github.com/CTFd/CTFd/tree/master/CTFd/themes) interfaces
|
||||
* Importing and Exporting of CTF data for archival
|
||||
* And a lot more...
|
||||
|
||||
- Create your own challenges, categories, hints, and flags from the Admin Interface
|
||||
- Dynamic Scoring Challenges
|
||||
- Unlockable challenge support
|
||||
- Challenge plugin architecture to create your own custom challenges
|
||||
- Static & Regex based flags
|
||||
- Custom flag plugins
|
||||
- Unlockable hints
|
||||
- File uploads to the server or an Amazon S3-compatible backend
|
||||
- Limit challenge attempts & hide challenges
|
||||
- Automatic bruteforce protection
|
||||
- Individual and Team based competitions
|
||||
- Have users play on their own or form teams to play together
|
||||
- Scoreboard with automatic tie resolution
|
||||
- Hide Scores from the public
|
||||
- Freeze Scores at a specific time
|
||||
- Scoregraphs comparing the top 10 teams and team progress graphs
|
||||
- Markdown content management system
|
||||
- SMTP + Mailgun email support
|
||||
- Email confirmation support
|
||||
- Forgot password support
|
||||
- Automatic competition starting and ending
|
||||
- Team management, hiding, and banning
|
||||
- Customize everything using the [plugin](https://github.com/CTFd/CTFd/wiki/Plugins) and [theme](https://github.com/CTFd/CTFd/tree/master/CTFd/themes) interfaces
|
||||
- Importing and Exporting of CTF data for archival
|
||||
- And a lot more...
|
||||
|
||||
## Install
|
||||
1. Install dependencies: `pip install -r requirements.txt`
|
||||
1. You can also use the `prepare.sh` script to install system dependencies using apt.
|
||||
2. Modify [CTFd/config.py](https://github.com/CTFd/CTFd/blob/master/CTFd/config.py) to your liking.
|
||||
3. Use `flask run` in a terminal to drop into debug mode.
|
||||
|
||||
1. Install dependencies: `pip install -r requirements.txt`
|
||||
1. You can also use the `prepare.sh` script to install system dependencies using apt.
|
||||
2. Modify [CTFd/config.py](https://github.com/CTFd/CTFd/blob/master/CTFd/config.py) to your liking.
|
||||
3. Use `flask run` in a terminal to drop into debug mode.
|
||||
|
||||
You can use the auto-generated Docker images with the following command:
|
||||
|
||||
@@ -54,17 +56,21 @@ Or you can use Docker Compose with the following command from the source reposit
|
||||
Check out the [wiki](https://github.com/CTFd/CTFd/wiki) for [deployment options](https://github.com/CTFd/CTFd/wiki/Basic-Deployment) and the [Getting Started](https://github.com/CTFd/CTFd/wiki/Getting-Started) guide
|
||||
|
||||
## Live Demo
|
||||
|
||||
https://demo.ctfd.io/
|
||||
|
||||
## Support
|
||||
|
||||
To get basic support, you can join the [MajorLeagueCyber Community](https://community.majorleaguecyber.org/): [](https://community.majorleaguecyber.org/)
|
||||
|
||||
If you prefer commercial support or have a special project, feel free to [contact us](https://ctfd.io/contact/).
|
||||
|
||||
## Managed Hosting
|
||||
|
||||
Looking to use CTFd but don't want to deal with managing infrastructure? Check out [the CTFd website](https://ctfd.io/) for managed CTFd deployments.
|
||||
|
||||
## MajorLeagueCyber
|
||||
|
||||
CTFd is heavily integrated with [MajorLeagueCyber](https://majorleaguecyber.org/). MajorLeagueCyber (MLC) is a CTF stats tracker that provides event scheduling, team tracking, and single sign on for events.
|
||||
|
||||
By registering your CTF event with MajorLeagueCyber users can automatically login, track their individual and team scores, submit writeups, and get notifications of important events.
|
||||
@@ -77,6 +83,7 @@ OAUTH_CLIENT_SECRET = None
|
||||
```
|
||||
|
||||
## Credits
|
||||
* Logo by [Laura Barbera](http://www.laurabb.com/)
|
||||
* Theme by [Christopher Thompson](https://github.com/breadchris)
|
||||
* Notification Sound by [Terrence Martin](https://soundcloud.com/tj-martin-composer)
|
||||
|
||||
- Logo by [Laura Barbera](http://www.laurabb.com/)
|
||||
- Theme by [Christopher Thompson](https://github.com/breadchris)
|
||||
- Notification Sound by [Terrence Martin](https://soundcloud.com/tj-martin-composer)
|
||||
|
||||
Reference in New Issue
Block a user