mirror of
https://github.com/pytorch/pytorch.git
synced 2025-10-20 21:14:14 +08:00
Summary: Resolves https://github.com/pytorch/pytorch/issues/55810 by closing some possible security holes due to using [GitHub Actions `${{ <expressions> }}`](https://docs.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#about-contexts-and-expressions) in `.github/workflows/add_annotations.yml` and also patching a few other possible scenarios that could cause the workflow to fail by a PR passing a malformed artifact. - [x] flag and remove GitHub Actions expressions in JS scripts - [x] don't fail the workflow if the artifact doesn't look as expected - [x] write unit tests for `tools/extract_scripts.py` Pull Request resolved: https://github.com/pytorch/pytorch/pull/56071 Test Plan: I tested the end-to-end "Lint" and "Add annotations" system in a separate sandbox repo, including the following cases: - well-formed artifact - missing artifact - artifact containing a file named `linter-output.zip` (name clash) - artifact whose `commit-sha.txt` doesn't contain a 40-digit hex string - artifact whose `commit-sha.txt` contains a 40-digit hex string that isn't a valid Git hash for the current repo - in this last case, the workflow does fail, but handling that is the responsibility of [pytorch/add-annotations-github-action](https://github.com/pytorch/add-annotations-github-action), not pytorch/pytorch To run the new unit tests added in this PR: ``` python tools/test/test_extract_scripts.py ``` Reviewed By: seemethere Differential Revision: D27807074 Pulled By: samestep fbshipit-source-id: e2d3cc5437fe80ff03d46237ebba289901bc567c
81 lines
2.3 KiB
INI
81 lines
2.3 KiB
INI
# This is the PyTorch mypy-strict.ini file (note: don't change this line! -
|
|
# test_run_mypy in test/test_type_hints.py uses this string)
|
|
|
|
# Unlike mypy.ini, it enforces very strict typing rules. The intention is for
|
|
# this config file to be used to ENFORCE that people are using mypy on codegen
|
|
# files.
|
|
|
|
# For now, only code_template.py and benchmark utils Timer are covered this way
|
|
|
|
[mypy]
|
|
python_version = 3.6
|
|
plugins = mypy_plugins/check_mypy_version.py
|
|
|
|
cache_dir = .mypy_cache/strict
|
|
strict_optional = True
|
|
show_column_numbers = True
|
|
warn_no_return = True
|
|
disallow_any_unimported = True
|
|
|
|
# Across versions of mypy, the flags toggled by --strict vary. To ensure
|
|
# we have reproducible type check, we instead manually specify the flags
|
|
warn_unused_configs = True
|
|
disallow_any_generics = True
|
|
disallow_subclassing_any = True
|
|
disallow_untyped_calls = True
|
|
disallow_untyped_defs = True
|
|
disallow_incomplete_defs = True
|
|
check_untyped_defs = True
|
|
disallow_untyped_decorators = True
|
|
no_implicit_optional = True
|
|
warn_redundant_casts = True
|
|
warn_unused_ignores = True
|
|
warn_return_any = True
|
|
implicit_reexport = False
|
|
strict_equality = True
|
|
|
|
files =
|
|
.github/scripts/generate_binary_build_matrix.py,
|
|
benchmarks/instruction_counts,
|
|
tools/autograd/*.py,
|
|
tools/clang_tidy.py,
|
|
tools/codegen/*.py,
|
|
tools/extract_scripts.py,
|
|
tools/mypy_wrapper.py,
|
|
tools/print_test_stats.py,
|
|
tools/pyi/*.py,
|
|
tools/stats_utils/*.py,
|
|
tools/test_history.py,
|
|
tools/test/test_extract_scripts.py,
|
|
tools/test/test_mypy_wrapper.py,
|
|
tools/test/test_test_history.py,
|
|
tools/test/test_trailing_newlines.py,
|
|
tools/test/test_translate_annotations.py,
|
|
tools/trailing_newlines.py,
|
|
tools/translate_annotations.py,
|
|
torch/testing/_internal/framework_utils.py,
|
|
torch/utils/benchmark/utils/common.py,
|
|
torch/utils/benchmark/utils/timer.py,
|
|
torch/utils/benchmark/utils/valgrind_wrapper/*.py,
|
|
torch/utils/_pytree.py
|
|
|
|
# Specifically enable imports of benchmark utils. As more of `torch` becomes
|
|
# strict compliant, those modules can be enabled as well.
|
|
[mypy-torch.utils.benchmark.utils.*]
|
|
follow_imports = normal
|
|
|
|
# Don't follow imports as much of `torch` is not strict compliant.
|
|
[mypy-torch]
|
|
follow_imports = skip
|
|
|
|
[mypy-torch.*]
|
|
follow_imports = skip
|
|
|
|
# Missing stubs.
|
|
|
|
[mypy-numpy]
|
|
ignore_missing_imports = True
|
|
|
|
[mypy-mypy.*]
|
|
ignore_missing_imports = True
|