Skip to content

Commit

Permalink
First public commit
Browse files Browse the repository at this point in the history
(Squashed 906 commits)
  • Loading branch information
nollium committed May 31, 2024
0 parents commit 0ee7728
Show file tree
Hide file tree
Showing 567 changed files with 121,200 additions and 0 deletions.
70 changes: 70 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
tmp/
*.class
.vscode/
.venv/
docker.sh
Dockerfile
burp-extensions-montoya-api-examples/

# Compiled class file
*.class

# Log file
*.log

# BlueJ files
*.ctxt

# Mobile Tools for Java (J2ME)
.mtj.tmp/

# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar

# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
.idea
.gradle
.DS_Store
build/
out/
dist/
bin/
.prettierc

*.pyc

notes/

log*.txt

__pycache__

generated/
src/public/
node_modules/
# public/
src/resources/_gen/
.venv/
build/
bin/
.gradle
.idea
notes/
__pycache__
old_deocs/
TODO.md
install.md
note.md
burp.licence
TODO.MD
macosinstall.md
a.java
python3.8/
python3-8/
85 changes: 85 additions & 0 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
stages:
- prepare
- build
- test
- build_docs_stage
- update_docs

variables:
GRADLE_OPTS: "-Dorg.gradle.daemon=false"

prepare_python_env:
stage: prepare
image: python:3.10
script:
- python3 -m venv .venv
- source .venv/bin/activate
- pip install -r docs/requirements.txt
artifacts:
paths:
- .venv/

build_scalpel:
stage: build
image: python:3.10
script:
- apt-get update -y
- apt-get install -y openjdk-17-jdk
- ./gradlew build
artifacts:
paths:
- scalpel/build/libs/*.jar

build_javadoc:
stage: build
image: python:3.10
script:
- apt-get update -y
- apt-get install -y openjdk-17-jdk
- ./gradlew javadoc
artifacts:
paths:
- scalpel/build/docs/javadoc/

build_docs:
stage: build_docs_stage
dependencies:
- prepare_python_env
- build_javadoc
image: python:3.10
script:
- apt-get update -y
- apt-get install -y hugo
- source .venv/bin/activate
- rm -rf docs/public/javadoc/
- cp -r scalpel/build/docs/javadoc/ docs/public/javadoc/
- cd docs && ./build.py --no-javadoc
artifacts:
paths:
- docs/public/

run_tests:
stage: test
dependencies:
- prepare_python_env
image: python:3.10
script:
- source .venv/bin/activate
- sh run_tests.sh

update_docs:
stage: update_docs
only:
- main
image: debian
script:
- export GIT_SSL_NO_VERIFY=true
- apt-get update && apt-get install -y git
- git config --global user.email "[email protected]"
- git config --global user.name "GitLab CI"
- git remote set-url origin "${CI_REPOSITORY_URL}"
- git fetch origin main:main # Fetch main branch
- git checkout main # Switch to main branch
- git add docs/public/
- git commit -m "Update generated docs [skip ci]" || echo "No changes to commit"
- git push origin main
11 changes: 11 additions & 0 deletions .prettierrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"trailingComma": "all",
"useTabs": true,
"tabWidth": 4,
"semi": true,
"singleQuote": false,
"quoteProps": "consistent",
"printWidth": 80,
"bracketSpacing": true,
"arrowParens": "always"
}
2 changes: 2 additions & 0 deletions .pylintrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
[MASTER]
init-hook='import sys; sys.path.append("./scalpel/src/main/resources/python")'
132 changes: 132 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
# Contributing to Scalpel

Thank you for your interest in contributing to Scalpel! This document outlines the process and guidelines for contributing to the project. By following these guidelines, you can help ensure a smooth collaboration process and a consistent codebase.

## Table of Content

- [Setting Up Your Development Environment](#setting-up-your-development-environment)
- [Building the Project](#building-the-project)
- [Building Scalpel](#building-scalpel)
- [Building the documentation](#building-the-documentation)
- [Testing](#testing)
- [Commit and Branch Format](#commit-and-branch-format)
- [Commit Messages](#commit-messages)
- [Branch Naming](#branch-naming)
- [Submitting Changes](#submitting-changes)
- [Feedback and Reviews](#feedback-and-reviews)
- [Conclusion](#conclusion)

## Setting Up Your Development Environment

1. **Fork the Repository**: Start by forking the Scalpel repository to your own GitHub account.

2. **Clone Your Fork**: Once done, clone your repository to your local machine:

```sh
git clone https://github.com/YOUR_USERNAME/scalpel.git
```

3. **Set Up the Upstream Remote**: Add the original Scalpel repository as an "upstream" remote:
```sh
git remote add upstream https://github.com/ORIGINAL_OWNER/scalpel.git
```

## Building the Project

### Building Scalpel

1. Navigate to the project root directory.
2. Build the project:
```sh
./gradlew build
```
3. Upon successful build, the generated JAR file can be found in `./scalpel/build/libs/scalpel-*.jar`.

### Building the documentation

1. Navigate to the docs directory:
```sh
cd docs/
```
2. Create a virtual environment and install the requirements from `requirements.txt`:
```sh
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
```
3. Launch the build:
```sh
./build.py
```
4. The documentation HTML pages will be generated in `public/`

## Testing

Before submitting any changes, ensure that all tests pass. Run them as follows:

```sh
./run_tests.sh
```

## Commit and Branch Format

### Commit Messages

Commit messages should be clear and descriptive. They should follow the format:

```
<type>(<scope>): <short description>
```
- **type**: Describes the nature of the change (e.g., `fix`, `feature`, `docs`, `refactor`).
- **scope**: The part of the codebase the change affects (e.g., `editor`, `venv`, `framework`).
- **short description**: A brief description of the change.
Example:
```
fix(editor): Resolve null reference issue
```
### Branch Naming
Branch names should be descriptive and follow the format:
```
<type>/<short-description>
```
- **type**: Describes the nature of the branch (e.g., `feature`, `fix`, `docs`, `refactor`).
- **short description**: A brief description of the branch's purpose, using kebab-case.
Example:
```
feature/hex-editor
```
## Submitting Changes
1. **Create a New Branch**: Based on the `main` branch, create a new branch following the branch naming convention mentioned above.
2. **Make Your Changes**: Implement your changes, ensuring code quality and consistency.
3. **Commit Your Changes**: Commit your changes following the commit message format.
4. **Pull from Upstream**: Before pushing your changes, pull the latest changes from the `upstream` main branch:
```sh
git pull upstream main
```

5. **Push to Your Fork**: Push your branch to your forked repository.

6. **Open a Pull Request**: Go to the original Scalpel repository and open a pull request from your branch. Ensure that your PR is descriptive, mentioning the changes made and their purpose.

## Feedback and Reviews

Once your pull request is submitted, maintainers or contributors might provide feedback. Address any comments, make necessary changes, and push those updates to your branch.

## Conclusion

Your contributions are valuable in making Scalpel a robust and efficient tool. By adhering to these guidelines, you ensure a smooth and efficient collaboration process. Thank you for your contribution!
Loading

0 comments on commit 0ee7728

Please sign in to comment.