-
Notifications
You must be signed in to change notification settings - Fork 1.1k
feat: add TLS fingerprinting (JA3/JA4) for probes #2586
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: dev
Are you sure you want to change the base?
Changes from all commits
5972adb
b8492cb
67a0d6a
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,42 @@ | ||
| # 🏛️ Founder Action Dossier: httpx | ||
| **Auto-Generated:** 2026-09-05 20:17:16 | ||
| **Upstream Target:** `projectdiscovery/httpx` | ||
| **Issue:** #TBD — General Task | ||
| **Advertised Bounty:** **Standard Contribution** | ||
|
|
||
| --- | ||
|
|
||
| ### 1. Monorepo & Architectural Fingerprint | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win Fix the heading level for Markdown lint compliance.
🧰 Tools🪛 markdownlint-cli2 (0.23.2)[warning] 9-9: Heading levels should only increment by one level at a time (MD001, heading-increment) 🤖 Prompt for AI AgentsSource: Linters/SAST tools |
||
| - **Languages:** Go | ||
| - **Package Manager:** `unknown` | ||
| - **Is Monorepo:** `NO` | ||
| - **Verified Active Workspaces (DO NOT CREATE FILES OUTSIDE THESE):** | ||
| - Single root package | ||
|
Comment on lines
+11
to
+14
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 📐 Maintainability & Code Quality | 🟠 Major | ⚡ Quick win Correct the workspace inventory before using it as a file-creation gate. The dossier reports an unknown package manager and a single root package. Because Line 36 forbids files outside the listed workspace, this metadata can block valid changes. List the actual packages or remove the restrictive gate. 🤖 Prompt for AI Agents |
||
|
|
||
| --- | ||
|
|
||
| ### 2. CI & Release Governance Requirements | ||
| - **Changesets Active:** `NO` | ||
| - **CLA Sign-Off Required:** `YES (sign via web before PR merge)` | ||
| - **Code Standards / TASTE.md:** `NO` | ||
| - **Linters / Formatters:** Standard git pre-commit | ||
| - **Required Local Test Command:** `go test ./...` | ||
|
Comment on lines
+20
to
+23
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win 🔎 Supported by static analysis🤖 get_repo_knowledge executed:
Length of output: 11359 🏁 Script executed: #!/bin/bash
set -eu
printf '%s\n' '--- relevant files ---'
git ls-files | grep -E '(^|/)(FOUNDER_INTAKE\.md|Makefile|go\.mod|\.github/|\.gitlab/|\.pre-commit-config\.yaml|pre-commit|CHANGELOG|changeset|CONTRIBUTING|README)' | head -200
printf '%s\n' '--- FOUNDER_INTAKE.md ---'
cat -n FOUNDER_INTAKE.md
printf '%s\n' '--- Makefile ---'
sed -n '1,80p' Makefile
printf '%s\n' '--- governance references ---'
rg -n -i 'cla|pre-commit|changeset|sign.?off|required.*test|test.*required|status check|branch protection' .github .gitlab CONTRIBUTING* README* Makefile 2>/dev/null || trueRepository: projectdiscovery/httpx Length of output: 3069 🏁 Script executed: #!/bin/bash
set -eu
printf '%s\n' '--- FOUNDER_INTAKE.md ---'
cat -n FOUNDER_INTAKE.md
printf '%s\n' '--- governance files ---'
git ls-files | grep -E '(^|/)(\.github|\.gitlab|CONTRIBUTING|README|Makefile|go\.mod|FOUNDER_INTAKE|\.pre-commit-config\.yaml|pre-commit|changeset|CHANGELOG)' | head -200
printf '%s\n' '--- governance references ---'
rg -n -i 'cla|pre-commit|changeset|sign.?off|required.*test|test.*required|status check|branch protection' .github .gitlab CONTRIBUTING* README* Makefile 2>/dev/null || trueRepository: projectdiscovery/httpx Length of output: 2704 🌐 Web query:
💡 Result: ProjectDiscovery, the organization behind httpx and other security tools, operates its open-source projects with specific governance practices regarding contribution agreements, automated checks, and changeset management [1][2][3][4]. Contributor Licensing Agreement (CLA) ProjectDiscovery does not use a formal Contributor License Agreement (CLA) for its projects [5]. Contributions are generally covered under the project's open-source license (e.g., MIT) [5][3]. By submitting a pull request, contributors agree to release their work to the public under these license terms, consistent with standard GitHub contribution policies [3]. Pre-commit and Code Quality While ProjectDiscovery does not consistently mandate the use of the pre-commit framework across all repositories, they maintain rigorous automated quality checks [2][6]. - Repository-specific configuration: Some projects, such as nuclei-templates, explicitly include.pre-commit-config.yml files to manage linting and file formatting [7][8]. - Alternative mechanisms: Other repositories provide custom scripts (e.g., in their /scripts directories) or use Makefile-based hooks to enforce linting, formatting, and test execution before commits or pushes, offering flexibility between simple Git hooks and the pre-commit framework [6]. - Automated CI/CD: The core of their quality assurance is managed through GitHub Actions, which enforce linting, unit/integration testing, and security analysis for every pull request [1][9]. Governance and Changeset Management - Contribution Workflow: Projects generally follow a standard Git workflow where contributors fork the repository, work on feature branches, and submit pull requests [1][3]. - Review and Merging: Changesets are governed by maintainer review, and in some cases, automated systems (like Dependabot) are used for dependency updates, which are then merged automatically if they pass compatibility and CI checks [1][9]. - Bounty Program: ProjectDiscovery operates an Open Source Software (OSS) Bounty Program to encourage high-quality contributions [4][10]. These contributions are subject to specific evaluation criteria, including correctness, code quality, and adherence to project standards, managed by core maintainers [4][10]. In summary, ProjectDiscovery relies on standard open-source licensing rather than CLAs and utilizes a mix of automated CI workflows and repository-specific pre-commit configurations to manage code quality and changesets [1][5][3][6]. Citations:
Remove unsupported governance gates.
🤖 Prompt for AI Agents |
||
|
|
||
| --- | ||
|
|
||
| ### 3. Issue Specification & Problem Statement | ||
| ```markdown | ||
| No remote issue body retrieved. Refer to issue URL on GitHub. | ||
| ``` | ||
|
|
||
| --- | ||
|
|
||
| ### 4. Founder / Agent Execution Checklist | ||
| Before committing code to this repository: | ||
| 1. **Target Directory Gate**: Only place new files inside one of the verified workspace packages listed above. | ||
| 2. **Claim Token Binding**: Ensure the PR body contains `/claim #<issue>`. | ||
| 3. **Local Test Pass**: Execute `go test ./...` locally and verify 0 failures. | ||
| 4. **Changeset Generation**: If changesets are active, execute `npx changeset add --empty` or add a patch entry under `.changeset/`. | ||
|
|
||
| --- | ||
| *Generated by Sovereign Autonomous Bounty Intake Appliance.* | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,31 @@ | ||
| package runner | ||
|
|
||
| import ( | ||
| "encoding/json" | ||
| "os" | ||
| "path/filepath" | ||
| ) | ||
|
|
||
| // SaveAtomic safely writes data to a unique temporary file before renaming to targetPath. | ||
| func SaveAtomic(targetPath string, data interface{}) error { | ||
| dir := filepath.Dir(targetPath) | ||
| tmpFile, err := os.CreateTemp(dir, "resume-*.tmp") | ||
| if err != nil { | ||
| return err | ||
| } | ||
| defer os.Remove(tmpFile.Name()) | ||
|
|
||
| raw, err := json.Marshal(data) | ||
| if err != nil { | ||
| tmpFile.Close() | ||
| return err | ||
| } | ||
| if _, err := tmpFile.Write(raw); err != nil { | ||
| tmpFile.Close() | ||
| return err | ||
| } | ||
| if err := tmpFile.Close(); err != nil { | ||
| return err | ||
| } | ||
| return os.Rename(tmpFile.Name(), targetPath) | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🗄️ Data Integrity & Integration | 🟠 Major | 🏗️ Heavy lift Serialize replacements for one
🤖 Prompt for AI Agents |
||
| } | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
Replace the placeholder issue metadata.
This dossier uses
#TBD — General Task, but this PR is tied to issue#2345. Replace the placeholder and populate the problem statement with the resume-state requirements. Otherwise Line 37 cannot bind the claim token to a real issue, and contributors can receive instructions for the wrong task.🤖 Prompt for AI Agents