Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -64,10 +64,10 @@ test: clean

upgrade: export CUSTOM_COMPILE_COMMAND=make upgrade
upgrade: ## update the requirements/*.txt files with the latest packages satisfying requirements/*.in
pip install -q -r requirements/pip_tools.txt
pip-compile --upgrade --allow-unsafe --rebuild -o requirements/pip.txt requirements/pip.in
python -m pip install pip-tools
Copy link

Copilot AI Jan 28, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The upgrade target installs pip-tools directly from PyPI with python -m pip install pip-tools, which pulls an unpinned third-party build tool and executes its code each time make upgrade runs. If an attacker compromises the pip-tools package or your package index, this step can lead to remote code execution during dependency compilation and allow malicious versions of downstream dependencies to be pinned into your requirements. Install pip-tools only from a pinned version (for example via your requirements/pip_tools.txt and constraints) so that builds always use a vetted, immutable tool version.

Copilot uses AI. Check for mistakes.
pip-compile --upgrade -o requirements/pip_tools.txt requirements/pip_tools.in
pip install -qr requirements/pip.txt
pip install -qr requirements/pip_tools.txt
pip-compile --upgrade --allow-unsafe --rebuild -o requirements/pip.txt requirements/pip.in
pip install -qr requirements/pip.txt
pip-compile --upgrade -o requirements/base.txt requirements/base.in
pip-compile --upgrade -o requirements/test.txt requirements/test.in
16 changes: 9 additions & 7 deletions requirements/base.txt
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
#
# This file is autogenerated by pip-compile with Python 3.11
# This file is autogenerated by pip-compile with Python 3.8
# by the following command:
#
# make upgrade
#
boto==2.49.0
# via google-compute-engine
boto3==1.42.31
# via -r requirements/base.in
botocore==1.42.31
boto3==1.37.38
# via
# -c /Users/adusenbery/code/api-manager/requirements/constraints.txt
Copy link

Copilot AI Jan 28, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This comment line embeds a developer-specific absolute path (/Users/adusenbery/...) into the generated requirements file. These # via -c references should use repository-relative paths (for example, requirements/constraints.txt) to keep the file portable across machines and CI environments, and consistent with other # via entries in this repo.

Suggested change
# -c /Users/adusenbery/code/api-manager/requirements/constraints.txt
# -c requirements/constraints.txt

Copilot uses AI. Check for mistakes.
# -r requirements/base.in
botocore==1.37.38
# via
# -r requirements/base.in
# boto3
Expand All @@ -24,17 +26,17 @@ jmespath==1.0.1
# -r requirements/base.in
# boto3
# botocore
markupsafe==3.0.3
markupsafe==2.1.5
# via jinja2
python-dateutil==2.9.0.post0
# via botocore
s3transfer==0.16.0
s3transfer==0.11.5
# via boto3
six==1.17.0
# via
# -r requirements/base.in
# python-dateutil
urllib3==2.6.3
urllib3==1.26.20
# via botocore

# The following packages are considered to be unsafe in a requirements file:
Expand Down
8 changes: 8 additions & 0 deletions requirements/constraints.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,11 @@

# This file contains all common constraints for edx-repos
-c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt

# Need to pin this as long as we're on Python 3.8 in this codebase
# https://pypi.org/project/boto3/1.38.0/
boto3<1.38

# 7.0 dropped support for Python 3.8
# https://pypi.org/project/pip-tools/7.0.0/
pip-tools<7.0
4 changes: 0 additions & 4 deletions requirements/pip-tools.in

This file was deleted.

22 changes: 0 additions & 22 deletions requirements/pip-tools.txt

This file was deleted.

6 changes: 3 additions & 3 deletions requirements/pip.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#
# This file is autogenerated by pip-compile with Python 3.11
# This file is autogenerated by pip-compile with Python 3.8
# by the following command:
#
# make upgrade
Expand All @@ -8,7 +8,7 @@ wheel==0.45.1
# via -r requirements/pip.in

# The following packages are considered to be unsafe in a requirements file:
pip==25.3
pip==25.0.1
# via -r requirements/pip.in
setuptools==80.9.0
setuptools==75.3.3
# via -r requirements/pip.in
20 changes: 14 additions & 6 deletions requirements/pip_tools.txt
Original file line number Diff line number Diff line change
@@ -1,23 +1,31 @@
#
# This file is autogenerated by pip-compile with Python 3.11
# This file is autogenerated by pip-compile with Python 3.8
# by the following command:
#
# make upgrade
#
build==1.4.0
build==1.2.2.post1
# via pip-tools
click==8.3.1
click==8.1.8
# via pip-tools
packaging==25.0
importlib-metadata==8.5.0
# via build
pip-tools==7.5.2
# via -r requirements/pip_tools.in
packaging==26.0
# via build
pip-tools==6.14.0
# via
# -c requirements/constraints.txt
# -r requirements/pip_tools.in
pyproject-hooks==1.2.0
# via build
tomli==2.4.0
# via
# build
# pip-tools
wheel==0.45.1
# via pip-tools
zipp==3.20.2
# via importlib-metadata

# The following packages are considered to be unsafe in a requirements file:
# pip
Expand Down
Loading
Loading