Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
673 commits
Select commit Hold shift + click to select a range
c8ccc31
Simplifying cachedmethod
stamparm Jan 30, 2026
d54907d
Improving keep-alive support
stamparm Feb 1, 2026
5640ba7
Fixing AttribDict/pickle issue
stamparm Feb 1, 2026
f08f860
Minor patch
stamparm Feb 1, 2026
96645de
Minor patch for sitemap parsing
stamparm Feb 1, 2026
4af3195
Fixing CI/CD issues with keep-alive
stamparm Feb 2, 2026
4a913d2
Minor update
stamparm Feb 2, 2026
ea0783d
Minor update of PostgreSQL aggregate payload
stamparm Feb 2, 2026
9785187
Minor optimization
stamparm Feb 3, 2026
be07aea
Minor patch
stamparm Feb 3, 2026
49ef9d6
Releasing the pressure on CI/CD
stamparm Feb 3, 2026
f00e8f5
Minor optimization
stamparm Feb 3, 2026
2e6820f
Doing some fine tuning for WAF detection
stamparm Feb 3, 2026
2b6115c
Minor optimization of socket preconnect
stamparm Feb 3, 2026
9312d26
Make XML/HTML encoding in SOAP requests optional (#6015)
soffensive Feb 5, 2026
b1e36c6
Minor update for #6015
stamparm Feb 5, 2026
5a097c7
Minor refresh of cloaked files
stamparm Feb 5, 2026
0b5eb37
Fixes #6017
stamparm Feb 17, 2026
dbe45a4
Minor patch
stamparm Feb 17, 2026
d2106f2
fix: close when throw exception (#6019)
cuiweixie Feb 21, 2026
959ba63
Minor update
stamparm Feb 21, 2026
c2f8697
Fixes #6022
stamparm Feb 26, 2026
b93bc51
Minor improvement of ERROR_PARSING_REGEXES
stamparm Mar 10, 2026
bbadc0d
Dummy update
stamparm Mar 10, 2026
083f54b
Minor refactoring
stamparm Mar 10, 2026
56f02e5
Fixes #6029
stamparm Mar 11, 2026
3fe094a
Minor patch related to #6029
stamparm Mar 11, 2026
7ad4d67
Fixes #6033
stamparm Mar 13, 2026
79c9db1
Adding support for Spanner DBMS (#6025)
stamparm Mar 14, 2026
3c16bfd
Dummy update
stamparm Mar 14, 2026
eeb16d1
Adding missing Spanner directory (#6025)
stamparm Mar 15, 2026
4bb7644
Changing the dubious CoC
stamparm Mar 17, 2026
e433332
Minor update
stamparm Mar 18, 2026
0ed5cd2
Fixes #6037
stamparm Mar 20, 2026
c310c69
Fixes #6040
stamparm Mar 30, 2026
3ae174a
Fixes #6043
stamparm Apr 9, 2026
c20c718
Minor refactoring
stamparm Apr 15, 2026
6084129
Implementing safe(r) pickle loads
stamparm Apr 15, 2026
93cbbc2
Hiding --alert behind SQLMAP_UNSAFE_ALERT
stamparm Apr 15, 2026
39b8ff4
Patch for #6049
stamparm Apr 17, 2026
fdf6673
Dealing with some pesky issues
stamparm Apr 23, 2026
3cec18f
Expanding RESTAPI_UNSUPPORTED_OPTIONS
stamparm Apr 23, 2026
2b2796d
Minor expansion of blacklisted pickle methods
stamparm Apr 23, 2026
5e5629c
Revert of last commit
stamparm Apr 23, 2026
dec5a82
Adding 'safe string cmp' to API
stamparm Apr 23, 2026
09aaa9b
Implementing SQLMAP_UNSAFE_EVAL
stamparm Apr 23, 2026
e40a9a3
Fixing the CI/CD
stamparm Apr 23, 2026
cc74bdf
Update of settings for exception reporting
stamparm Apr 24, 2026
41330aa
Making stuff boring for P3 lurkers
stamparm Apr 24, 2026
4489b2c
fix: add missing import in lib.utils.api (#6055)
p-l- May 2, 2026
026e5d0
Fix stdoutEncode mangling non-string values used by REST API (#6054) …
ChrisJr404 May 2, 2026
dfbba62
Minor update
stamparm May 2, 2026
1a6a5b1
Fixes #6059
stamparm May 8, 2026
d77e925
Minor update
stamparm May 8, 2026
e659543
Fixing a potential deflate issues
stamparm May 15, 2026
5a12bd2
Fix WebSocket request traffic logging
stamparm Jun 2, 2026
220a75b
Support colon character in direct DBMS passwords
stamparm Jun 2, 2026
c07b156
Fix retry-on check on empty response
stamparm Jun 2, 2026
36c55a3
Handle unknown WebSocket status codes
stamparm Jun 2, 2026
aa0fb23
Normalize default WebSocket ports
stamparm Jun 2, 2026
bc252ef
Handle unicode strings in color stripping
stamparm Jun 2, 2026
8258d6d
Strip Brotli from Accept-Encoding header
stamparm Jun 2, 2026
fadf5bb
Honor injected Host header value
stamparm Jun 2, 2026
bfe39d0
Fix WebSocket request header formatting
stamparm Jun 2, 2026
8cac5fd
Fix forced SSL port rewrite
stamparm Jun 2, 2026
4caeff9
Preserve equals signs in answer values
stamparm Jun 2, 2026
b30c169
Avoid eval processing crash on JSON arrays
stamparm Jun 2, 2026
762037e
Fix ineffective chardet MINIMUM_THRESHOLD patch (#6024)
potato-20 Jun 4, 2026
d373eea
Fixing shitty concat2concatws tamper script
stamparm Jun 4, 2026
ae851d9
Fixing versioned tamper scripts
stamparm Jun 4, 2026
06b74f9
Minor update of random tamper scripts
stamparm Jun 4, 2026
f564db0
Minor correction of quote mechanism in tamper scripts
stamparm Jun 4, 2026
2c356ed
Minor fix of space2 tamper scripts
stamparm Jun 4, 2026
2f4ff0d
Minor patches to tamper scripts
stamparm Jun 4, 2026
0d4aff7
Fixing MySQL stacked file reading
stamparm Jun 4, 2026
a20f930
Fixing MsSQL stacked file write
stamparm Jun 4, 2026
6d1382f
Minor patch for MaxDB and Sybase enumeration
stamparm Jun 4, 2026
46ba1d1
Fixing stacked writing for PgSQL
stamparm Jun 4, 2026
4f42579
Fixing Java-based connectors
stamparm Jun 4, 2026
244d283
Minor patch for stacked file writing in HSQLDB
stamparm Jun 4, 2026
3d0932c
Minor patch for MsSQL stacked file reading
stamparm Jun 4, 2026
b3f3405
Minor patch for Oracle's readFile
stamparm Jun 4, 2026
8d91c65
Minor patch for --parse-errors logic
stamparm Jun 4, 2026
10282a3
Fixing Set-Cookie handling in redirection responses
stamparm Jun 4, 2026
249d2a6
Fixing mime-type recognition in dumped values
stamparm Jun 4, 2026
195c4be
Further improving Set-Cookie logic in redirections
stamparm Jun 4, 2026
b67ea8f
Minor fix
stamparm Jun 4, 2026
3e8a69c
Minor patch
stamparm Jun 4, 2026
cfd9309
Minor patch
stamparm Jun 4, 2026
85a71c2
Minor patch
stamparm Jun 4, 2026
89d6b94
Patches #6068
stamparm Jun 5, 2026
5e4ddcc
Minor patch
stamparm Jun 5, 2026
8110ccb
Bug fix for xp_cmdshell in boolean techniques
stamparm Jun 5, 2026
69efd62
Couple of small fixes
stamparm Jun 5, 2026
7dc414b
Minor update for sqlmap API task_delete
stamparm Jun 5, 2026
b702cba
Implementing MAX_CONNECTION_TOTAL_SIZE check for websocket responses
stamparm Jun 5, 2026
c6d272b
Minor patch for HTTP/2 connections (with error responses)
stamparm Jun 5, 2026
d96ac7c
Minor patch
stamparm Jun 5, 2026
5708696
Bug fix for cracking of Base64 hashes on DREI
stamparm Jun 5, 2026
dca0bb6
Patching some more unsafe unpickling
stamparm Jun 5, 2026
0ac9883
Minor patch
stamparm Jun 5, 2026
5a4a8ee
Minor patch
stamparm Jun 5, 2026
8a19966
Minor patch for parsePasswordHash
stamparm Jun 5, 2026
899447f
Improvement of compat/LooseVersion
stamparm Jun 5, 2026
430399c
Minor improvement of BigArray/pop()
stamparm Jun 5, 2026
e48cce3
Minor just in case patch for BigArray
stamparm Jun 5, 2026
3142e7b
Added tarsier
bdamele Jun 9, 2026
11836f8
Update .gitignore
bdamele Jun 9, 2026
ecf8ccc
Dummy update
stamparm Jun 10, 2026
ab1efed
Harden REST API option handling and require authentication credential…
stamparm Jun 10, 2026
f6861d2
Improving Swagger YAML for REST-JSON API server
stamparm Jun 10, 2026
bfa412f
Minor update of CI/CD workflow
stamparm Jun 10, 2026
58db3a7
Updating the colorama to latest revision
stamparm Jun 10, 2026
af0e463
Update of wininetpton to latest revision
stamparm Jun 10, 2026
d47aacb
Update of chardet to 4.0.0
stamparm Jun 10, 2026
aaa3a0b
Adding a missing/new file to chardet
stamparm Jun 10, 2026
d27b560
Minor patch
stamparm Jun 10, 2026
00003b2
Updating thirdparty/socks from SocksiPy to newer PySocks
stamparm Jun 10, 2026
2969563
Switching references from defunct testphp to testasp site
stamparm Jun 10, 2026
70b4d00
Fix RTL rendering of file extensions in Arabic Readme (#6072)
zakaria-zoulati Jun 11, 2026
5c69124
Minor update
stamparm Jun 11, 2026
ef00b9f
Minor performance patch
stamparm Jun 11, 2026
be21604
Minor bug fix
stamparm Jun 11, 2026
85b8d36
Couple of bug fixes
stamparm Jun 11, 2026
1636b72
Minor bug fix
stamparm Jun 11, 2026
bc9e51a
Implementing greedy matches in case of dynamic content removal
stamparm Jun 11, 2026
a100496
Minor update related to the previous commit
stamparm Jun 11, 2026
7747112
Minor update
stamparm Jun 11, 2026
df97e1d
Minor patch
stamparm Jun 11, 2026
69e1bf2
Minor update
stamparm Jun 11, 2026
1555be2
Minor update
stamparm Jun 11, 2026
cd7ebe9
Minor patch
stamparm Jun 11, 2026
da36d28
Minor patch
stamparm Jun 11, 2026
b67a6ad
Minor patch
stamparm Jun 11, 2026
12b8150
Minor patch
stamparm Jun 11, 2026
d229d4d
Minor patch
stamparm Jun 11, 2026
6a95e63
Minor patch
stamparm Jun 11, 2026
680ebd9
Minor improvement for safeSQLIdentificator naming
stamparm Jun 11, 2026
7e56505
Minor fix for calculating length of output items
stamparm Jun 11, 2026
74b5ffd
Minor patch
stamparm Jun 11, 2026
e12d7a2
Minor patch of API calls
stamparm Jun 11, 2026
8a2ad7d
Minor update of swagger YAML
stamparm Jun 11, 2026
5436617
Renaming REST-JSON API to REST API
stamparm Jun 11, 2026
6e1fe6f
Minor bug fix
stamparm Jun 11, 2026
8e48af6
Minor patches
stamparm Jun 11, 2026
b4a6d25
Minor update of doctests
stamparm Jun 12, 2026
3a36265
Minor improvement of dynamic content removal
stamparm Jun 12, 2026
37322b5
Minor patch
stamparm Jun 12, 2026
994292e
Re-evaluating tamper priorities
stamparm Jun 12, 2026
fc16a8e
Minor improvement to equal tamper scripts
stamparm Jun 12, 2026
1d1725f
Minor update
stamparm Jun 12, 2026
2e89210
Minor patch for between tamper script
stamparm Jun 12, 2026
4b08aaf
Minor patch
stamparm Jun 12, 2026
000c4e5
Minor bug for SQLAlchemy util class
stamparm Jun 12, 2026
800e6f0
Making DuckDuckGo default search engine
stamparm Jun 12, 2026
f09ea12
Fixing custom xrange for negative steps
stamparm Jun 12, 2026
63b1b59
Minor bug fix for boolean-blind file reads
stamparm Jun 12, 2026
bfe410c
Minor update of error regexes
stamparm Jun 12, 2026
6fc0dda
Minor update
stamparm Jun 14, 2026
93d2439
Adding missing substring query entries
stamparm Jun 14, 2026
bc4ce6e
Minor patch for python2
stamparm Jun 14, 2026
e24678f
Couple of bug fixes
stamparm Jun 14, 2026
10c464c
Minor bug fixes
stamparm Jun 14, 2026
03fb84c
Minor bug fixes
stamparm Jun 14, 2026
d42e503
Fixing some tamper script bugs
stamparm Jun 14, 2026
61d327a
Minor patch of RestrictedUnpickler
stamparm Jun 14, 2026
48b915b
Minor update
stamparm Jun 14, 2026
3816df1
Adding unit tests
stamparm Jun 15, 2026
948d01d
Fixing CI/CD failing
stamparm Jun 15, 2026
17e94c3
Adding --report-json option
stamparm Jun 15, 2026
403855f
Adding JSONL as a dump format
stamparm Jun 15, 2026
d570f8e
Fixing CI/CD issues
stamparm Jun 15, 2026
91bf58b
Adding --api-test for CI/CD
stamparm Jun 15, 2026
7c401ca
Adding new unittest
stamparm Jun 15, 2026
c210dac
Minor bug fix
stamparm Jun 15, 2026
be284e9
Adding more unittests
stamparm Jun 15, 2026
ea1f089
Adding some warning message
stamparm Jun 15, 2026
4e2438d
Minor patches
stamparm Jun 15, 2026
75c4c86
Minor update
stamparm Jun 15, 2026
cc7f803
Adding ARCHITECTURE.md
stamparm Jun 15, 2026
a0cbfba
Adding support for better JSON comparison
stamparm Jun 16, 2026
1404133
Add --prove, opt-in --auto-tamper WAF bypass, and blindbinary/infosch…
stamparm Jun 17, 2026
002a28f
Couple of bug fixes
stamparm Jun 18, 2026
8a458fc
Removal of duplicate boundary
stamparm Jun 18, 2026
8de9c58
Couple of improvements
stamparm Jun 18, 2026
a2d44a7
Minor patching
stamparm Jun 18, 2026
d5d6fac
Minor patch
stamparm Jun 19, 2026
824ef46
Fixing issues with UNION and COLLATE on MySQL
stamparm Jun 19, 2026
2aed8d1
Minor doctest fix
stamparm Jun 19, 2026
bbc4936
Fixing several inaccurate payload titles
stamparm Jun 19, 2026
889ad43
Adding adaptive set-membership (Huffman) retrieval for faster blind d…
stamparm Jun 19, 2026
497d377
Adding keyset (seek) pagination for faster blind table dumps
stamparm Jun 19, 2026
35fefc3
Improvements for JSON_AGG retrieval
stamparm Jun 20, 2026
e1aac02
More improvements for JSON_AGG retrieval
stamparm Jun 20, 2026
6d306ba
Rewritten the improved keep-alive handler
stamparm Jun 20, 2026
9d653d2
Making Keep-Alive on by default
stamparm Jun 20, 2026
e82b1b5
Minor update
stamparm Jun 21, 2026
7e652ed
Adding some more pyunittests
stamparm Jun 21, 2026
a3b857e
Minor update
stamparm Jun 21, 2026
03b44ed
Minor update
stamparm Jun 21, 2026
9d8c102
Fixes CI/CD tests
stamparm Jun 21, 2026
46fc5ac
Minor update
stamparm Jun 21, 2026
a3fc171
Minor update
stamparm Jun 21, 2026
0b2b3e9
Minor patch
stamparm Jun 21, 2026
bf28b0a
Minor patch
stamparm Jun 21, 2026
87a3a2e
Minor fixes
stamparm Jun 22, 2026
f5ee402
Fixes CI/CD issue
stamparm Jun 22, 2026
4ba8ede
Minor update
stamparm Jun 22, 2026
b66840e
Potential patch for CI/CD issue
stamparm Jun 22, 2026
de87b28
Minor patch
stamparm Jun 23, 2026
c0d343b
Some XML updates
stamparm Jun 23, 2026
f15b73d
Minor fixes
stamparm Jun 23, 2026
0d82096
Minor update
stamparm Jun 23, 2026
da66f1b
Adding HUFFMAN_PRIOR_WEIGHTS
stamparm Jun 23, 2026
57dcc04
Minor improvements
stamparm Jun 23, 2026
0cfa88e
Minor patch
stamparm Jun 23, 2026
a2bbca1
Minor patch
stamparm Jun 23, 2026
15715a2
Adding switch --procs (#778)
stamparm Jun 23, 2026
cef105f
Minor bug fixes
stamparm Jun 23, 2026
0430f78
Improving --gui and --tui
stamparm Jun 24, 2026
0a331f2
Minor update
stamparm Jun 24, 2026
2893fd5
Adding support for NoSQL injection
stamparm Jun 24, 2026
f6912fc
Adding support for GraphQL (--graphql)
stamparm Jun 27, 2026
e47b976
Fixing CI/CD issue
stamparm Jun 27, 2026
7a95103
Fixing CI/CD issue
stamparm Jun 27, 2026
e8162d3
Adding switch --ldap
stamparm Jun 27, 2026
c51b4c0
Minor patches
stamparm Jun 27, 2026
7e610b8
Removing some unused imports
stamparm Jun 28, 2026
771d4cf
Fixing CI/CD failure
stamparm Jun 28, 2026
cbf5dbd
Minor refactoring
stamparm Jun 28, 2026
69ba213
Minor refactoring
stamparm Jun 28, 2026
333e3e4
Fixing some pyflakes naggings
stamparm Jun 28, 2026
9daeab2
Removing last pyflakes nagging cause
stamparm Jun 28, 2026
c7a9185
Adding pyflakes into CI/CD pipeline
stamparm Jun 28, 2026
692c4bc
Fixing CI/CD failure
stamparm Jun 28, 2026
149bdd8
Fixing CI/CD failure
stamparm Jun 28, 2026
02ae09e
Minor update
stamparm Jun 28, 2026
3809161
Minor update
stamparm Jun 28, 2026
d6a754e
Minor update
stamparm Jun 28, 2026
1feb6f7
Minor update
stamparm Jun 28, 2026
60403f8
Debugging CI/CD failure
stamparm Jun 28, 2026
ca75546
Debugging CI/CD failure
stamparm Jun 28, 2026
24e26d1
Debugging CI/CD failure
stamparm Jun 28, 2026
70efdfd
Checking if pyflakes really works in CI/CD
stamparm Jun 28, 2026
6bbcd4a
Fixing CI/CD failure
stamparm Jun 28, 2026
8676166
Polishing CI/CD pipeline
stamparm Jun 28, 2026
b933ff3
Polishing CI/CD pipeline
stamparm Jun 28, 2026
cb20a44
Update of unit tests
stamparm Jun 28, 2026
2297c81
Update of tests
stamparm Jun 28, 2026
4c86981
Fixing CI/CD pipeline
stamparm Jun 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
8 changes: 8 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -1,8 +1,16 @@
*.conf text eol=lf
*.json text eol=lf
*.html text eol=lf
*.md text eol=lf
*.md5 text eol=lf
*.pl text eol=lf
*.py text eol=lf
*.sh text eol=lf
*.sql text eol=lf
*.txt text eol=lf
*.xml text eol=lf
*.yaml text eol=lf
*.yml text eol=lf
LICENSE text eol=lf
COMMITMENT text eol=lf

Expand Down
48 changes: 12 additions & 36 deletions .github/CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -1,46 +1,22 @@
# Contributor Covenant Code of Conduct
# Code of Conduct

## Our Pledge
## Our Goal

In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
The sqlmap project provides a professional, technical environment for contributors. We prioritize technical excellence and respectful collaboration.

## Our Standards
## Standards

Examples of behavior that contributes to creating a positive environment include:
Contributors are expected to:

* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members
* Be respectful and professional in all communications.
* Focus on the technical merits of the project.
* Gracefully accept constructive criticism.

Examples of unacceptable behavior by participants include:
Unacceptable behavior includes:

* The use of sexualized language or imagery and unwelcome sexual attention or advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a professional setting

## Our Responsibilities

Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.

Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.

## Scope

This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
* Harassment, personal attacks, or doxxing.
* Any behavior that disrupts the technical progress of the project.

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at dev@sqlmap.org. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.

Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]

[homepage]: http://contributor-covenant.org
[version]: http://contributor-covenant.org/version/1/4/
The project maintainers have sole authority to moderate discussions and contributions. Decisions are made at the maintainers' discretion to ensure the project remains a focused and productive environment. Reports can be sent to `dev@sqlmap.org`.
106 changes: 99 additions & 7 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,23 +3,115 @@ on:
branches: [ master ]
pull_request:
branches: [ master ]
workflow_dispatch:

concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true

permissions:
contents: read

jobs:
build:
runs-on: ${{ matrix.os }}
timeout-minutes: 30

strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
python-version: [ '2.x', '3.11', 'pypy-2.7', 'pypy-3.7' ]
include:
- os: ubuntu-latest
python-version: "pypy-2.7"
- os: macos-latest
python-version: "3.8"
- os: windows-latest
python-version: "3.14"

steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v2
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 1
persist-credentials: false

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}

- name: Python sanity
run: python -VV

- name: Pyflakes lint
shell: bash
run: |
python - <<'PY'
from __future__ import print_function

import subprocess
import sys

subprocess.check_call([
sys.executable, "-m", "pip", "install", "pyflakes"
])

files = subprocess.check_output(
["git", "ls-files", "*.py"]
).decode("utf-8").splitlines()

files = [
f for f in files
if not f.startswith("thirdparty/")
]

proc = subprocess.Popen(
[sys.executable, "-m", "pyflakes"] + files,
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT,
)
out, _ = proc.communicate()

text = out.decode("utf-8", "replace")
lines = [
line for line in text.splitlines()
if " redefines " not in line
]

if lines:
print("\n".join(lines))
sys.exit(1)

if proc.returncode not in (0, 1):
if text:
print(text)
print("pyflakes failed unexpectedly with status %s" % proc.returncode)
sys.exit(proc.returncode or 1)

print("pyflakes: clean")
PY

- name: Basic import test
run: python -c "import sqlmap; import sqlmapapi"

- name: Unit tests
# -B: do not write .pyc files. On Python 2 / PyPy a cached .pyc makes a module's __file__
# point at the .pyc, which would make the later --smoke getFileType(__file__) doctest see
# 'binary' instead of 'text'. Keeping this step byte-compile-free leaves --smoke clean.
run: python -B -m unittest discover -s tests -p "test_*.py"

- name: Coverage
if: matrix.python-version != 'pypy-2.7'
run: |
python -m pip install coverage
python -m coverage run --source=lib,plugins,tamper -m unittest discover -s tests -p "test_*.py"
python -m coverage run -a --source=lib,plugins,tamper sqlmap.py --doc-test
python -m coverage report --fail-under=50

- name: Smoke test
run: python sqlmap.py --smoke
run: python sqlmap.py --smoke-test

- name: Vuln test
run: python sqlmap.py --vuln
run: python sqlmap.py --vuln-test

- name: API test
run: python sqlmap.py --api-test
12 changes: 11 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,14 @@ __pycache__/
traffic.txt
*~
req*.txt
.idea/
.idea/
.aider*
.DS_Store
.github/.DS_Store
data/.DS_Store
extra/.DS_Store
lib/.DS_Store
plugins/.DS_Store
thirdparty/.DS_Store
CLAUDE.md
.coverage
Loading