forked from starenka/mailjetv3
-
Notifications
You must be signed in to change notification settings - Fork 39
refactor: Modernize SDK architecture, harden security, and enable O(1) routing #130
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
Open
skupriienko
wants to merge
26
commits into
master
Choose a base branch
from
refine-client
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
26 commits
Select commit
Hold shift + click to select a range
2f83c0e
ci: harden security workflows and packaging
skupriienko f3cf17f
ci: Remove codeql workflow
skupriienko 3011d35
chore: trigger empty commit for CI/CD
skupriienko 1b9aa32
ci: Add codeql workflow, add missign test dependency
skupriienko 381f1ef
Potential fix for pull request finding 'CodeQL / Workflow does not co…
skupriienko 4265de0
chore: Add a new line
skupriienko 7d1ab29
Merge branch 'refine-client' of github-oss-repack:mailjet/mailjet-api…
skupriienko 1ae37af
test: replace explicit __del__ calls with gc.collect() to resolve Cod…
skupriienko fe73904
test: skip heavy property-based tests on CI environments
skupriienko 840ff4d
test: skip heavy tests
skupriienko 223ee1a
test: Add backslash
skupriienko b27b874
fix: resolve strict mypy unused ignores and callable type arguments o…
skupriienko bc783cb
chore: remove unused imports
skupriienko 8ebdafc
Potential fix for pull request finding 'Empty except'
skupriienko 0819d8b
Potential fix for pull request finding 'Unused import'
skupriienko 7075193
chore: Remove __del__ method and tests
skupriienko 0f36471
docs: Update examples with the usage of context manager
skupriienko 0360a8e
chore: Remove unused import
skupriienko dff848a
perf: Add new perf and boot results to PERFORMANCE.md
skupriienko e0fef90
fix: Handle payload too large size and telemetry
skupriienko 20b36db
docs: Update performance and boot benchmarks
skupriienko 3890005
refactor(client): implement O(1) registry routing and secure URI inte…
skupriienko 1520d0b
refactor: modernize routing, security, and linting
skupriienko f95bc71
docs: Update perf & boost data
skupriienko 06a7b68
docs: Fix linter issues in readme
skupriienko b37a8a4
docs: Update the changelog and samples
skupriienko File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Some comments aren't visible on the classic Files Changed page.
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,23 @@ | ||
| name: CodeQL | ||
| on: | ||
| push: { branches: [main] } | ||
| pull_request: { branches: [main] } | ||
| schedule: [{ cron: "37 3 * * 0" }] # weekly full scan | ||
|
|
||
| jobs: | ||
| analyze: | ||
| if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository | ||
| runs-on: ubuntu-latest | ||
| permissions: | ||
| security-events: write | ||
| contents: read | ||
| actions: read | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - uses: github/codeql-action/init@v3 | ||
| with: | ||
| languages: python | ||
| queries: security-extended,security-and-quality | ||
| - uses: github/codeql-action/analyze@v3 | ||
| with: | ||
| category: "/language:python" |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,59 @@ | ||
| name: Security | ||
|
|
||
| on: | ||
| push: { branches: [main] } | ||
| pull_request: | ||
| schedule: [{ cron: "0 5 * * *" }] # Daily security sweep | ||
|
|
||
| permissions: | ||
| contents: read | ||
|
|
||
| jobs: | ||
| static-analysis: | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - uses: actions/setup-python@v5 | ||
| with: | ||
| python-version: "3.13" | ||
| cache: 'pip' | ||
| - run: pip install ruff bandit mypy pip-audit | ||
| # Fast checks | ||
| - run: ruff check . | ||
| - run: bandit -c pyproject.toml -r mailjet_rest | ||
| - run: mypy --strict mailjet_rest | ||
|
|
||
| semgrep: | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - uses: returntocorp/semgrep-action@v1 | ||
| with: | ||
| config: >- | ||
| p/python | ||
| p/owasp-top-ten | ||
| p/supply-chain | ||
| p/command-injection | ||
| p/insecure-transport | ||
| error: true # Fails CI if issues found | ||
|
|
||
| pip-audit: | ||
|
github-advanced-security[bot] marked this conversation as resolved.
Fixed
|
||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - uses: actions/setup-python@v5 | ||
| with: { python-version: "3.13" } | ||
| - run: pip install pip-audit | ||
| - run: pip-audit --strict | ||
|
|
||
| osv-scan: | ||
| permissions: | ||
| actions: read | ||
| security-events: write # For Security Tab | ||
| contents: read | ||
| uses: "google/osv-scanner-action/.github/workflows/osv-scanner-reusable.yml@v2.3.8" | ||
| with: | ||
| # Explicit root scanning | ||
| scan-args: |- | ||
| --recursive | ||
| ./ | ||
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.