From 4d82885926f6cc7728241f661d667a6d471cfa15 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 6 Aug 2024 03:48:49 +0000 Subject: [PATCH 01/76] Bump django-htmx from 1.18.0 to 1.19.0 Bumps [django-htmx](https://github.com/adamchainz/django-htmx) from 1.18.0 to 1.19.0. - [Changelog](https://github.com/adamchainz/django-htmx/blob/main/docs/changelog.rst) - [Commits](https://github.com/adamchainz/django-htmx/compare/1.18.0...1.19.0) --- updated-dependencies: - dependency-name: django-htmx dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- requirements/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements/requirements.txt b/requirements/requirements.txt index 0b3ea4f5..c89b5b0e 100644 --- a/requirements/requirements.txt +++ b/requirements/requirements.txt @@ -79,7 +79,7 @@ django-extensions==3.2.3 # django-anvil-consortium-manager django-filter==23.5 # via django-anvil-consortium-manager -django-htmx==1.18.0 +django-htmx==1.19.0 # via -r requirements/requirements.in django-login-required-middleware==0.9.0 # via -r requirements/requirements.in From fd2a03df1ad77bcbd29c5614874c678031b73ee8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 9 Aug 2024 03:56:57 +0000 Subject: [PATCH 02/76] Bump ruff from 0.5.6 to 0.5.7 Bumps [ruff](https://github.com/astral-sh/ruff) from 0.5.6 to 0.5.7. - [Release notes](https://github.com/astral-sh/ruff/releases) - [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md) - [Commits](https://github.com/astral-sh/ruff/compare/0.5.6...0.5.7) --- updated-dependencies: - dependency-name: ruff dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- requirements/dev-requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements/dev-requirements.txt b/requirements/dev-requirements.txt index 85a4e2c9..a85ad1c4 100644 --- a/requirements/dev-requirements.txt +++ b/requirements/dev-requirements.txt @@ -137,7 +137,7 @@ requests==2.32.3 # -c requirements/requirements.txt # -c requirements/test-requirements.txt # sphinx -ruff==0.5.6 +ruff==0.5.7 # via -r requirements/dev-requirements.in six==1.16.0 # via From 5fed71c473a19e3b9f307813251c589374813833 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 12 Aug 2024 16:25:15 +0000 Subject: [PATCH 03/76] [pre-commit.ci] pre-commit autoupdate MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit updates: - [github.com/astral-sh/ruff-pre-commit: v0.5.6 → v0.5.7](https://github.com/astral-sh/ruff-pre-commit/compare/v0.5.6...v0.5.7) --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 8448e4e3..f34ba359 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -12,7 +12,7 @@ repos: - repo: https://github.com/astral-sh/ruff-pre-commit # Ruff version. - rev: v0.5.6 + rev: v0.5.7 hooks: # Run the linter. - id: ruff From df1c1ae3465c18637e282caaa05489d7551bc37b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 19 Aug 2024 03:11:34 +0000 Subject: [PATCH 04/76] Bump ruff from 0.5.7 to 0.6.1 Bumps [ruff](https://github.com/astral-sh/ruff) from 0.5.7 to 0.6.1. - [Release notes](https://github.com/astral-sh/ruff/releases) - [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md) - [Commits](https://github.com/astral-sh/ruff/compare/0.5.7...0.6.1) --- updated-dependencies: - dependency-name: ruff dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- requirements/dev-requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements/dev-requirements.txt b/requirements/dev-requirements.txt index 232a13fe..529f84ee 100644 --- a/requirements/dev-requirements.txt +++ b/requirements/dev-requirements.txt @@ -137,7 +137,7 @@ requests==2.32.3 # -c requirements/requirements.txt # -c requirements/test-requirements.txt # sphinx -ruff==0.5.7 +ruff==0.6.1 # via -r requirements/dev-requirements.in six==1.16.0 # via From 540761bfc7ef4b06e142ec424bb38b276424f106 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 19 Aug 2024 03:11:48 +0000 Subject: [PATCH 05/76] Bump factory-boy from 3.3.0 to 3.3.1 Bumps [factory-boy](https://github.com/FactoryBoy/factory_boy) from 3.3.0 to 3.3.1. - [Changelog](https://github.com/FactoryBoy/factory_boy/blob/master/docs/changelog.rst) - [Commits](https://github.com/FactoryBoy/factory_boy/compare/3.3.0...3.3.1) --- updated-dependencies: - dependency-name: factory-boy dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- requirements/test-requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements/test-requirements.txt b/requirements/test-requirements.txt index 8647c073..8b2a728c 100644 --- a/requirements/test-requirements.txt +++ b/requirements/test-requirements.txt @@ -25,7 +25,7 @@ exceptiongroup==1.2.0 # via pytest execnet==2.1.1 # via pytest-xdist -factory-boy==3.3.0 +factory-boy==3.3.1 # via -r requirements/test-requirements.in faker==23.2.1 # via factory-boy From 431bb1d20b217f3ab239a7e4d6065ceb1bcb508f Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 19 Aug 2024 16:25:11 +0000 Subject: [PATCH 06/76] [pre-commit.ci] pre-commit autoupdate MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit updates: - [github.com/astral-sh/ruff-pre-commit: v0.5.7 → v0.6.1](https://github.com/astral-sh/ruff-pre-commit/compare/v0.5.7...v0.6.1) --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index f34ba359..50ecf847 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -12,7 +12,7 @@ repos: - repo: https://github.com/astral-sh/ruff-pre-commit # Ruff version. - rev: v0.5.7 + rev: v0.6.1 hooks: # Run the linter. - id: ruff From 7ec46dec366e02f74bc9a12fe51fb69a03010272 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 22 Aug 2024 03:39:37 +0000 Subject: [PATCH 07/76] Bump werkzeug from 3.0.3 to 3.0.4 Bumps [werkzeug](https://github.com/pallets/werkzeug) from 3.0.3 to 3.0.4. - [Release notes](https://github.com/pallets/werkzeug/releases) - [Changelog](https://github.com/pallets/werkzeug/blob/main/CHANGES.rst) - [Commits](https://github.com/pallets/werkzeug/compare/3.0.3...3.0.4) --- updated-dependencies: - dependency-name: werkzeug dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- requirements/dev-requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements/dev-requirements.txt b/requirements/dev-requirements.txt index 529f84ee..2539ef1b 100644 --- a/requirements/dev-requirements.txt +++ b/requirements/dev-requirements.txt @@ -218,7 +218,7 @@ wcwidth==0.2.13 # via prompt-toolkit websockets==12.0 # via sphinx-autobuild -werkzeug==3.0.3 +werkzeug==3.0.4 # via -r requirements/dev-requirements.in # The following packages are considered to be unsafe in a requirements file: From 42b7149c80e6492aee0bae4e65fb8749e44a95d7 Mon Sep 17 00:00:00 2001 From: Adrienne Stilp Date: Fri, 23 Aug 2024 13:24:20 -0700 Subject: [PATCH 08/76] Do not schedule combine-prs workflows It is better to review the dependabot PRs, close any that we do not want included in the combined update, and then run the combine-prs workflow manually (via workflow dispatch). This way we won't inadvertently get updates that we don't want (e.g., a passing PR that updates to django-5.0). --- .github/workflows/combine-prs.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/combine-prs.yml b/.github/workflows/combine-prs.yml index de7c331f..cf9c0d74 100644 --- a/.github/workflows/combine-prs.yml +++ b/.github/workflows/combine-prs.yml @@ -1,8 +1,6 @@ name: Combine PRs on: - schedule: - - cron: '0 8 * * 1' # Monday at 08:00 UTC workflow_dispatch: # allows you to manually trigger the workflow # The minimum permissions required to run this Action From 1041fea1ce2e44d7204c73d3c78e47677f52247f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 26 Aug 2024 03:45:17 +0000 Subject: [PATCH 09/76] Bump django-constance from 3.1.0 to 4.0.1 Bumps [django-constance](https://github.com/jazzband/django-constance) from 3.1.0 to 4.0.1. - [Release notes](https://github.com/jazzband/django-constance/releases) - [Changelog](https://github.com/jazzband/django-constance/blob/master/docs/changes.rst) - [Commits](https://github.com/jazzband/django-constance/compare/3.1.0...4.0.1) --- updated-dependencies: - dependency-name: django-constance dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- requirements/requirements.txt | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/requirements/requirements.txt b/requirements/requirements.txt index 0280a2b9..6fe86615 100644 --- a/requirements/requirements.txt +++ b/requirements/requirements.txt @@ -62,7 +62,7 @@ django-anvil-consortium-manager @ git+https://github.com/UW-GAC/django-anvil-con # via -r requirements/requirements.in django-autocomplete-light==3.11.0 # via django-anvil-consortium-manager -django-constance==3.1.0 +django-constance==4.0.1 # via -r requirements/requirements.in django-crispy-forms==2.3 # via @@ -88,9 +88,7 @@ django-maintenance-mode==0.21.1 django-model-utils==4.5.1 # via -r requirements/requirements.in django-picklefield==3.2 - # via - # -r requirements/requirements.in - # django-constance + # via -r requirements/requirements.in django-simple-history==3.7.0 # via # -r requirements/requirements.in From 42cf9bc3accbad49ae083ec4915f28fce8eb18a0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 26 Aug 2024 03:46:54 +0000 Subject: [PATCH 10/76] Bump mypy from 1.11.1 to 1.11.2 Bumps [mypy](https://github.com/python/mypy) from 1.11.1 to 1.11.2. - [Changelog](https://github.com/python/mypy/blob/master/CHANGELOG.md) - [Commits](https://github.com/python/mypy/compare/v1.11.1...v1.11.2) --- updated-dependencies: - dependency-name: mypy dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- requirements/dev-requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements/dev-requirements.txt b/requirements/dev-requirements.txt index 529f84ee..2076082d 100644 --- a/requirements/dev-requirements.txt +++ b/requirements/dev-requirements.txt @@ -92,7 +92,7 @@ markupsafe==2.1.5 # werkzeug matplotlib-inline==0.1.6 # via ipython -mypy==1.11.1 +mypy==1.11.2 # via -r requirements/dev-requirements.in mypy-extensions==1.0.0 # via mypy From de7b91e098780410e9f225183eaf504132d5dc3f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 26 Aug 2024 03:49:19 +0000 Subject: [PATCH 11/76] Bump django-dbbackup from 4.1.0 to 4.2.1 Bumps [django-dbbackup](https://github.com/jazzband/django-dbbackup) from 4.1.0 to 4.2.1. - [Release notes](https://github.com/jazzband/django-dbbackup/releases) - [Changelog](https://github.com/jazzband/django-dbbackup/blob/master/docs/changelog.rst) - [Commits](https://github.com/jazzband/django-dbbackup/compare/4.1.0...4.2.1) --- updated-dependencies: - dependency-name: django-dbbackup dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- requirements/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements/requirements.txt b/requirements/requirements.txt index 0280a2b9..fd70785a 100644 --- a/requirements/requirements.txt +++ b/requirements/requirements.txt @@ -69,7 +69,7 @@ django-crispy-forms==2.3 # -r requirements/requirements.in # crispy-bootstrap5 # django-anvil-consortium-manager -django-dbbackup==4.1.0 +django-dbbackup==4.2.1 # via -r requirements/requirements.in django-environ==0.10.0 # via -r requirements/requirements.in From f330145a342554b91cf895028403cc433b847735 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 26 Aug 2024 16:25:30 +0000 Subject: [PATCH 12/76] [pre-commit.ci] pre-commit autoupdate MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit updates: - [github.com/astral-sh/ruff-pre-commit: v0.6.1 → v0.6.2](https://github.com/astral-sh/ruff-pre-commit/compare/v0.6.1...v0.6.2) --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 50ecf847..85f46c02 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -12,7 +12,7 @@ repos: - repo: https://github.com/astral-sh/ruff-pre-commit # Ruff version. - rev: v0.6.1 + rev: v0.6.2 hooks: # Run the linter. - id: ruff From cf9be2bb32202f372e9f5aa2aaf1c6b212bb9395 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 30 Aug 2024 03:18:41 +0000 Subject: [PATCH 13/76] Bump ruff from 0.6.1 to 0.6.3 Bumps [ruff](https://github.com/astral-sh/ruff) from 0.6.1 to 0.6.3. - [Release notes](https://github.com/astral-sh/ruff/releases) - [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md) - [Commits](https://github.com/astral-sh/ruff/compare/0.6.1...0.6.3) --- updated-dependencies: - dependency-name: ruff dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- requirements/dev-requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements/dev-requirements.txt b/requirements/dev-requirements.txt index 529f84ee..0a7eda0e 100644 --- a/requirements/dev-requirements.txt +++ b/requirements/dev-requirements.txt @@ -137,7 +137,7 @@ requests==2.32.3 # -c requirements/requirements.txt # -c requirements/test-requirements.txt # sphinx -ruff==0.6.1 +ruff==0.6.3 # via -r requirements/dev-requirements.in six==1.16.0 # via From 5d5654d2d138865bc8ee83b0732371dfd9e8887f Mon Sep 17 00:00:00 2001 From: Adrienne Stilp Date: Fri, 30 Aug 2024 11:07:05 -0700 Subject: [PATCH 14/76] Use Sequence for unique model fields in factories This should eliminate errors due to accidentally creaitng or trying to create a new instance with the same value as another object that already exists. --- primed/cdsa/tests/factories.py | 2 +- primed/primed_anvil/tests/factories.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/primed/cdsa/tests/factories.py b/primed/cdsa/tests/factories.py index 1e426107..d0047f19 100644 --- a/primed/cdsa/tests/factories.py +++ b/primed/cdsa/tests/factories.py @@ -21,7 +21,7 @@ class Meta: model = models.AgreementMajorVersion django_get_or_create = ("version",) - version = Faker("random_int", min=1) + version = Sequence(lambda n: n + 1) class AgreementVersionFactory(DjangoModelFactory): diff --git a/primed/primed_anvil/tests/factories.py b/primed/primed_anvil/tests/factories.py index d74867c4..e5b0ee27 100644 --- a/primed/primed_anvil/tests/factories.py +++ b/primed/primed_anvil/tests/factories.py @@ -30,5 +30,5 @@ class AvailableDataFactory(DjangoModelFactory): class Meta: model = models.AvailableData - name = Faker("catch_phrase") + name = Sequence(lambda n: "data:{0:07d}".format(n)) description = Faker("paragraph") From 0803e98a1ee1ec67a7c0b41ca1a93d2228890314 Mon Sep 17 00:00:00 2001 From: Adrienne Stilp Date: Fri, 30 Aug 2024 15:39:27 -0700 Subject: [PATCH 15/76] Remove extra/unused classes in StudyList view They caused the view to only display 10 studies instead of the default 25, and were unnecessary - hey were either leftover from some other view or accidentally added. --- primed/primed_anvil/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/primed/primed_anvil/views.py b/primed/primed_anvil/views.py index 4439bb6b..7c4d500b 100644 --- a/primed/primed_anvil/views.py +++ b/primed/primed_anvil/views.py @@ -77,7 +77,7 @@ def get_tables(self): ) -class StudyList(AnVILConsortiumManagerViewRequired, SingleTableView, FilterView, autocomplete.Select2QuerySetView): +class StudyList(AnVILConsortiumManagerViewRequired, SingleTableMixin, FilterView): """View to show a list of `Study`s.""" model = models.Study From 3a90af350cde590742fa744081e7542678ec3d92 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 2 Sep 2024 16:25:09 +0000 Subject: [PATCH 16/76] [pre-commit.ci] pre-commit autoupdate MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit updates: - [github.com/astral-sh/ruff-pre-commit: v0.6.2 → v0.6.3](https://github.com/astral-sh/ruff-pre-commit/compare/v0.6.2...v0.6.3) --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 85f46c02..2efd485b 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -12,7 +12,7 @@ repos: - repo: https://github.com/astral-sh/ruff-pre-commit # Ruff version. - rev: v0.6.2 + rev: v0.6.3 hooks: # Run the linter. - id: ruff From 923a1cc39fca97a194137f6658b67b204cada9ef Mon Sep 17 00:00:00 2001 From: Adrienne Stilp Date: Tue, 3 Sep 2024 14:45:15 -0700 Subject: [PATCH 17/76] Fix CI for upload-artifact breaking change The latest version of the upload-artifact action added a breaking change where hidden files are not uploaded by default. Because the coverage step was creating a hidden file (i.e., prefixed with a dot), the file was not uploaded and the coverage job would fail because it couldn't download the coverage file artifacts. Fix this by: 1. making upload-artifact fail if no files were found, instead of warn 2. creating coverage files that are not hidden --- .github/workflows/ci.yml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8a71794b..987dbc96 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -92,8 +92,8 @@ jobs: - name: Run tests run: | - pytest --cov=primed -n auto - mv .coverage .coverage-${{ strategy.job-index }} + pytest --cov=gregor_django -n auto + mv .coverage coverage-${{ strategy.job-index }} - name: List files for debugging purposes run: ls -lhta @@ -102,7 +102,8 @@ jobs: uses: actions/upload-artifact@v4 with: name: coverage-data-${{ strategy.job-index }} - path: .coverage-${{ strategy.job-index }} + path: coverage-${{ strategy.job-index }} + if-no-files-found: error coverage: needs: @@ -129,7 +130,7 @@ jobs: - name: Merge coverage files run: | - python -m coverage combine ./artifacts/coverage-data*/.coverage-* + python -m coverage combine ./artifacts/coverage-data*/coverage-* python -m coverage xml ls -la .coverage* From 18aa12d85f78c08feb80aa5df646c5be549e4003 Mon Sep 17 00:00:00 2001 From: Adrienne Stilp Date: Tue, 3 Sep 2024 14:48:09 -0700 Subject: [PATCH 18/76] Pin actions in github workflows to specific versions That way, version updates can be made by dependabot in pull requests, and we can fix whatever needs to be fixed in those pull requests instead of in whatever branch we happen to be working in. --- .github/workflows/ci.yml | 14 +++++++------- .github/workflows/gitleaks.yml | 4 ++-- .github/workflows/pip-compile.yml | 4 ++-- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 987dbc96..ac5f1e1a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -54,10 +54,10 @@ jobs: steps: - name: Checkout Code Repository - uses: actions/checkout@v4 + uses: actions/checkout@v4.1.7 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v5 + uses: actions/setup-python@v5.2.0 with: python-version: ${{ matrix.python-version }} cache: pip @@ -99,7 +99,7 @@ jobs: run: ls -lhta - name: Upload coverage data - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v4.4.0 with: name: coverage-data-${{ strategy.job-index }} path: coverage-${{ strategy.job-index }} @@ -111,10 +111,10 @@ jobs: runs-on: ubuntu-latest steps: - name: Check out the repo - uses: actions/checkout@v4 + uses: actions/checkout@v4.1.7 - name: Set up Python - uses: actions/setup-python@v5 + uses: actions/setup-python@v5.2.0 with: python-version: '3.10' @@ -124,7 +124,7 @@ jobs: pip install --upgrade coverage "django<4" django-coverage-plugin - name: Download coverage data - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v4.1.8 with: path: ./artifacts/ @@ -139,6 +139,6 @@ jobs: python -m coverage report - name: Upload coverage to Codecov - uses: codecov/codecov-action@v4 + uses: codecov/codecov-action@v4.5.0 with: token: ${{ secrets.CODECOV_TOKEN }} diff --git a/.github/workflows/gitleaks.yml b/.github/workflows/gitleaks.yml index 9efde5a6..f6cca493 100644 --- a/.github/workflows/gitleaks.yml +++ b/.github/workflows/gitleaks.yml @@ -10,10 +10,10 @@ jobs: name: gitleaks runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v4.1.7 with: fetch-depth: 0 - - uses: gitleaks/gitleaks-action@v2 + - uses: gitleaks/gitleaks-action@v2.3.6 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITLEAKS_LICENSE: ${{ secrets.GITLEAKS_LICENSE}} # Only required for Organizations, not personal accounts. diff --git a/.github/workflows/pip-compile.yml b/.github/workflows/pip-compile.yml index 95d11720..93c60d63 100644 --- a/.github/workflows/pip-compile.yml +++ b/.github/workflows/pip-compile.yml @@ -13,12 +13,12 @@ jobs: steps: - name: Checkout Code Repository - uses: actions/checkout@v4 + uses: actions/checkout@v4.1.7 with: ref: ${{ github.head_ref }} - name: Set up Python - uses: actions/setup-python@v5 + uses: actions/setup-python@v5.2.0 with: python-version: "3.10" From f238e9f3542424abab4f4dd7b2a286fb1f132621 Mon Sep 17 00:00:00 2001 From: Adrienne Stilp Date: Tue, 3 Sep 2024 15:24:45 -0700 Subject: [PATCH 19/76] Add debugging statement for coverage artifacts --- .github/workflows/ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ac5f1e1a..4e094143 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -130,6 +130,7 @@ jobs: - name: Merge coverage files run: | + ls -la ./artifacts/coverage-data* python -m coverage combine ./artifacts/coverage-data*/coverage-* python -m coverage xml ls -la .coverage* From 18a236f03548882c84943c3e92152f24d0873ba2 Mon Sep 17 00:00:00 2001 From: Adrienne Stilp Date: Tue, 3 Sep 2024 15:46:08 -0700 Subject: [PATCH 20/76] Fix --cov path after copying from primed-django repo Oops! --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4e094143..739523ca 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -92,7 +92,7 @@ jobs: - name: Run tests run: | - pytest --cov=gregor_django -n auto + pytest --cov=primed -n auto mv .coverage coverage-${{ strategy.job-index }} - name: List files for debugging purposes From 74d4cf19b6a84b6e8e2314c3b6521e35b68ebc6c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 3 Sep 2024 23:10:50 +0000 Subject: [PATCH 21/76] Bump cryptography from 42.0.5 to 43.0.1 in /requirements Bumps [cryptography](https://github.com/pyca/cryptography) from 42.0.5 to 43.0.1. - [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst) - [Commits](https://github.com/pyca/cryptography/compare/42.0.5...43.0.1) --- updated-dependencies: - dependency-name: cryptography dependency-type: indirect ... Signed-off-by: dependabot[bot] --- requirements/requirements.txt | 56 +++++++++++++++++------------------ 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/requirements/requirements.txt b/requirements/requirements.txt index 3f2453f0..7920d591 100644 --- a/requirements/requirements.txt +++ b/requirements/requirements.txt @@ -5,7 +5,7 @@ # pip-compile requirements/requirements.in # argon2-cffi==23.1.0 - # via -r requirements/requirements.in + # via -r requirements.in argon2-cffi-bindings==21.2.0 # via argon2-cffi asgiref==3.7.2 @@ -34,15 +34,15 @@ click==8.1.3 # via pip-tools crispy-bootstrap5==2024.2 # via - # -r requirements/requirements.in + # -r requirements.in # django-anvil-consortium-manager -cryptography==42.0.5 +cryptography==43.0.1 # via pyjwt defusedxml==0.7.1 # via python3-openid django==4.2.15 # via - # -r requirements/requirements.in + # -r requirements.in # crispy-bootstrap5 # django-allauth # django-anvil-consortium-manager @@ -57,46 +57,46 @@ django==4.2.15 # django-simple-history # django-tables2 django-allauth==0.54.0 - # via -r requirements/requirements.in + # via -r requirements.in django-anvil-consortium-manager @ git+https://github.com/UW-GAC/django-anvil-consortium-manager.git@v0.25 - # via -r requirements/requirements.in + # via -r requirements.in django-autocomplete-light==3.11.0 # via django-anvil-consortium-manager django-constance==4.0.1 - # via -r requirements/requirements.in + # via -r requirements.in django-crispy-forms==2.3 # via - # -r requirements/requirements.in + # -r requirements.in # crispy-bootstrap5 # django-anvil-consortium-manager django-dbbackup==4.2.1 - # via -r requirements/requirements.in + # via -r requirements.in django-environ==0.10.0 - # via -r requirements/requirements.in + # via -r requirements.in django-extensions==3.2.3 # via - # -r requirements/requirements.in + # -r requirements.in # django-anvil-consortium-manager django-filter==23.5 # via django-anvil-consortium-manager django-htmx==1.19.0 - # via -r requirements/requirements.in + # via -r requirements.in django-login-required-middleware==0.9.0 - # via -r requirements/requirements.in + # via -r requirements.in django-maintenance-mode==0.21.1 - # via -r requirements/requirements.in + # via -r requirements.in django-model-utils==4.5.1 - # via -r requirements/requirements.in + # via -r requirements.in django-picklefield==3.2 - # via -r requirements/requirements.in + # via -r requirements.in django-simple-history==3.7.0 # via - # -r requirements/requirements.in + # -r requirements.in # django-anvil-consortium-manager django-tables2==2.7.0 # via django-anvil-consortium-manager django-tree-queries==0.19.0 - # via -r requirements/requirements.in + # via -r requirements.in fastobo==0.12.3 # via pronto fontawesomefree==6.5.1 @@ -106,13 +106,13 @@ google-auth==2.28.1 idna==3.7 # via requests jsonapi-requests==0.8.0 - # via -r requirements/requirements.in + # via -r requirements.in jsonschema==4.23.0 - # via -r requirements/requirements.in + # via -r requirements.in jsonschema-specifications==2023.12.1 # via jsonschema mysqlclient==2.2.4 - # via -r requirements/requirements.in + # via -r requirements.in networkx==3.1 # via # django-anvil-consortium-manager @@ -123,20 +123,20 @@ numpy==1.24.4 # pandas oauthlib==3.2.2 # via - # -r requirements/requirements.in + # -r requirements.in # requests-oauthlib packaging==21.3 # via # build # plotly pandas==2.2.2 - # via -r requirements/requirements.in + # via -r requirements.in pip-tools==7.4.1 - # via -r requirements/requirements.in + # via -r requirements.in plotly==5.19.0 # via django-anvil-consortium-manager pronto==2.5.7 - # via -r requirements/requirements.in + # via -r requirements.in pyasn1==0.5.1 # via # pyasn1-modules @@ -172,7 +172,7 @@ referencing==0.33.0 # jsonschema-specifications requests==2.32.3 # via - # -r requirements/requirements.in + # -r requirements.in # django-allauth # django-anvil-consortium-manager # jsonapi-requests @@ -190,7 +190,7 @@ six==1.16.0 sqlparse==0.5.1 # via django tablib==3.6.1 - # via -r requirements/requirements.in + # via -r requirements.in tenacity==8.2.3 # via # jsonapi-requests @@ -209,7 +209,7 @@ urllib3==2.2.2 wheel==0.42.0 # via pip-tools whitenoise==6.7.0 - # via -r requirements/requirements.in + # via -r requirements.in # The following packages are considered to be unsafe in a requirements file: # pip From 110c459c893d345f4e9f85ddaca8b87fe6d81f4b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 3 Sep 2024 23:11:26 +0000 Subject: [PATCH 22/76] Compile requirements files --- requirements/requirements.txt | 54 +++++++++++++++++------------------ 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/requirements/requirements.txt b/requirements/requirements.txt index 7920d591..571c624c 100644 --- a/requirements/requirements.txt +++ b/requirements/requirements.txt @@ -5,7 +5,7 @@ # pip-compile requirements/requirements.in # argon2-cffi==23.1.0 - # via -r requirements.in + # via -r requirements/requirements.in argon2-cffi-bindings==21.2.0 # via argon2-cffi asgiref==3.7.2 @@ -34,7 +34,7 @@ click==8.1.3 # via pip-tools crispy-bootstrap5==2024.2 # via - # -r requirements.in + # -r requirements/requirements.in # django-anvil-consortium-manager cryptography==43.0.1 # via pyjwt @@ -42,7 +42,7 @@ defusedxml==0.7.1 # via python3-openid django==4.2.15 # via - # -r requirements.in + # -r requirements/requirements.in # crispy-bootstrap5 # django-allauth # django-anvil-consortium-manager @@ -57,46 +57,46 @@ django==4.2.15 # django-simple-history # django-tables2 django-allauth==0.54.0 - # via -r requirements.in + # via -r requirements/requirements.in django-anvil-consortium-manager @ git+https://github.com/UW-GAC/django-anvil-consortium-manager.git@v0.25 - # via -r requirements.in + # via -r requirements/requirements.in django-autocomplete-light==3.11.0 # via django-anvil-consortium-manager django-constance==4.0.1 - # via -r requirements.in + # via -r requirements/requirements.in django-crispy-forms==2.3 # via - # -r requirements.in + # -r requirements/requirements.in # crispy-bootstrap5 # django-anvil-consortium-manager django-dbbackup==4.2.1 - # via -r requirements.in + # via -r requirements/requirements.in django-environ==0.10.0 - # via -r requirements.in + # via -r requirements/requirements.in django-extensions==3.2.3 # via - # -r requirements.in + # -r requirements/requirements.in # django-anvil-consortium-manager django-filter==23.5 # via django-anvil-consortium-manager django-htmx==1.19.0 - # via -r requirements.in + # via -r requirements/requirements.in django-login-required-middleware==0.9.0 - # via -r requirements.in + # via -r requirements/requirements.in django-maintenance-mode==0.21.1 - # via -r requirements.in + # via -r requirements/requirements.in django-model-utils==4.5.1 - # via -r requirements.in + # via -r requirements/requirements.in django-picklefield==3.2 - # via -r requirements.in + # via -r requirements/requirements.in django-simple-history==3.7.0 # via - # -r requirements.in + # -r requirements/requirements.in # django-anvil-consortium-manager django-tables2==2.7.0 # via django-anvil-consortium-manager django-tree-queries==0.19.0 - # via -r requirements.in + # via -r requirements/requirements.in fastobo==0.12.3 # via pronto fontawesomefree==6.5.1 @@ -106,13 +106,13 @@ google-auth==2.28.1 idna==3.7 # via requests jsonapi-requests==0.8.0 - # via -r requirements.in + # via -r requirements/requirements.in jsonschema==4.23.0 - # via -r requirements.in + # via -r requirements/requirements.in jsonschema-specifications==2023.12.1 # via jsonschema mysqlclient==2.2.4 - # via -r requirements.in + # via -r requirements/requirements.in networkx==3.1 # via # django-anvil-consortium-manager @@ -123,20 +123,20 @@ numpy==1.24.4 # pandas oauthlib==3.2.2 # via - # -r requirements.in + # -r requirements/requirements.in # requests-oauthlib packaging==21.3 # via # build # plotly pandas==2.2.2 - # via -r requirements.in + # via -r requirements/requirements.in pip-tools==7.4.1 - # via -r requirements.in + # via -r requirements/requirements.in plotly==5.19.0 # via django-anvil-consortium-manager pronto==2.5.7 - # via -r requirements.in + # via -r requirements/requirements.in pyasn1==0.5.1 # via # pyasn1-modules @@ -172,7 +172,7 @@ referencing==0.33.0 # jsonschema-specifications requests==2.32.3 # via - # -r requirements.in + # -r requirements/requirements.in # django-allauth # django-anvil-consortium-manager # jsonapi-requests @@ -190,7 +190,7 @@ six==1.16.0 sqlparse==0.5.1 # via django tablib==3.6.1 - # via -r requirements.in + # via -r requirements/requirements.in tenacity==8.2.3 # via # jsonapi-requests @@ -209,7 +209,7 @@ urllib3==2.2.2 wheel==0.42.0 # via pip-tools whitenoise==6.7.0 - # via -r requirements.in + # via -r requirements/requirements.in # The following packages are considered to be unsafe in a requirements file: # pip From b79ac3abcaf24c2994292dd702d65d99b3f920bb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 4 Sep 2024 03:56:57 +0000 Subject: [PATCH 23/76] Bump django from 4.2.15 to 4.2.16 Bumps [django](https://github.com/django/django) from 4.2.15 to 4.2.16. - [Commits](https://github.com/django/django/compare/4.2.15...4.2.16) --- updated-dependencies: - dependency-name: django dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- requirements/dev-requirements.txt | 2 +- requirements/requirements.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/requirements/dev-requirements.txt b/requirements/dev-requirements.txt index 274caf55..e72816fc 100644 --- a/requirements/dev-requirements.txt +++ b/requirements/dev-requirements.txt @@ -44,7 +44,7 @@ decorator==5.1.1 # ipython distlib==0.3.8 # via virtualenv -django==4.2.15 +django==4.2.16 # via # -c requirements/requirements.txt # django-debug-toolbar diff --git a/requirements/requirements.txt b/requirements/requirements.txt index 3f2453f0..934dd181 100644 --- a/requirements/requirements.txt +++ b/requirements/requirements.txt @@ -40,7 +40,7 @@ cryptography==42.0.5 # via pyjwt defusedxml==0.7.1 # via python3-openid -django==4.2.15 +django==4.2.16 # via # -r requirements/requirements.in # crispy-bootstrap5 From 0dd8289e3917941f49bada6031ae1835e78ad3bb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 4 Sep 2024 03:58:37 +0000 Subject: [PATCH 24/76] Bump sphinx-autobuild from 2024.4.16 to 2024.9.3 Bumps [sphinx-autobuild](https://github.com/sphinx-doc/sphinx-autobuild) from 2024.4.16 to 2024.9.3. - [Release notes](https://github.com/sphinx-doc/sphinx-autobuild/releases) - [Changelog](https://github.com/sphinx-doc/sphinx-autobuild/blob/main/NEWS.rst) - [Commits](https://github.com/sphinx-doc/sphinx-autobuild/compare/2024.04.16...2024.09.03) --- updated-dependencies: - dependency-name: sphinx-autobuild dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- requirements/dev-requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements/dev-requirements.txt b/requirements/dev-requirements.txt index 274caf55..50eccab7 100644 --- a/requirements/dev-requirements.txt +++ b/requirements/dev-requirements.txt @@ -152,7 +152,7 @@ sphinx==7.1.2 # via # -r requirements/dev-requirements.in # sphinx-autobuild -sphinx-autobuild==2024.4.16 +sphinx-autobuild==2024.9.3 # via -r requirements/dev-requirements.in sphinxcontrib-applehelp==1.0.4 # via sphinx From 95819e228800c9b3cecac47cd84607f004597cc3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 4 Sep 2024 16:27:14 +0000 Subject: [PATCH 25/76] Bump pytest-django from 4.8.0 to 4.9.0 Bumps [pytest-django](https://github.com/pytest-dev/pytest-django) from 4.8.0 to 4.9.0. - [Release notes](https://github.com/pytest-dev/pytest-django/releases) - [Changelog](https://github.com/pytest-dev/pytest-django/blob/main/docs/changelog.rst) - [Commits](https://github.com/pytest-dev/pytest-django/compare/v4.8.0...v4.9.0) --- updated-dependencies: - dependency-name: pytest-django dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- requirements/test-requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements/test-requirements.txt b/requirements/test-requirements.txt index 8b2a728c..1b0d28e6 100644 --- a/requirements/test-requirements.txt +++ b/requirements/test-requirements.txt @@ -62,7 +62,7 @@ pytest==8.3.2 # pytest-xdist pytest-cov==5.0.0 # via -r requirements/test-requirements.in -pytest-django==4.8.0 +pytest-django==4.9.0 # via -r requirements/test-requirements.in pytest-sugar==1.0.0 # via -r requirements/test-requirements.in From 978bdaf150d51aa41708eb7e3a5db277ae771092 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 5 Sep 2024 03:50:45 +0000 Subject: [PATCH 26/76] Bump django-model-utils from 4.5.1 to 5.0.0 Bumps [django-model-utils](https://github.com/jazzband/django-model-utils) from 4.5.1 to 5.0.0. - [Release notes](https://github.com/jazzband/django-model-utils/releases) - [Changelog](https://github.com/jazzband/django-model-utils/blob/master/CHANGES.rst) - [Commits](https://github.com/jazzband/django-model-utils/compare/4.5.1...5.0.0) --- updated-dependencies: - dependency-name: django-model-utils dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- requirements/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements/requirements.txt b/requirements/requirements.txt index 57904249..4eb21cd5 100644 --- a/requirements/requirements.txt +++ b/requirements/requirements.txt @@ -85,7 +85,7 @@ django-login-required-middleware==0.9.0 # via -r requirements/requirements.in django-maintenance-mode==0.21.1 # via -r requirements/requirements.in -django-model-utils==4.5.1 +django-model-utils==5.0.0 # via -r requirements/requirements.in django-picklefield==3.2 # via -r requirements/requirements.in From cd976613b97af0942735afec457b33bf214dbba1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 6 Sep 2024 03:42:06 +0000 Subject: [PATCH 27/76] Bump django-constance from 4.0.1 to 4.1.1 Bumps [django-constance](https://github.com/jazzband/django-constance) from 4.0.1 to 4.1.1. - [Release notes](https://github.com/jazzband/django-constance/releases) - [Changelog](https://github.com/jazzband/django-constance/blob/master/docs/changes.rst) - [Commits](https://github.com/jazzband/django-constance/compare/4.0.1...4.1.1) --- updated-dependencies: - dependency-name: django-constance dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- requirements/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements/requirements.txt b/requirements/requirements.txt index 57904249..b8896746 100644 --- a/requirements/requirements.txt +++ b/requirements/requirements.txt @@ -62,7 +62,7 @@ django-anvil-consortium-manager @ git+https://github.com/UW-GAC/django-anvil-con # via -r requirements/requirements.in django-autocomplete-light==3.11.0 # via django-anvil-consortium-manager -django-constance==4.0.1 +django-constance==4.1.1 # via -r requirements/requirements.in django-crispy-forms==2.3 # via From 6d9a81c90e8b051bb5e3ca09a1c28193f24cf874 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 Sep 2024 03:07:03 +0000 Subject: [PATCH 28/76] Bump pytest from 8.3.2 to 8.3.3 Bumps [pytest](https://github.com/pytest-dev/pytest) from 8.3.2 to 8.3.3. - [Release notes](https://github.com/pytest-dev/pytest/releases) - [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst) - [Commits](https://github.com/pytest-dev/pytest/compare/8.3.2...8.3.3) --- updated-dependencies: - dependency-name: pytest dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- requirements/test-requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements/test-requirements.txt b/requirements/test-requirements.txt index 1b0d28e6..522bfa65 100644 --- a/requirements/test-requirements.txt +++ b/requirements/test-requirements.txt @@ -53,7 +53,7 @@ pyparsing==3.1.1 # via # -c requirements/requirements.txt # packaging -pytest==8.3.2 +pytest==8.3.3 # via # -r requirements/test-requirements.in # pytest-cov From 7f46be4a003c192c399cb86a5391db2659c2e7a1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 16 Sep 2024 03:35:20 +0000 Subject: [PATCH 29/76] Bump ruff from 0.6.3 to 0.6.5 Bumps [ruff](https://github.com/astral-sh/ruff) from 0.6.3 to 0.6.5. - [Release notes](https://github.com/astral-sh/ruff/releases) - [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md) - [Commits](https://github.com/astral-sh/ruff/compare/0.6.3...0.6.5) --- updated-dependencies: - dependency-name: ruff dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- requirements/dev-requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements/dev-requirements.txt b/requirements/dev-requirements.txt index 22f56f91..711d73e5 100644 --- a/requirements/dev-requirements.txt +++ b/requirements/dev-requirements.txt @@ -137,7 +137,7 @@ requests==2.32.3 # -c requirements/requirements.txt # -c requirements/test-requirements.txt # sphinx -ruff==0.6.3 +ruff==0.6.5 # via -r requirements/dev-requirements.in six==1.16.0 # via From 67993de210ef2de995ccabe9723e4049d8679361 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 16 Sep 2024 03:37:34 +0000 Subject: [PATCH 30/76] Bump pronto from 2.5.7 to 2.5.8 Bumps [pronto](https://github.com/althonos/pronto) from 2.5.7 to 2.5.8. - [Release notes](https://github.com/althonos/pronto/releases) - [Changelog](https://github.com/althonos/pronto/blob/master/CHANGELOG.md) - [Commits](https://github.com/althonos/pronto/compare/v2.5.7...v2.5.8) --- updated-dependencies: - dependency-name: pronto dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- requirements/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements/requirements.txt b/requirements/requirements.txt index 57904249..5cfab3c2 100644 --- a/requirements/requirements.txt +++ b/requirements/requirements.txt @@ -135,7 +135,7 @@ pip-tools==7.4.1 # via -r requirements/requirements.in plotly==5.19.0 # via django-anvil-consortium-manager -pronto==2.5.7 +pronto==2.5.8 # via -r requirements/requirements.in pyasn1==0.5.1 # via From 68cbf18709d478323f7ff4775ec5b6afc44acb82 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 16 Sep 2024 03:37:59 +0000 Subject: [PATCH 31/76] Bump types-requests from 2.32.0.20240712 to 2.32.0.20240914 Bumps [types-requests](https://github.com/python/typeshed) from 2.32.0.20240712 to 2.32.0.20240914. - [Commits](https://github.com/python/typeshed/commits) --- updated-dependencies: - dependency-name: types-requests dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- requirements/dev-requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements/dev-requirements.txt b/requirements/dev-requirements.txt index 22f56f91..c6f95209 100644 --- a/requirements/dev-requirements.txt +++ b/requirements/dev-requirements.txt @@ -190,7 +190,7 @@ types-pytz==2024.1.0.20240203 # via django-stubs types-pyyaml==6.0.12.12 # via django-stubs -types-requests==2.32.0.20240712 +types-requests==2.32.0.20240914 # via -r requirements/dev-requirements.in typing-extensions==4.8.0 # via From 75fd450441688aed36a8f21063b8e3cb610d8e37 Mon Sep 17 00:00:00 2001 From: Jonas Carson Date: Fri, 27 Sep 2024 09:52:13 -0700 Subject: [PATCH 32/76] Add auth cycle error logging to our social account adapter and update social login error template to show more info --- .../socialaccount/authentication_error.html | 15 +++++++++++++++ primed/users/adapters.py | 8 ++++++++ 2 files changed, 23 insertions(+) create mode 100644 primed/templates/socialaccount/authentication_error.html diff --git a/primed/templates/socialaccount/authentication_error.html b/primed/templates/socialaccount/authentication_error.html new file mode 100644 index 00000000..747a4513 --- /dev/null +++ b/primed/templates/socialaccount/authentication_error.html @@ -0,0 +1,15 @@ +{% extends "socialaccount/base.html" %} + +{% load i18n %} + +{% block head_title %}{% trans "Social Network Login Failure" %}{% endblock %} + +{% block content %} +

{% trans "Social Network Login Failure" %}

+ +

{% trans "An error occurred while attempting to login via your social network account." %}

+ +

+ Authentication error code: {{ auth_error.code }}, Error: {{ auth_error.exception }} +

+{% endblock %} diff --git a/primed/users/adapters.py b/primed/users/adapters.py index a2b33115..a10c944c 100644 --- a/primed/users/adapters.py +++ b/primed/users/adapters.py @@ -139,3 +139,11 @@ def update_user_data(self, sociallogin: Any): self.update_user_info(user, extra_data) self.update_user_study_sites(user, extra_data) self.update_user_groups(user, extra_data) + + def authentication_error(self, request, provider_id, error, exception, extra_context): + """ + Invoked when there is an error in auth cycle. + Log so we know what is going on. + """ + logger.error(f"[SocialAccountAdapter:authentication_error] Error {error} Exception: {exception}") + super().authentication_error(request, provider_id, error, exception, extra_context) From c55134cf678c62338a2c1c551c898cb7e730d9bd Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 7 Oct 2024 16:27:06 +0000 Subject: [PATCH 33/76] [pre-commit.ci] pre-commit autoupdate MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit updates: - [github.com/pre-commit/pre-commit-hooks: v4.6.0 → v5.0.0](https://github.com/pre-commit/pre-commit-hooks/compare/v4.6.0...v5.0.0) - [github.com/astral-sh/ruff-pre-commit: v0.6.3 → v0.6.9](https://github.com/astral-sh/ruff-pre-commit/compare/v0.6.3...v0.6.9) - [github.com/gitleaks/gitleaks: v8.18.4 → v8.20.0](https://github.com/gitleaks/gitleaks/compare/v8.18.4...v8.20.0) --- .pre-commit-config.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 2efd485b..3f3e6c59 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,10 +1,10 @@ exclude: 'docs|node_modules|migrations|.git|.tox' -default_stages: [commit] +default_stages: [Nonepre-commitNone] fail_fast: true repos: - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.6.0 + rev: v5.0.0 hooks: - id: trailing-whitespace - id: end-of-file-fixer @@ -12,7 +12,7 @@ repos: - repo: https://github.com/astral-sh/ruff-pre-commit # Ruff version. - rev: v0.6.3 + rev: v0.6.9 hooks: # Run the linter. - id: ruff @@ -21,7 +21,7 @@ repos: - id: ruff-format - repo: https://github.com/gitleaks/gitleaks - rev: v8.18.4 + rev: v8.20.0 hooks: - id: gitleaks From d33590008f7486704bce9413ac57df1b317b8a20 Mon Sep 17 00:00:00 2001 From: Adrienne Stilp <3944584+amstilp@users.noreply.github.com> Date: Mon, 7 Oct 2024 11:01:38 -0700 Subject: [PATCH 34/76] Fix default_stages incorrect update The default_stages value was incorrectly updated by the pre-commit update bot, which broke pre-commit. Fix it to be "pre-commit" instead of "commit" or "Nonepre-commitNone". --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 3f3e6c59..41be8f8a 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,5 +1,5 @@ exclude: 'docs|node_modules|migrations|.git|.tox' -default_stages: [Nonepre-commitNone] +default_stages: [pre-commit] fail_fast: true repos: From 1b5a69404f6e6b90befc29188dc145ae130d6c5c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 7 Oct 2024 18:24:32 +0000 Subject: [PATCH 35/76] Bump actions/checkout from 4.1.7 to 4.2.1 Bumps [actions/checkout](https://github.com/actions/checkout) from 4.1.7 to 4.2.1. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v4.1.7...v4.2.1) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/ci.yml | 4 ++-- .github/workflows/gitleaks.yml | 2 +- .github/workflows/pip-compile.yml | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 739523ca..d8d6df11 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -54,7 +54,7 @@ jobs: steps: - name: Checkout Code Repository - uses: actions/checkout@v4.1.7 + uses: actions/checkout@v4.2.1 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v5.2.0 @@ -111,7 +111,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Check out the repo - uses: actions/checkout@v4.1.7 + uses: actions/checkout@v4.2.1 - name: Set up Python uses: actions/setup-python@v5.2.0 diff --git a/.github/workflows/gitleaks.yml b/.github/workflows/gitleaks.yml index f6cca493..b898bbac 100644 --- a/.github/workflows/gitleaks.yml +++ b/.github/workflows/gitleaks.yml @@ -10,7 +10,7 @@ jobs: name: gitleaks runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4.1.7 + - uses: actions/checkout@v4.2.1 with: fetch-depth: 0 - uses: gitleaks/gitleaks-action@v2.3.6 diff --git a/.github/workflows/pip-compile.yml b/.github/workflows/pip-compile.yml index 93c60d63..9f906bd1 100644 --- a/.github/workflows/pip-compile.yml +++ b/.github/workflows/pip-compile.yml @@ -13,7 +13,7 @@ jobs: steps: - name: Checkout Code Repository - uses: actions/checkout@v4.1.7 + uses: actions/checkout@v4.2.1 with: ref: ${{ github.head_ref }} From 00ac388f5f55cebbc8c061c96ce434d55e0fee7e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 7 Oct 2024 18:25:27 +0000 Subject: [PATCH 36/76] Bump sphinx-autobuild from 2024.9.3 to 2024.10.3 Bumps [sphinx-autobuild](https://github.com/sphinx-doc/sphinx-autobuild) from 2024.9.3 to 2024.10.3. - [Release notes](https://github.com/sphinx-doc/sphinx-autobuild/releases) - [Changelog](https://github.com/sphinx-doc/sphinx-autobuild/blob/main/NEWS.rst) - [Commits](https://github.com/sphinx-doc/sphinx-autobuild/compare/2024.09.03...2024.10.03) --- updated-dependencies: - dependency-name: sphinx-autobuild dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- requirements/dev-requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements/dev-requirements.txt b/requirements/dev-requirements.txt index 2fb7f59f..a282d8c4 100644 --- a/requirements/dev-requirements.txt +++ b/requirements/dev-requirements.txt @@ -152,7 +152,7 @@ sphinx==7.1.2 # via # -r requirements/dev-requirements.in # sphinx-autobuild -sphinx-autobuild==2024.9.3 +sphinx-autobuild==2024.10.3 # via -r requirements/dev-requirements.in sphinxcontrib-applehelp==1.0.4 # via sphinx From fdbe736eabe4d202401077f0438e2cff6bbcb695 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 7 Oct 2024 18:25:31 +0000 Subject: [PATCH 37/76] Bump django-constance from 4.1.1 to 4.1.2 Bumps [django-constance](https://github.com/jazzband/django-constance) from 4.1.1 to 4.1.2. - [Release notes](https://github.com/jazzband/django-constance/releases) - [Changelog](https://github.com/jazzband/django-constance/blob/master/docs/changes.rst) - [Commits](https://github.com/jazzband/django-constance/compare/4.1.1...4.1.2) --- updated-dependencies: - dependency-name: django-constance dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- requirements/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements/requirements.txt b/requirements/requirements.txt index f3412364..7376afb6 100644 --- a/requirements/requirements.txt +++ b/requirements/requirements.txt @@ -62,7 +62,7 @@ django-anvil-consortium-manager @ git+https://github.com/UW-GAC/django-anvil-con # via -r requirements/requirements.in django-autocomplete-light==3.11.0 # via django-anvil-consortium-manager -django-constance==4.1.1 +django-constance==4.1.2 # via -r requirements/requirements.in django-crispy-forms==2.3 # via From ee50ef2e27ff363e86156dffbc20859b1f5941ec Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 7 Oct 2024 18:25:33 +0000 Subject: [PATCH 38/76] Bump ruff from 0.6.5 to 0.6.9 Bumps [ruff](https://github.com/astral-sh/ruff) from 0.6.5 to 0.6.9. - [Release notes](https://github.com/astral-sh/ruff/releases) - [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md) - [Commits](https://github.com/astral-sh/ruff/compare/0.6.5...0.6.9) --- updated-dependencies: - dependency-name: ruff dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- requirements/dev-requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements/dev-requirements.txt b/requirements/dev-requirements.txt index 2fb7f59f..852f4f37 100644 --- a/requirements/dev-requirements.txt +++ b/requirements/dev-requirements.txt @@ -137,7 +137,7 @@ requests==2.32.3 # -c requirements/requirements.txt # -c requirements/test-requirements.txt # sphinx -ruff==0.6.5 +ruff==0.6.9 # via -r requirements/dev-requirements.in six==1.16.0 # via From c79e38ab030fd4c186754b39cdc714524d5faede Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 7 Oct 2024 18:25:34 +0000 Subject: [PATCH 39/76] Bump pandas from 2.2.2 to 2.2.3 Bumps [pandas](https://github.com/pandas-dev/pandas) from 2.2.2 to 2.2.3. - [Release notes](https://github.com/pandas-dev/pandas/releases) - [Commits](https://github.com/pandas-dev/pandas/compare/v2.2.2...v2.2.3) --- updated-dependencies: - dependency-name: pandas dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- requirements/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements/requirements.txt b/requirements/requirements.txt index f3412364..085cdee5 100644 --- a/requirements/requirements.txt +++ b/requirements/requirements.txt @@ -129,7 +129,7 @@ packaging==21.3 # via # build # plotly -pandas==2.2.2 +pandas==2.2.3 # via -r requirements/requirements.in pip-tools==7.4.1 # via -r requirements/requirements.in From 87a24bbf28869c2b1679f10027c8371551522f44 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 7 Oct 2024 18:25:43 +0000 Subject: [PATCH 40/76] Bump pre-commit from 3.8.0 to 4.0.0 Bumps [pre-commit](https://github.com/pre-commit/pre-commit) from 3.8.0 to 4.0.0. - [Release notes](https://github.com/pre-commit/pre-commit/releases) - [Changelog](https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md) - [Commits](https://github.com/pre-commit/pre-commit/compare/v3.8.0...v4.0.0) --- updated-dependencies: - dependency-name: pre-commit dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- requirements/dev-requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements/dev-requirements.txt b/requirements/dev-requirements.txt index 2fb7f59f..fd2d1b97 100644 --- a/requirements/dev-requirements.txt +++ b/requirements/dev-requirements.txt @@ -111,7 +111,7 @@ pickleshare==0.7.5 # via ipython platformdirs==4.1.0 # via virtualenv -pre-commit==3.8.0 +pre-commit==4.0.0 # via -r requirements/dev-requirements.in prompt-toolkit==3.0.43 # via ipython From 668cc4114de7f0bd71604fb6393eefc8a03b54c8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 7 Oct 2024 18:25:54 +0000 Subject: [PATCH 41/76] Bump crispy-bootstrap5 from 2024.2 to 2024.10 Bumps [crispy-bootstrap5](https://github.com/django-crispy-forms/crispy-bootstrap5) from 2024.2 to 2024.10. - [Release notes](https://github.com/django-crispy-forms/crispy-bootstrap5/releases) - [Changelog](https://github.com/django-crispy-forms/crispy-bootstrap5/blob/main/CHANGELOG.md) - [Commits](https://github.com/django-crispy-forms/crispy-bootstrap5/compare/2024.2...2024.10) --- updated-dependencies: - dependency-name: crispy-bootstrap5 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- requirements/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements/requirements.txt b/requirements/requirements.txt index f3412364..bf519f2d 100644 --- a/requirements/requirements.txt +++ b/requirements/requirements.txt @@ -32,7 +32,7 @@ charset-normalizer==3.3.2 # via requests click==8.1.3 # via pip-tools -crispy-bootstrap5==2024.2 +crispy-bootstrap5==2024.10 # via # -r requirements/requirements.in # django-anvil-consortium-manager From 07f0f6ef1b99b1b42aaad815dbcf469ef0b390a2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 7 Oct 2024 19:16:41 +0000 Subject: [PATCH 42/76] Bump codecov/codecov-action from 4.5.0 to 4.6.0 Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 4.5.0 to 4.6.0. - [Release notes](https://github.com/codecov/codecov-action/releases) - [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/codecov/codecov-action/compare/v4.5.0...v4.6.0) --- updated-dependencies: - dependency-name: codecov/codecov-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d8d6df11..eaa260b1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -140,6 +140,6 @@ jobs: python -m coverage report - name: Upload coverage to Codecov - uses: codecov/codecov-action@v4.5.0 + uses: codecov/codecov-action@v4.6.0 with: token: ${{ secrets.CODECOV_TOKEN }} From f5f04654e6234192fc23757973870c664a1a2efa Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 9 Oct 2024 04:00:00 +0000 Subject: [PATCH 43/76] Bump tablib from 3.6.1 to 3.7.0 Bumps [tablib](https://github.com/jazzband/tablib) from 3.6.1 to 3.7.0. - [Release notes](https://github.com/jazzband/tablib/releases) - [Changelog](https://github.com/jazzband/tablib/blob/master/HISTORY.md) - [Commits](https://github.com/jazzband/tablib/compare/v3.6.1...v3.7.0) --- updated-dependencies: - dependency-name: tablib dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- requirements/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements/requirements.txt b/requirements/requirements.txt index 449d7d50..277a29bb 100644 --- a/requirements/requirements.txt +++ b/requirements/requirements.txt @@ -189,7 +189,7 @@ six==1.16.0 # via python-dateutil sqlparse==0.5.1 # via django -tablib==3.6.1 +tablib==3.7.0 # via -r requirements/requirements.in tenacity==8.2.3 # via From 485c113aa0a212a8e8447a4512ea2dbca7ab0494 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 9 Oct 2024 04:02:37 +0000 Subject: [PATCH 44/76] Bump pre-commit from 4.0.0 to 4.0.1 Bumps [pre-commit](https://github.com/pre-commit/pre-commit) from 4.0.0 to 4.0.1. - [Release notes](https://github.com/pre-commit/pre-commit/releases) - [Changelog](https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md) - [Commits](https://github.com/pre-commit/pre-commit/compare/v4.0.0...v4.0.1) --- updated-dependencies: - dependency-name: pre-commit dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- requirements/dev-requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements/dev-requirements.txt b/requirements/dev-requirements.txt index ad20812d..f446c897 100644 --- a/requirements/dev-requirements.txt +++ b/requirements/dev-requirements.txt @@ -111,7 +111,7 @@ pickleshare==0.7.5 # via ipython platformdirs==4.1.0 # via virtualenv -pre-commit==4.0.0 +pre-commit==4.0.1 # via -r requirements/dev-requirements.in prompt-toolkit==3.0.43 # via ipython From cacb71695360ef04a44dd2768d198632a0ef9b37 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 10 Oct 2024 03:42:55 +0000 Subject: [PATCH 45/76] Bump actions/upload-artifact from 4.4.0 to 4.4.3 Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.4.0 to 4.4.3. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/v4.4.0...v4.4.3) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index eaa260b1..ff0612ea 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -99,7 +99,7 @@ jobs: run: ls -lhta - name: Upload coverage data - uses: actions/upload-artifact@v4.4.0 + uses: actions/upload-artifact@v4.4.3 with: name: coverage-data-${{ strategy.job-index }} path: coverage-${{ strategy.job-index }} From ed6a1d4e87048990587039ba559bbf1fc5d71c14 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 11 Oct 2024 03:16:17 +0000 Subject: [PATCH 46/76] Bump github/combine-prs from 5.1.0 to 5.2.0 Bumps [github/combine-prs](https://github.com/github/combine-prs) from 5.1.0 to 5.2.0. - [Release notes](https://github.com/github/combine-prs/releases) - [Commits](https://github.com/github/combine-prs/compare/v5.1.0...v5.2.0) --- updated-dependencies: - dependency-name: github/combine-prs dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/combine-prs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/combine-prs.yml b/.github/workflows/combine-prs.yml index cf9c0d74..82d39e94 100644 --- a/.github/workflows/combine-prs.yml +++ b/.github/workflows/combine-prs.yml @@ -16,7 +16,7 @@ jobs: steps: - name: combine-prs id: combine-prs - uses: github/combine-prs@v5.1.0 + uses: github/combine-prs@v5.2.0 with: labels: combined-pr # Optional: add a label to the combined PR ci_required: true # require all checks to pass before combining From 356e6f57c587ccdf38a404d33df9346c0dc0ab62 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 14 Oct 2024 03:59:38 +0000 Subject: [PATCH 47/76] Bump gitleaks/gitleaks-action from 2.3.6 to 2.3.7 Bumps [gitleaks/gitleaks-action](https://github.com/gitleaks/gitleaks-action) from 2.3.6 to 2.3.7. - [Release notes](https://github.com/gitleaks/gitleaks-action/releases) - [Commits](https://github.com/gitleaks/gitleaks-action/compare/v2.3.6...v2.3.7) --- updated-dependencies: - dependency-name: gitleaks/gitleaks-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- .github/workflows/gitleaks.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/gitleaks.yml b/.github/workflows/gitleaks.yml index b898bbac..00a67cc8 100644 --- a/.github/workflows/gitleaks.yml +++ b/.github/workflows/gitleaks.yml @@ -13,7 +13,7 @@ jobs: - uses: actions/checkout@v4.2.1 with: fetch-depth: 0 - - uses: gitleaks/gitleaks-action@v2.3.6 + - uses: gitleaks/gitleaks-action@v2.3.7 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITLEAKS_LICENSE: ${{ secrets.GITLEAKS_LICENSE}} # Only required for Organizations, not personal accounts. From 60f453d08ae7c85c2ba00edaa5e20cbd6a68f450 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 15 Oct 2024 03:56:40 +0000 Subject: [PATCH 48/76] Bump mypy from 1.11.2 to 1.12.0 Bumps [mypy](https://github.com/python/mypy) from 1.11.2 to 1.12.0. - [Changelog](https://github.com/python/mypy/blob/master/CHANGELOG.md) - [Commits](https://github.com/python/mypy/compare/v1.11.2...v1.12.0) --- updated-dependencies: - dependency-name: mypy dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- requirements/dev-requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements/dev-requirements.txt b/requirements/dev-requirements.txt index ad20812d..6f42e4c9 100644 --- a/requirements/dev-requirements.txt +++ b/requirements/dev-requirements.txt @@ -92,7 +92,7 @@ markupsafe==2.1.5 # werkzeug matplotlib-inline==0.1.6 # via ipython -mypy==1.11.2 +mypy==1.12.0 # via -r requirements/dev-requirements.in mypy-extensions==1.0.0 # via mypy From 92a0dc8b6d3b9a226b549443e69784a7ff8c27e1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 15 Oct 2024 22:03:42 +0000 Subject: [PATCH 49/76] Bump starlette from 0.38.2 to 0.40.0 in /requirements Bumps [starlette](https://github.com/encode/starlette) from 0.38.2 to 0.40.0. - [Release notes](https://github.com/encode/starlette/releases) - [Changelog](https://github.com/encode/starlette/blob/master/docs/release-notes.md) - [Commits](https://github.com/encode/starlette/compare/0.38.2...0.40.0) --- updated-dependencies: - dependency-name: starlette dependency-type: indirect ... Signed-off-by: dependabot[bot] --- requirements/dev-requirements.txt | 74 +++++++++++++++---------------- 1 file changed, 37 insertions(+), 37 deletions(-) diff --git a/requirements/dev-requirements.txt b/requirements/dev-requirements.txt index ad20812d..3df81175 100644 --- a/requirements/dev-requirements.txt +++ b/requirements/dev-requirements.txt @@ -12,7 +12,7 @@ anyio==4.4.0 # watchfiles asgiref==3.7.2 # via - # -c requirements/requirements.txt + # -c requirements.txt # django asttokens==2.4.1 # via stack-data @@ -22,19 +22,19 @@ backcall==0.2.0 # via ipython certifi==2024.7.4 # via - # -c requirements/requirements.txt - # -c requirements/test-requirements.txt + # -c requirements.txt + # -c test-requirements.txt # requests cfgv==3.4.0 # via pre-commit charset-normalizer==3.3.2 # via - # -c requirements/requirements.txt - # -c requirements/test-requirements.txt + # -c requirements.txt + # -c test-requirements.txt # requests click==8.1.3 # via - # -c requirements/requirements.txt + # -c requirements.txt # uvicorn colorama==0.4.6 # via sphinx-autobuild @@ -46,21 +46,21 @@ distlib==0.3.8 # via virtualenv django==4.2.16 # via - # -c requirements/requirements.txt + # -c requirements.txt # django-debug-toolbar # django-stubs # django-stubs-ext django-debug-toolbar==4.4.6 - # via -r requirements/dev-requirements.in + # via -r dev-requirements.in django-stubs==4.2.7 - # via -r requirements/dev-requirements.in + # via -r dev-requirements.in django-stubs-ext==4.2.7 # via django-stubs docutils==0.20.1 # via sphinx exceptiongroup==1.2.0 # via - # -c requirements/test-requirements.txt + # -c test-requirements.txt # anyio executing==2.0.1 # via stack-data @@ -72,14 +72,14 @@ identify==2.5.34 # via pre-commit idna==3.7 # via - # -c requirements/requirements.txt - # -c requirements/test-requirements.txt + # -c requirements.txt + # -c test-requirements.txt # anyio # requests imagesize==1.4.1 # via sphinx ipdb==0.13.13 - # via -r requirements/dev-requirements.in + # via -r dev-requirements.in ipython==8.12.3 # via ipdb jedi==0.19.1 @@ -93,15 +93,15 @@ markupsafe==2.1.5 matplotlib-inline==0.1.6 # via ipython mypy==1.11.2 - # via -r requirements/dev-requirements.in + # via -r dev-requirements.in mypy-extensions==1.0.0 # via mypy nodeenv==1.8.0 # via pre-commit packaging==21.3 # via - # -c requirements/requirements.txt - # -c requirements/test-requirements.txt + # -c requirements.txt + # -c test-requirements.txt # sphinx parso==0.8.3 # via jedi @@ -112,7 +112,7 @@ pickleshare==0.7.5 platformdirs==4.1.0 # via virtualenv pre-commit==4.0.0 - # via -r requirements/dev-requirements.in + # via -r dev-requirements.in prompt-toolkit==3.0.43 # via ipython ptyprocess==0.7.0 @@ -125,24 +125,24 @@ pygments==2.17.2 # sphinx pyparsing==3.1.1 # via - # -c requirements/requirements.txt - # -c requirements/test-requirements.txt + # -c requirements.txt + # -c test-requirements.txt # packaging pyyaml==6.0.1 # via - # -c requirements/test-requirements.txt + # -c test-requirements.txt # pre-commit requests==2.32.3 # via - # -c requirements/requirements.txt - # -c requirements/test-requirements.txt + # -c requirements.txt + # -c test-requirements.txt # sphinx ruff==0.6.9 - # via -r requirements/dev-requirements.in + # via -r dev-requirements.in six==1.16.0 # via - # -c requirements/requirements.txt - # -c requirements/test-requirements.txt + # -c requirements.txt + # -c test-requirements.txt # asttokens sniffio==1.3.1 # via anyio @@ -150,10 +150,10 @@ snowballstemmer==2.2.0 # via sphinx sphinx==7.1.2 # via - # -r requirements/dev-requirements.in + # -r dev-requirements.in # sphinx-autobuild sphinx-autobuild==2024.10.3 - # via -r requirements/dev-requirements.in + # via -r dev-requirements.in sphinxcontrib-applehelp==1.0.4 # via sphinx sphinxcontrib-devhelp==1.0.2 @@ -168,17 +168,17 @@ sphinxcontrib-serializinghtml==1.1.5 # via sphinx sqlparse==0.5.1 # via - # -c requirements/requirements.txt + # -c requirements.txt # django # django-debug-toolbar stack-data==0.6.3 # via ipython -starlette==0.38.2 +starlette==0.40.0 # via sphinx-autobuild tomli==2.0.1 # via - # -c requirements/requirements.txt - # -c requirements/test-requirements.txt + # -c requirements.txt + # -c test-requirements.txt # django-stubs # ipdb # mypy @@ -191,11 +191,11 @@ types-pytz==2024.1.0.20240203 types-pyyaml==6.0.12.12 # via django-stubs types-requests==2.32.0.20240914 - # via -r requirements/dev-requirements.in + # via -r dev-requirements.in typing-extensions==4.8.0 # via - # -c requirements/requirements.txt - # -c requirements/test-requirements.txt + # -c requirements.txt + # -c test-requirements.txt # anyio # asgiref # django-stubs @@ -204,8 +204,8 @@ typing-extensions==4.8.0 # uvicorn urllib3==2.2.2 # via - # -c requirements/requirements.txt - # -c requirements/test-requirements.txt + # -c requirements.txt + # -c test-requirements.txt # requests # types-requests uvicorn==0.30.5 @@ -219,7 +219,7 @@ wcwidth==0.2.13 websockets==12.0 # via sphinx-autobuild werkzeug==3.0.4 - # via -r requirements/dev-requirements.in + # via -r dev-requirements.in # The following packages are considered to be unsafe in a requirements file: # setuptools From 7cf1c9c2d35ca58b35401764a9287ea05d19c742 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 15 Oct 2024 22:04:25 +0000 Subject: [PATCH 50/76] Compile requirements files --- requirements/dev-requirements.txt | 72 +++++++++++++++---------------- 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/requirements/dev-requirements.txt b/requirements/dev-requirements.txt index 3df81175..276c1223 100644 --- a/requirements/dev-requirements.txt +++ b/requirements/dev-requirements.txt @@ -12,7 +12,7 @@ anyio==4.4.0 # watchfiles asgiref==3.7.2 # via - # -c requirements.txt + # -c requirements/requirements.txt # django asttokens==2.4.1 # via stack-data @@ -22,19 +22,19 @@ backcall==0.2.0 # via ipython certifi==2024.7.4 # via - # -c requirements.txt - # -c test-requirements.txt + # -c requirements/requirements.txt + # -c requirements/test-requirements.txt # requests cfgv==3.4.0 # via pre-commit charset-normalizer==3.3.2 # via - # -c requirements.txt - # -c test-requirements.txt + # -c requirements/requirements.txt + # -c requirements/test-requirements.txt # requests click==8.1.3 # via - # -c requirements.txt + # -c requirements/requirements.txt # uvicorn colorama==0.4.6 # via sphinx-autobuild @@ -46,21 +46,21 @@ distlib==0.3.8 # via virtualenv django==4.2.16 # via - # -c requirements.txt + # -c requirements/requirements.txt # django-debug-toolbar # django-stubs # django-stubs-ext django-debug-toolbar==4.4.6 - # via -r dev-requirements.in + # via -r requirements/dev-requirements.in django-stubs==4.2.7 - # via -r dev-requirements.in + # via -r requirements/dev-requirements.in django-stubs-ext==4.2.7 # via django-stubs docutils==0.20.1 # via sphinx exceptiongroup==1.2.0 # via - # -c test-requirements.txt + # -c requirements/test-requirements.txt # anyio executing==2.0.1 # via stack-data @@ -72,14 +72,14 @@ identify==2.5.34 # via pre-commit idna==3.7 # via - # -c requirements.txt - # -c test-requirements.txt + # -c requirements/requirements.txt + # -c requirements/test-requirements.txt # anyio # requests imagesize==1.4.1 # via sphinx ipdb==0.13.13 - # via -r dev-requirements.in + # via -r requirements/dev-requirements.in ipython==8.12.3 # via ipdb jedi==0.19.1 @@ -93,15 +93,15 @@ markupsafe==2.1.5 matplotlib-inline==0.1.6 # via ipython mypy==1.11.2 - # via -r dev-requirements.in + # via -r requirements/dev-requirements.in mypy-extensions==1.0.0 # via mypy nodeenv==1.8.0 # via pre-commit packaging==21.3 # via - # -c requirements.txt - # -c test-requirements.txt + # -c requirements/requirements.txt + # -c requirements/test-requirements.txt # sphinx parso==0.8.3 # via jedi @@ -112,7 +112,7 @@ pickleshare==0.7.5 platformdirs==4.1.0 # via virtualenv pre-commit==4.0.0 - # via -r dev-requirements.in + # via -r requirements/dev-requirements.in prompt-toolkit==3.0.43 # via ipython ptyprocess==0.7.0 @@ -125,24 +125,24 @@ pygments==2.17.2 # sphinx pyparsing==3.1.1 # via - # -c requirements.txt - # -c test-requirements.txt + # -c requirements/requirements.txt + # -c requirements/test-requirements.txt # packaging pyyaml==6.0.1 # via - # -c test-requirements.txt + # -c requirements/test-requirements.txt # pre-commit requests==2.32.3 # via - # -c requirements.txt - # -c test-requirements.txt + # -c requirements/requirements.txt + # -c requirements/test-requirements.txt # sphinx ruff==0.6.9 - # via -r dev-requirements.in + # via -r requirements/dev-requirements.in six==1.16.0 # via - # -c requirements.txt - # -c test-requirements.txt + # -c requirements/requirements.txt + # -c requirements/test-requirements.txt # asttokens sniffio==1.3.1 # via anyio @@ -150,10 +150,10 @@ snowballstemmer==2.2.0 # via sphinx sphinx==7.1.2 # via - # -r dev-requirements.in + # -r requirements/dev-requirements.in # sphinx-autobuild sphinx-autobuild==2024.10.3 - # via -r dev-requirements.in + # via -r requirements/dev-requirements.in sphinxcontrib-applehelp==1.0.4 # via sphinx sphinxcontrib-devhelp==1.0.2 @@ -168,7 +168,7 @@ sphinxcontrib-serializinghtml==1.1.5 # via sphinx sqlparse==0.5.1 # via - # -c requirements.txt + # -c requirements/requirements.txt # django # django-debug-toolbar stack-data==0.6.3 @@ -177,8 +177,8 @@ starlette==0.40.0 # via sphinx-autobuild tomli==2.0.1 # via - # -c requirements.txt - # -c test-requirements.txt + # -c requirements/requirements.txt + # -c requirements/test-requirements.txt # django-stubs # ipdb # mypy @@ -191,11 +191,11 @@ types-pytz==2024.1.0.20240203 types-pyyaml==6.0.12.12 # via django-stubs types-requests==2.32.0.20240914 - # via -r dev-requirements.in + # via -r requirements/dev-requirements.in typing-extensions==4.8.0 # via - # -c requirements.txt - # -c test-requirements.txt + # -c requirements/requirements.txt + # -c requirements/test-requirements.txt # anyio # asgiref # django-stubs @@ -204,8 +204,8 @@ typing-extensions==4.8.0 # uvicorn urllib3==2.2.2 # via - # -c requirements.txt - # -c test-requirements.txt + # -c requirements/requirements.txt + # -c requirements/test-requirements.txt # requests # types-requests uvicorn==0.30.5 @@ -219,7 +219,7 @@ wcwidth==0.2.13 websockets==12.0 # via sphinx-autobuild werkzeug==3.0.4 - # via -r dev-requirements.in + # via -r requirements/dev-requirements.in # The following packages are considered to be unsafe in a requirements file: # setuptools From b58898bcd90ae6af4bed2a91664b7bbc1ce9bb67 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 16 Oct 2024 03:37:57 +0000 Subject: [PATCH 51/76] Bump types-requests from 2.32.0.20240914 to 2.32.0.20241016 Bumps [types-requests](https://github.com/python/typeshed) from 2.32.0.20240914 to 2.32.0.20241016. - [Commits](https://github.com/python/typeshed/commits) --- updated-dependencies: - dependency-name: types-requests dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- requirements/dev-requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements/dev-requirements.txt b/requirements/dev-requirements.txt index f0bcf155..4222d926 100644 --- a/requirements/dev-requirements.txt +++ b/requirements/dev-requirements.txt @@ -190,7 +190,7 @@ types-pytz==2024.1.0.20240203 # via django-stubs types-pyyaml==6.0.12.12 # via django-stubs -types-requests==2.32.0.20240914 +types-requests==2.32.0.20241016 # via -r requirements/dev-requirements.in typing-extensions==4.8.0 # via From 8e3b12caec62a34c5505fd6d34902533f23ab88d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 18 Oct 2024 03:36:12 +0000 Subject: [PATCH 52/76] Bump ruff from 0.6.9 to 0.7.0 Bumps [ruff](https://github.com/astral-sh/ruff) from 0.6.9 to 0.7.0. - [Release notes](https://github.com/astral-sh/ruff/releases) - [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md) - [Commits](https://github.com/astral-sh/ruff/compare/0.6.9...0.7.0) --- updated-dependencies: - dependency-name: ruff dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- requirements/dev-requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements/dev-requirements.txt b/requirements/dev-requirements.txt index f0bcf155..9737182e 100644 --- a/requirements/dev-requirements.txt +++ b/requirements/dev-requirements.txt @@ -137,7 +137,7 @@ requests==2.32.3 # -c requirements/requirements.txt # -c requirements/test-requirements.txt # sphinx -ruff==0.6.9 +ruff==0.7.0 # via -r requirements/dev-requirements.in six==1.16.0 # via From 8eb630df8d64123f197581177cd15c0a1b8792b6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 21 Oct 2024 03:15:37 +0000 Subject: [PATCH 53/76] Bump mysqlclient from 2.2.4 to 2.2.5 Bumps [mysqlclient](https://github.com/PyMySQL/mysqlclient) from 2.2.4 to 2.2.5. - [Release notes](https://github.com/PyMySQL/mysqlclient/releases) - [Changelog](https://github.com/PyMySQL/mysqlclient/blob/main/HISTORY.rst) - [Commits](https://github.com/PyMySQL/mysqlclient/compare/v2.2.4...v2.2.5) --- updated-dependencies: - dependency-name: mysqlclient dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- requirements/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements/requirements.txt b/requirements/requirements.txt index 277a29bb..252db5f1 100644 --- a/requirements/requirements.txt +++ b/requirements/requirements.txt @@ -111,7 +111,7 @@ jsonschema==4.23.0 # via -r requirements/requirements.in jsonschema-specifications==2023.12.1 # via jsonschema -mysqlclient==2.2.4 +mysqlclient==2.2.5 # via -r requirements/requirements.in networkx==3.1 # via From b483c48ec7e56dbbf537ef627e9497e89d5f12e4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 21 Oct 2024 03:16:54 +0000 Subject: [PATCH 54/76] Bump mypy from 1.12.0 to 1.12.1 Bumps [mypy](https://github.com/python/mypy) from 1.12.0 to 1.12.1. - [Changelog](https://github.com/python/mypy/blob/master/CHANGELOG.md) - [Commits](https://github.com/python/mypy/compare/v1.12.0...v1.12.1) --- updated-dependencies: - dependency-name: mypy dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- requirements/dev-requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements/dev-requirements.txt b/requirements/dev-requirements.txt index f0bcf155..171d1faf 100644 --- a/requirements/dev-requirements.txt +++ b/requirements/dev-requirements.txt @@ -92,7 +92,7 @@ markupsafe==2.1.5 # werkzeug matplotlib-inline==0.1.6 # via ipython -mypy==1.12.0 +mypy==1.12.1 # via -r requirements/dev-requirements.in mypy-extensions==1.0.0 # via mypy From 4d141a3be18cbe5f7929345d008d93970e590efc Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 21 Oct 2024 16:25:43 +0000 Subject: [PATCH 55/76] [pre-commit.ci] pre-commit autoupdate MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit updates: - [github.com/astral-sh/ruff-pre-commit: v0.6.9 → v0.7.0](https://github.com/astral-sh/ruff-pre-commit/compare/v0.6.9...v0.7.0) - [github.com/gitleaks/gitleaks: v8.20.0 → v8.21.1](https://github.com/gitleaks/gitleaks/compare/v8.20.0...v8.21.1) --- .pre-commit-config.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 41be8f8a..2c63c131 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -12,7 +12,7 @@ repos: - repo: https://github.com/astral-sh/ruff-pre-commit # Ruff version. - rev: v0.6.9 + rev: v0.7.0 hooks: # Run the linter. - id: ruff @@ -21,7 +21,7 @@ repos: - id: ruff-format - repo: https://github.com/gitleaks/gitleaks - rev: v8.20.0 + rev: v8.21.1 hooks: - id: gitleaks From 30b2ea30ada64d59fa4009c7832ab72b535f5972 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 23 Oct 2024 04:01:43 +0000 Subject: [PATCH 56/76] Bump mypy from 1.12.1 to 1.13.0 Bumps [mypy](https://github.com/python/mypy) from 1.12.1 to 1.13.0. - [Changelog](https://github.com/python/mypy/blob/master/CHANGELOG.md) - [Commits](https://github.com/python/mypy/compare/v1.12.1...v1.13.0) --- updated-dependencies: - dependency-name: mypy dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- requirements/dev-requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements/dev-requirements.txt b/requirements/dev-requirements.txt index 767685cf..4949b187 100644 --- a/requirements/dev-requirements.txt +++ b/requirements/dev-requirements.txt @@ -92,7 +92,7 @@ markupsafe==2.1.5 # werkzeug matplotlib-inline==0.1.6 # via ipython -mypy==1.12.1 +mypy==1.13.0 # via -r requirements/dev-requirements.in mypy-extensions==1.0.0 # via mypy From 1dfa1081957fba807d5c3dc08f32aba74c28dfd2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 24 Oct 2024 03:05:49 +0000 Subject: [PATCH 57/76] Bump actions/checkout from 4.2.1 to 4.2.2 Bumps [actions/checkout](https://github.com/actions/checkout) from 4.2.1 to 4.2.2. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v4.2.1...v4.2.2) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- .github/workflows/ci.yml | 4 ++-- .github/workflows/gitleaks.yml | 2 +- .github/workflows/pip-compile.yml | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ff0612ea..f34d75bf 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -54,7 +54,7 @@ jobs: steps: - name: Checkout Code Repository - uses: actions/checkout@v4.2.1 + uses: actions/checkout@v4.2.2 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v5.2.0 @@ -111,7 +111,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Check out the repo - uses: actions/checkout@v4.2.1 + uses: actions/checkout@v4.2.2 - name: Set up Python uses: actions/setup-python@v5.2.0 diff --git a/.github/workflows/gitleaks.yml b/.github/workflows/gitleaks.yml index 00a67cc8..5c7d8e73 100644 --- a/.github/workflows/gitleaks.yml +++ b/.github/workflows/gitleaks.yml @@ -10,7 +10,7 @@ jobs: name: gitleaks runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4.2.1 + - uses: actions/checkout@v4.2.2 with: fetch-depth: 0 - uses: gitleaks/gitleaks-action@v2.3.7 diff --git a/.github/workflows/pip-compile.yml b/.github/workflows/pip-compile.yml index 9f906bd1..c64f510e 100644 --- a/.github/workflows/pip-compile.yml +++ b/.github/workflows/pip-compile.yml @@ -13,7 +13,7 @@ jobs: steps: - name: Checkout Code Repository - uses: actions/checkout@v4.2.1 + uses: actions/checkout@v4.2.2 with: ref: ${{ github.head_ref }} From 2bdf530949eab71f36ca110e9a335dc2927e4eba Mon Sep 17 00:00:00 2001 From: Jonas Carson Date: Thu, 24 Oct 2024 09:34:40 -0700 Subject: [PATCH 58/76] Changes to adapters, custom provider and tests to support allauth upgrade --- config/settings/base.py | 1 + primed/drupal_oauth_provider/provider.py | 12 +- primed/drupal_oauth_provider/tests.py | 158 +++++++++++++++++- primed/drupal_oauth_provider/views.py | 4 +- .../socialaccount/authentication_error.html | 4 +- primed/users/adapters.py | 15 +- primed/users/tests/test_adapters.py | 110 +++++++----- requirements/requirements.in | 5 + requirements/requirements.txt | 14 +- 9 files changed, 257 insertions(+), 66 deletions(-) diff --git a/config/settings/base.py b/config/settings/base.py index 3ed866c2..2f98275c 100644 --- a/config/settings/base.py +++ b/config/settings/base.py @@ -160,6 +160,7 @@ "maintenance_mode.middleware.MaintenanceModeMiddleware", "simple_history.middleware.HistoryRequestMiddleware", "django_htmx.middleware.HtmxMiddleware", + "allauth.account.middleware.AccountMiddleware", ] # STATIC diff --git a/primed/drupal_oauth_provider/provider.py b/primed/drupal_oauth_provider/provider.py index 92c84dd0..a43370cd 100644 --- a/primed/drupal_oauth_provider/provider.py +++ b/primed/drupal_oauth_provider/provider.py @@ -2,11 +2,14 @@ from allauth.account.models import EmailAddress from allauth.socialaccount import app_settings, providers +from allauth.socialaccount.adapter import get_adapter from allauth.socialaccount.providers.base import ProviderAccount from allauth.socialaccount.providers.oauth2.provider import OAuth2Provider from django.conf import settings from django.core.exceptions import ImproperlyConfigured +from .views import CustomAdapter + logger = logging.getLogger(__name__) DRUPAL_PROVIDER_ID = "drupal_oauth_provider" @@ -24,9 +27,16 @@ class CustomAccount(ProviderAccount): class CustomProvider(OAuth2Provider): - id = "drupal_oauth_provider" + id = DRUPAL_PROVIDER_ID name = OVERRIDE_NAME account_class = CustomAccount + oauth2_adapter_class = CustomAdapter + supports_token_authentication = True + + def __init__(self, request, app=None): + if app is None: + app = get_adapter().get_app(request, self.id) + super().__init__(request, app=app) def extract_uid(self, data): return str(data["sub"]) diff --git a/primed/drupal_oauth_provider/tests.py b/primed/drupal_oauth_provider/tests.py index 5ccfffbc..ca2b598d 100644 --- a/primed/drupal_oauth_provider/tests.py +++ b/primed/drupal_oauth_provider/tests.py @@ -1,10 +1,21 @@ +import base64 import datetime +import hashlib import json +from urllib.parse import parse_qs, urlparse import jwt +import requests +from allauth.socialaccount import app_settings from allauth.socialaccount.adapter import get_adapter +from allauth.socialaccount.models import SocialApp from allauth.socialaccount.tests import OAuth2TestsMixin from allauth.tests import MockedResponse, TestCase +from django.conf import settings +from django.contrib.auth import get_user_model +from django.contrib.sites.models import Site +from django.core.exceptions import ImproperlyConfigured +from django.test import RequestFactory from django.test.utils import override_settings from .provider import CustomProvider @@ -80,10 +91,19 @@ def sign_id_token(payload): # disable token storing for testing as it conflicts with drupals use # of tokens for user info -@override_settings(SOCIALACCOUNT_STORE_TOKENS=False) +@override_settings(SOCIALACCOUNT_STORE_TOKENS=True) class CustomProviderTests(OAuth2TestsMixin, TestCase): provider_id = CustomProvider.id + def setUp(self): + super(CustomProviderTests, self).setUp() + # workaround to create a session. see: + # https://code.djangoproject.com/ticket/11475 + User = get_user_model() + User.objects.create_user("testuser", "testuser@testuser.com", "testpw") + self.client.login(username="testuser", password="testpw") + self.setup_time = datetime.datetime.now(datetime.timezone.utc) + # Provide two mocked responses, first is to the public key request # second is used for the profile request for extra data def get_mocked_response(self): @@ -101,21 +121,83 @@ def get_mocked_response(self): ), ] - # This login response mimics drupals in that it contains a set of scopes - # and the uid which has the name sub - def get_login_response_json(self, with_refresh_token=True): - now = datetime.datetime.now(datetime.timezone.utc) + def login(self, resp_mock=None, process="login", with_refresh_token=True): + """ + Unfortunately due to how our provider works we need to alter + this test login function as the default one fails. + """ + with self.mocked_response(): + resp = self.client.post(self.provider.get_login_url(self.request, process=process)) + p = urlparse(resp["location"]) + q = parse_qs(p.query) + pkce_enabled = app_settings.PROVIDERS.get(self.app.provider, {}).get( + "OAUTH_PKCE_ENABLED", self.provider.pkce_enabled_default + ) + + self.assertEqual("code_challenge" in q, pkce_enabled) + self.assertEqual("code_challenge_method" in q, pkce_enabled) + if pkce_enabled: + code_challenge = q["code_challenge"][0] + self.assertEqual(q["code_challenge_method"][0], "S256") + + complete_url = self.provider.get_callback_url() + self.assertGreater(q["redirect_uri"][0].find(complete_url), 0) + response_json = self.get_login_response_json(with_refresh_token=with_refresh_token) + + resp_mocks = resp_mock if isinstance(resp_mock, list) else ([resp_mock] if resp_mock is not None else []) + + with self.mocked_response( + MockedResponse(200, response_json, {"content-type": "application/json"}), + *resp_mocks, + ): + resp = self.client.get(complete_url, self.get_complete_parameters(q)) + + # Find the access token POST request, and assert that it contains + # the correct code_verifier if and only if PKCE is enabled + request_calls = requests.Session.request.call_args_list + + for args, kwargs in request_calls: + data = kwargs.get("data", {}) + if ( + args + and args[0] == "POST" + and isinstance(data, dict) + and data.get("redirect_uri", "").endswith(complete_url) + ): + self.assertEqual("code_verifier" in data, pkce_enabled) + + if pkce_enabled: + hashed_code_verifier = hashlib.sha256(data["code_verifier"].encode("ascii")) + expected_code_challenge = ( + base64.urlsafe_b64encode(hashed_code_verifier.digest()).rstrip(b"=").decode() + ) + self.assertEqual(code_challenge, expected_code_challenge) + + return resp + + def get_id_token(self): app = get_adapter().get_app(request=None, provider=self.provider_id) allowed_audience = app.client_id - id_token = sign_id_token( + return sign_id_token( { - "exp": now + datetime.timedelta(hours=1), - "iat": now, + "exp": self.setup_time + datetime.timedelta(hours=1), + "iat": self.setup_time, "aud": allowed_audience, "scope": ["authenticated", "oauth_client_user"], "sub": 20122, } ) + + def get_access_token(self) -> str: + return self.get_id_token() + + def get_expected_to_str(self): + return "test@testmaster.net" + + # This login response mimics drupals in that it contains a set of scopes + # and the uid which has the name sub + def get_login_response_json(self, with_refresh_token=True): + id_token = self.get_id_token() response_data = { "access_token": id_token, "expires_in": 3600, @@ -125,3 +207,63 @@ def get_login_response_json(self, with_refresh_token=True): if with_refresh_token: response_data["refresh_token"] = "testrf" return json.dumps(response_data) + + +class TestProviderConfig(TestCase): + def setUp(self): + # workaround to create a session. see: + # https://code.djangoproject.com/ticket/11475 + current_site = Site.objects.get_current() + app = SocialApp.objects.create( + provider=CustomProvider.id, + name=CustomProvider.id, + client_id="app123id", + key=CustomProvider.id, + secret="dummy", + ) + self.app = app + self.app.sites.add(current_site) + + def test_custom_provider_no_app(self): + rf = RequestFactory() + request = rf.get("/fake-url/") + provider = CustomProvider(request) + assert provider.app is not None + + def test_custom_provider_scope_config(self): + custom_provider_settings = settings.SOCIALACCOUNT_PROVIDERS + rf = RequestFactory() + request = rf.get("/fake-url/") + custom_provider_settings["drupal_oauth_provider"]["SCOPES"] = None + with override_settings(SOCIALACCOUNT_PROVIDERS=custom_provider_settings): + with self.assertRaises(ImproperlyConfigured): + CustomProvider(request, app=self.app).get_provider_scope_config() + + def test_custom_provider_scope_detail_config(self): + custom_provider_settings = settings.SOCIALACCOUNT_PROVIDERS + rf = RequestFactory() + request = rf.get("/fake-url/") + custom_provider_settings["drupal_oauth_provider"]["SCOPES"] = [ + { + "z_drupal_machine_name": "X", + "request_scope": True, + "django_group_name": "Z", + } + ] + with override_settings(SOCIALACCOUNT_PROVIDERS=custom_provider_settings): + with self.assertRaises(ImproperlyConfigured): + CustomProvider(request, app=self.app).get_provider_managed_scope_status() + + def test_custom_provider_has_scope(self): + custom_provider_settings = settings.SOCIALACCOUNT_PROVIDERS + rf = RequestFactory() + request = rf.get("/fake-url/") + custom_provider_settings["drupal_oauth_provider"]["SCOPES"] = [ + { + "drupal_machine_name": "X", + "request_scope": True, + "django_group_name": "Z", + } + ] + with override_settings(SOCIALACCOUNT_PROVIDERS=custom_provider_settings): + CustomProvider(request, app=self.app).get_provider_managed_scope_status(scopes_granted=["X"]) diff --git a/primed/drupal_oauth_provider/views.py b/primed/drupal_oauth_provider/views.py index c8a78575..e930cda6 100644 --- a/primed/drupal_oauth_provider/views.py +++ b/primed/drupal_oauth_provider/views.py @@ -12,13 +12,11 @@ OAuth2LoginView, ) -from .provider import CustomProvider - logger = logging.getLogger(__name__) class CustomAdapter(OAuth2Adapter): - provider_id = CustomProvider.id + provider_id = "drupal_oauth_provider" provider_settings = app_settings.PROVIDERS.get(provider_id, {}) diff --git a/primed/templates/socialaccount/authentication_error.html b/primed/templates/socialaccount/authentication_error.html index 747a4513..c4d9bd56 100644 --- a/primed/templates/socialaccount/authentication_error.html +++ b/primed/templates/socialaccount/authentication_error.html @@ -1,8 +1,8 @@ -{% extends "socialaccount/base.html" %} +{% extends "base.html" %} {% load i18n %} -{% block head_title %}{% trans "Social Network Login Failure" %}{% endblock %} +{% block title %}{% trans "Social Network Login Failure" %}{% endblock %} {% block content %}

{% trans "Social Network Login Failure" %}

diff --git a/primed/users/adapters.py b/primed/users/adapters.py index a10c944c..12011304 100644 --- a/primed/users/adapters.py +++ b/primed/users/adapters.py @@ -32,20 +32,20 @@ def update_user_info(self, user, extra_data: Dict, apply_update=True): user_changed = False if user.name != full_name: logger.info( - f"[SocialAccountAdatpter:update_user_name] user {user} " f"name updated from {user.name} to {full_name}" + f"[SocialAccountAdatpter:update_user_info] user {user} " f"name updated from {user.name} to {full_name}" ) user.name = full_name user_changed = True if user.username != drupal_username: logger.info( - f"[SocialAccountAdatpter:update_user_name] user {user} " + f"[SocialAccountAdatpter:update_user_info] user {user} " f"username updated from {user.username} to {drupal_username}" ) user.username = drupal_username user_changed = True if user.email != drupal_email: logger.info( - f"[SocialAccountAdatpter:update_user_name] user {user}" + f"[SocialAccountAdatpter:update_user_info] user {user}" f" email updated from {user.email} to {drupal_email}" ) user.email = drupal_email @@ -140,10 +140,13 @@ def update_user_data(self, sociallogin: Any): self.update_user_study_sites(user, extra_data) self.update_user_groups(user, extra_data) - def authentication_error(self, request, provider_id, error, exception, extra_context): + def on_authentication_error(self, request, provider_id, error, exception, extra_context): """ Invoked when there is an error in auth cycle. Log so we know what is going on. """ - logger.error(f"[SocialAccountAdapter:authentication_error] Error {error} Exception: {exception}") - super().authentication_error(request, provider_id, error, exception, extra_context) + logger.error( + f"[SocialAccountAdapter:on_authentication_error] Provider: {provider_id} " + f"Error {error} Exception: {exception} extra {extra_context}" + ) + super().on_authentication_error(request, provider_id, error, exception, extra_context) diff --git a/primed/users/tests/test_adapters.py b/primed/users/tests/test_adapters.py index cae571dc..0ddf77e2 100644 --- a/primed/users/tests/test_adapters.py +++ b/primed/users/tests/test_adapters.py @@ -1,63 +1,89 @@ import pytest from allauth.account import app_settings as account_settings -from allauth.socialaccount.helpers import complete_social_login -from allauth.socialaccount.models import SocialAccount, SocialLogin -from allauth.utils import get_user_model +from allauth.account import signals +from allauth.socialaccount.models import SocialAccount, SocialApp, SocialLogin +from django.conf import settings +from django.contrib.auth import get_user_model +from django.contrib.auth.middleware import AuthenticationMiddleware from django.contrib.auth.models import AnonymousUser -from django.contrib.messages.middleware import MessageMiddleware from django.contrib.sessions.middleware import SessionMiddleware +from django.contrib.sites.models import Site from django.core import mail from django.core.exceptions import ImproperlyConfigured +from django.test import TestCase from django.test.client import RequestFactory from django.test.utils import override_settings +from primed.drupal_oauth_provider.provider import CustomProvider from primed.primed_anvil.tests.factories import StudySiteFactory from primed.users.adapters import AccountAdapter, SocialAccountAdapter from .factories import GroupFactory, UserFactory +User = get_user_model() -@pytest.mark.django_db -class TestsUserSocialLoginAdapter(object): - @override_settings( - SOCIALACCOUNT_AUTO_SIGNUP=True, - ACCOUNT_SIGNUP_FORM_CLASS=None, - ACCOUNT_EMAIL_VERIFICATION=account_settings.EmailVerificationMethod.NONE, # noqa - ) - def test_drupal_social_login_adapter(self): - factory = RequestFactory() - request = factory.get("/accounts/login/callback/") - request.user = AnonymousUser() - SessionMiddleware(lambda request: None).process_request(request) - MessageMiddleware(lambda request: None).process_request(request) - User = get_user_model() - user = User() - old_name = "Old Name" - old_username = "test" - old_email = "test@example.com" - setattr(user, account_settings.USER_MODEL_USERNAME_FIELD, old_username) - setattr(user, "name", old_name) - setattr(user, account_settings.USER_MODEL_EMAIL_FIELD, old_email) - - account = SocialAccount( +class SocialAccountAdapterTest(TestCase): + def setUp(self): + self.factory = RequestFactory() + # Setup a mock social app + current_site = Site.objects.get_current() + self.social_app = SocialApp.objects.create( + provider=CustomProvider.id, + name="DOA", + client_id="test-client-id", + secret="test-client-secret", + ) + self.social_app.sites.add(current_site) + + def test_social_login_success(self): + # Mock user + request = self.factory.get("/") + middleware = SessionMiddleware(lambda x: None) + middleware.process_request(request) + request.session.save() + middleware = AuthenticationMiddleware(lambda x: None) + middleware.process_request(request) + request.user = AnonymousUser() + user = User.objects.create(username="testuser", email="testuser@example.com") + + # # Mock social login + # Create a mock SocialAccount and link it to the user + new_first_name = "Bob" + new_last_name = "Rob" + social_account = SocialAccount.objects.create( + user=user, provider="drupal_oauth_provider", - uid="123", - extra_data=dict( - first_name="Old", - last_name="Name", - email=old_email, - preferred_username=old_username, - ), + uid="12345", + extra_data={ + "preferred_username": "testuser", + "first_name": new_first_name, + "last_name": new_last_name, + "email": "testuser@example.com", + }, ) - sociallogin = SocialLogin(user=user, account=account) - complete_social_login(request, sociallogin) - user = User.objects.get(**{account_settings.USER_MODEL_USERNAME_FIELD: old_username}) - assert SocialAccount.objects.filter(user=user, uid=account.uid).exists() is True - assert user.name == old_name - assert user.username == old_username - assert user.email == old_email + # Create a mock SocialLogin object and associate the user and social account + sociallogin = SocialLogin(user=user, account=social_account) + + # Simulate social login + from allauth.account.adapter import get_adapter + + # adapter = SocialAccountAdapter() + adapter = get_adapter(request) + + adapter.login(request, user) + + signals.user_logged_in.send( + sender=user.__class__, + request=request, + user=user, + sociallogin=sociallogin, + ) + # Check if the login completed successfully + self.assertEqual(sociallogin.user, user) + self.assertEqual(request.user, user) + self.assertEqual(user.name, f"{new_first_name} {new_last_name}") def test_update_user_info(self): adapter = SocialAccountAdapter() @@ -122,7 +148,7 @@ def test_update_user_study_sites_remove(self): assert user.study_sites.all().count() == 1 @override_settings(EMAIL_BACKEND="django.core.mail.backends.locmem.EmailBackend") - def test_update_user_study_sites_unknown(self, settings): + def test_update_user_study_sites_unknown(self): adapter = SocialAccountAdapter() user = UserFactory() diff --git a/requirements/requirements.in b/requirements/requirements.in index acccee7a..9e075aeb 100644 --- a/requirements/requirements.in +++ b/requirements/requirements.in @@ -5,6 +5,11 @@ pip-tools whitenoise # https://github.com/evansd/whitenoise oauthlib # https://github.com/oauthlib/oauthlib +# Allauth adapter related needs +cryptography # https://github.com/pyca/cryptography +pyjwt # https://github.com/jpadilla/pyjwt +requests-oauthlib # https://github.com/requests/requests-oauthlib + # Password hashing argon2-cffi # https://github.com/hynek/argon2_cffi diff --git a/requirements/requirements.txt b/requirements/requirements.txt index 252db5f1..d1c8594f 100644 --- a/requirements/requirements.txt +++ b/requirements/requirements.txt @@ -37,7 +37,9 @@ crispy-bootstrap5==2024.10 # -r requirements/requirements.in # django-anvil-consortium-manager cryptography==43.0.1 - # via pyjwt + # via + # -r requirements/requirements.in + # pyjwt defusedxml==0.7.1 # via python3-openid django==4.2.16 @@ -56,7 +58,7 @@ django==4.2.16 # django-picklefield # django-simple-history # django-tables2 -django-allauth==0.54.0 +django-allauth==65.0.2 # via -r requirements/requirements.in django-anvil-consortium-manager @ git+https://github.com/UW-GAC/django-anvil-consortium-manager.git@v0.25 # via -r requirements/requirements.in @@ -146,7 +148,9 @@ pyasn1-modules==0.3.0 pycparser==2.21 # via cffi pyjwt[crypto]==2.4.0 - # via django-allauth + # via + # -r requirements/requirements.in + # django-allauth pyparsing==3.1.1 # via packaging pyproject-hooks==1.0.0 @@ -178,7 +182,9 @@ requests==2.32.3 # jsonapi-requests # requests-oauthlib requests-oauthlib==1.3.1 - # via django-allauth + # via + # -r requirements/requirements.in + # django-allauth rpds-py==0.17.1 # via # jsonschema From 44e74b33b7dd00c16e1f0555a6de1a2e330ad180 Mon Sep 17 00:00:00 2001 From: jmcarson <1005508+jmcarson@users.noreply.github.com> Date: Thu, 24 Oct 2024 17:30:52 +0000 Subject: [PATCH 59/76] Compile requirements files --- requirements/requirements.txt | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/requirements/requirements.txt b/requirements/requirements.txt index d1c8594f..9cbe930d 100644 --- a/requirements/requirements.txt +++ b/requirements/requirements.txt @@ -37,11 +37,7 @@ crispy-bootstrap5==2024.10 # -r requirements/requirements.in # django-anvil-consortium-manager cryptography==43.0.1 - # via - # -r requirements/requirements.in - # pyjwt -defusedxml==0.7.1 - # via python3-openid + # via -r requirements/requirements.in django==4.2.16 # via # -r requirements/requirements.in @@ -147,10 +143,8 @@ pyasn1-modules==0.3.0 # via google-auth pycparser==2.21 # via cffi -pyjwt[crypto]==2.4.0 - # via - # -r requirements/requirements.in - # django-allauth +pyjwt==2.4.0 + # via -r requirements/requirements.in pyparsing==3.1.1 # via packaging pyproject-hooks==1.0.0 @@ -163,8 +157,6 @@ python-dateutil==2.8.2 # pronto python-fsutil==0.13.1 # via django-maintenance-mode -python3-openid==3.2.0 - # via django-allauth pytz==2023.3.post1 # via # django-anvil-consortium-manager @@ -177,14 +169,11 @@ referencing==0.33.0 requests==2.32.3 # via # -r requirements/requirements.in - # django-allauth # django-anvil-consortium-manager # jsonapi-requests # requests-oauthlib requests-oauthlib==1.3.1 - # via - # -r requirements/requirements.in - # django-allauth + # via -r requirements/requirements.in rpds-py==0.17.1 # via # jsonschema From 85bf7465b798aa74c0cf9c541fd7b8691b8d4dda Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 25 Oct 2024 03:37:58 +0000 Subject: [PATCH 60/76] Bump actions/setup-python from 5.2.0 to 5.3.0 Bumps [actions/setup-python](https://github.com/actions/setup-python) from 5.2.0 to 5.3.0. - [Release notes](https://github.com/actions/setup-python/releases) - [Commits](https://github.com/actions/setup-python/compare/v5.2.0...v5.3.0) --- updated-dependencies: - dependency-name: actions/setup-python dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/ci.yml | 4 ++-- .github/workflows/pip-compile.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ff0612ea..8bb4e43f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -57,7 +57,7 @@ jobs: uses: actions/checkout@v4.2.1 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v5.2.0 + uses: actions/setup-python@v5.3.0 with: python-version: ${{ matrix.python-version }} cache: pip @@ -114,7 +114,7 @@ jobs: uses: actions/checkout@v4.2.1 - name: Set up Python - uses: actions/setup-python@v5.2.0 + uses: actions/setup-python@v5.3.0 with: python-version: '3.10' diff --git a/.github/workflows/pip-compile.yml b/.github/workflows/pip-compile.yml index 9f906bd1..1b04610d 100644 --- a/.github/workflows/pip-compile.yml +++ b/.github/workflows/pip-compile.yml @@ -18,7 +18,7 @@ jobs: ref: ${{ github.head_ref }} - name: Set up Python - uses: actions/setup-python@v5.2.0 + uses: actions/setup-python@v5.3.0 with: python-version: "3.10" From 32da68cc921d6bd1b2e08ea4a770477b012f70a8 Mon Sep 17 00:00:00 2001 From: Jonas Carson Date: Fri, 25 Oct 2024 11:21:51 -0700 Subject: [PATCH 61/76] Add coverage for invalid token code paths --- primed/drupal_oauth_provider/tests.py | 90 +++++++++++++++++++++++---- primed/drupal_oauth_provider/views.py | 7 +-- 2 files changed, 79 insertions(+), 18 deletions(-) diff --git a/primed/drupal_oauth_provider/tests.py b/primed/drupal_oauth_provider/tests.py index ca2b598d..e59eb6f2 100644 --- a/primed/drupal_oauth_provider/tests.py +++ b/primed/drupal_oauth_provider/tests.py @@ -1,22 +1,27 @@ import base64 +import copy import datetime import hashlib import json +import sys from urllib.parse import parse_qs, urlparse import jwt import requests from allauth.socialaccount import app_settings from allauth.socialaccount.adapter import get_adapter -from allauth.socialaccount.models import SocialApp +from allauth.socialaccount.models import SocialAccount, SocialApp, SocialToken +from allauth.socialaccount.providers.oauth2.client import OAuth2Error from allauth.socialaccount.tests import OAuth2TestsMixin from allauth.tests import MockedResponse, TestCase from django.conf import settings from django.contrib.auth import get_user_model +from django.contrib.messages.storage.fallback import FallbackStorage from django.contrib.sites.models import Site from django.core.exceptions import ImproperlyConfigured from django.test import RequestFactory from django.test.utils import override_settings +from django.urls import reverse from .provider import CustomProvider @@ -76,17 +81,20 @@ def sign_id_token(payload): # Mocked version of the test data from /oauth/jwks -KEY_SERVER_RESP_JSON = json.dumps( - { - "keys": [ - { - "kty": TESTING_JWT_KEYSET["kty"], - "n": TESTING_JWT_KEYSET["n"], - "e": TESTING_JWT_KEYSET["e"], - } - ] - } -) +KEY_SERVER_RESP = { + "keys": [ + { + "kty": TESTING_JWT_KEYSET["kty"], + "n": TESTING_JWT_KEYSET["n"], + "e": TESTING_JWT_KEYSET["e"], + } + ] +} +KEY_SERVER_RESP_INVALID = copy.deepcopy(KEY_SERVER_RESP) +KEY_SERVER_RESP_INVALID["keys"][0]["kty"] = "nuts" +KEY_SERVER_RESP_JSON = json.dumps(KEY_SERVER_RESP) +KEY_SERVER_RESP_JSON_INVALID = json.dumps(KEY_SERVER_RESP_INVALID) +print(f"KEY_RESP_VALID: {KEY_SERVER_RESP_JSON}", file=sys.stderr) # disable token storing for testing as it conflicts with drupals use @@ -97,13 +105,19 @@ class CustomProviderTests(OAuth2TestsMixin, TestCase): def setUp(self): super(CustomProviderTests, self).setUp() + self.factory = RequestFactory() # workaround to create a session. see: # https://code.djangoproject.com/ticket/11475 User = get_user_model() - User.objects.create_user("testuser", "testuser@testuser.com", "testpw") + user = User.objects.create_user("testuser", "testuser@testuser.com", "testpw") self.client.login(username="testuser", password="testpw") self.setup_time = datetime.datetime.now(datetime.timezone.utc) + # Create a social account for testing + self.social_account = SocialAccount.objects.create( + provider=self.provider.id, user=user, uid="1234", extra_data={} + ) + # Provide two mocked responses, first is to the public key request # second is used for the profile request for extra data def get_mocked_response(self): @@ -208,6 +222,47 @@ def get_login_response_json(self, with_refresh_token=True): response_data["refresh_token"] = "testrf" return json.dumps(response_data) + def test_authentication_error(self): + # Create a request + + request = self.factory.get(reverse("drupal_oauth_provider_login")) + + # Add session and messages middleware + from django.contrib.sessions.middleware import SessionMiddleware + + middleware = SessionMiddleware(lambda x: x) + middleware.process_request(request) + request.session.save() + + # Add messages support + + messages = FallbackStorage(request) + setattr(request, "_messages", messages) + + # Create adapter instance + from primed.drupal_oauth_provider.views import CustomAdapter + + adapter = CustomAdapter(request) + # Create a SocialToken instance + token = SocialToken(app=self.app, account=self.social_account, token="invalid_token") + + with self.assertRaisesRegex(OAuth2Error, "Invalid id_token"): + # Simulate the error condition of a bad token + with self.mocked_response(self.get_mocked_response()[0]): + adapter.complete_login(request, app=self.app, token=token, response={"error": "invalid_grant"}) + + with self.assertRaisesRegex(OAuth2Error, "Error retrieving drupal public key"): + # Simulate the error condition of invalid json + with self.mocked_response(MockedResponse(200, "[lkjsdd]")): + adapter.complete_login(request, app=self.app, token=token, response={"error": "invalid_grant"}) + + with self.assertRaisesRegex(OAuth2Error, "failed to convert jwk"): + # Simulate the error condition of invalid jwk + with self.mocked_response( + MockedResponse(200, KEY_SERVER_RESP_JSON_INVALID), + ): + adapter.complete_login(request, app=self.app, token=token, response={"error": "invalid_grant"}) + class TestProviderConfig(TestCase): def setUp(self): @@ -239,6 +294,15 @@ def test_custom_provider_scope_config(self): with self.assertRaises(ImproperlyConfigured): CustomProvider(request, app=self.app).get_provider_scope_config() + def test_custom_provider_scope_config_not_list(self): + custom_provider_settings = settings.SOCIALACCOUNT_PROVIDERS + rf = RequestFactory() + request = rf.get("/fake-url/") + custom_provider_settings["drupal_oauth_provider"]["SCOPES"] = {"not_a_list": 1} + with override_settings(SOCIALACCOUNT_PROVIDERS=custom_provider_settings): + with self.assertRaises(ImproperlyConfigured): + CustomProvider(request, app=self.app).get_provider_scope_config() + def test_custom_provider_scope_detail_config(self): custom_provider_settings = settings.SOCIALACCOUNT_PROVIDERS rf = RequestFactory() diff --git a/primed/drupal_oauth_provider/views.py b/primed/drupal_oauth_provider/views.py index e930cda6..16a69e7f 100644 --- a/primed/drupal_oauth_provider/views.py +++ b/primed/drupal_oauth_provider/views.py @@ -58,7 +58,8 @@ def get_public_key(self, headers): try: public_key = jwt.algorithms.RSAAlgorithm.from_jwk(json.dumps(public_key_jwk)) except Exception as e: - logger.error(f"[get_public_key] failed to convert jwk to public key {e}") + logger.error(f"[get_public_key] failed to convert jwk {public_key_jwk} to public key {e}") + raise OAuth2Error(f"[get_public_key] failed to convert jwk {public_key_jwk} to public key {e}") else: return public_key @@ -72,7 +73,6 @@ def get_scopes_from_token(self, id_token, headers): scopes = None try: - unverified_header = jwt.get_unverified_header(id_token.token) token_payload = jwt.decode( id_token.token, public_key, @@ -83,9 +83,6 @@ def get_scopes_from_token(self, id_token, headers): except jwt.PyJWTError as e: logger.error(f"Invalid id_token {e} {id_token.token}") raise OAuth2Error("Invalid id_token") from e - except Exception as e: - logger.error(f"Other exception parsing token {e} header {unverified_header} token {id_token}") - raise OAuth2Error("Error when decoding token {e}") else: scopes = token_payload.get("scope") From 7277245334fed525179a02f6c17c0e8f5bbc11fb Mon Sep 17 00:00:00 2001 From: Jonas Carson Date: Fri, 25 Oct 2024 12:41:50 -0700 Subject: [PATCH 62/76] Fix missing coverage for login page and auth_error --- .../socialaccount/snippets/provider_list.html | 10 --- primed/users/tests/test_adapters.py | 85 +++++++++++++------ primed/users/tests/test_views.py | 19 +++++ 3 files changed, 80 insertions(+), 34 deletions(-) diff --git a/primed/templates/socialaccount/snippets/provider_list.html b/primed/templates/socialaccount/snippets/provider_list.html index d89feade..1fd9f5d3 100644 --- a/primed/templates/socialaccount/snippets/provider_list.html +++ b/primed/templates/socialaccount/snippets/provider_list.html @@ -3,16 +3,6 @@ {% get_providers as socialaccount_providers %} {% for provider in socialaccount_providers %} -{% if provider.id == "openid" %} -{% for brand in provider.get_brands %} -

- {{brand.name}} -

-{% endfor %} -{% endif %}

diff --git a/primed/users/tests/test_adapters.py b/primed/users/tests/test_adapters.py index 0ddf77e2..df8835a8 100644 --- a/primed/users/tests/test_adapters.py +++ b/primed/users/tests/test_adapters.py @@ -35,24 +35,11 @@ def setUp(self): secret="test-client-secret", ) self.social_app.sites.add(current_site) - - def test_social_login_success(self): - # Mock user - request = self.factory.get("/") - middleware = SessionMiddleware(lambda x: None) - middleware.process_request(request) - request.session.save() - middleware = AuthenticationMiddleware(lambda x: None) - middleware.process_request(request) - request.user = AnonymousUser() - user = User.objects.create(username="testuser", email="testuser@example.com") - - # # Mock social login - # Create a mock SocialAccount and link it to the user + self.user = User.objects.create(username="testuser", email="testuser@example.com") new_first_name = "Bob" new_last_name = "Rob" - social_account = SocialAccount.objects.create( - user=user, + self.social_account = SocialAccount.objects.create( + user=self.user, provider="drupal_oauth_provider", uid="12345", extra_data={ @@ -64,7 +51,37 @@ def test_social_login_success(self): ) # Create a mock SocialLogin object and associate the user and social account - sociallogin = SocialLogin(user=user, account=social_account) + self.sociallogin = SocialLogin(user=self.user, account=self.social_account) + + def test_social_login_success(self): + # Mock user + request = self.factory.get("/") + middleware = SessionMiddleware(lambda x: None) + middleware.process_request(request) + request.session.save() + middleware = AuthenticationMiddleware(lambda x: None) + middleware.process_request(request) + request.user = AnonymousUser() + # user = User.objects.create(username="testuser", email="testuser@example.com") + + # # # Mock social login + # # Create a mock SocialAccount and link it to the user + new_first_name = "Bob" + new_last_name = "Rob" + # social_account = SocialAccount.objects.create( + # user=user, + # provider="drupal_oauth_provider", + # uid="12345", + # extra_data={ + # "preferred_username": "testuser", + # "first_name": new_first_name, + # "last_name": new_last_name, + # "email": "testuser@example.com", + # }, + # ) + + # # Create a mock SocialLogin object and associate the user and social account + # sociallogin = SocialLogin(user=user, account=social_account) # Simulate social login from allauth.account.adapter import get_adapter @@ -72,18 +89,34 @@ def test_social_login_success(self): # adapter = SocialAccountAdapter() adapter = get_adapter(request) - adapter.login(request, user) + adapter.login(request, self.user) signals.user_logged_in.send( - sender=user.__class__, + sender=self.user.__class__, request=request, - user=user, - sociallogin=sociallogin, + user=self.user, + sociallogin=self.sociallogin, ) # Check if the login completed successfully - self.assertEqual(sociallogin.user, user) - self.assertEqual(request.user, user) - self.assertEqual(user.name, f"{new_first_name} {new_last_name}") + self.assertEqual(self.sociallogin.user, self.user) + self.assertEqual(request.user, self.user) + self.assertEqual(self.user.name, f"{new_first_name} {new_last_name}") + + def test_authentication_error_with_callback(self): + """Test authentication error during callback processing""" + from django.urls import reverse + + callback_url = reverse("drupal_oauth_provider_callback") + response = self.client.get(callback_url, {"error": "access_denied"}) + self.assertTemplateUsed( + response, + "socialaccount/authentication_error.%s" % getattr(settings, "ACCOUNT_TEMPLATE_EXTENSION", "html"), + ) + # # Check if the response redirects to the login error page + # #self.assertEqual(response.status_code, 302) + # import sys + # print(f"RESP {response} ", file=sys.stderr) + # self.assertIn('socialaccount/authentication_error', response.url) def test_update_user_info(self): adapter = SocialAccountAdapter() @@ -224,10 +257,14 @@ def test_update_user_groups_malformed(self): def test_account_is_open_for_signup(self): request = RequestFactory() adapter = AccountAdapter() + social_adapter = SocialAccountAdapter() assert adapter.is_open_for_signup(request) is True + assert social_adapter.is_open_for_signup(request=request, sociallogin=self.sociallogin) is True @override_settings(ACCOUNT_ALLOW_REGISTRATION=False) def test_account_is_not_open_for_signup(self): request = RequestFactory() adapter = AccountAdapter() + social_adapter = SocialAccountAdapter() assert adapter.is_open_for_signup(request) is False + assert social_adapter.is_open_for_signup(request=request, sociallogin=self.sociallogin) is False diff --git a/primed/users/tests/test_views.py b/primed/users/tests/test_views.py index a03da768..73d41a58 100644 --- a/primed/users/tests/test_views.py +++ b/primed/users/tests/test_views.py @@ -1,6 +1,7 @@ import json import pytest +from allauth.socialaccount.models import SocialApp from anvil_consortium_manager.models import AnVILProjectManagerAccess from anvil_consortium_manager.tests.factories import ( AccountFactory, @@ -11,6 +12,7 @@ from django.contrib.auth.models import AnonymousUser, Permission from django.contrib.messages.middleware import MessageMiddleware from django.contrib.sessions.middleware import SessionMiddleware +from django.contrib.sites.models import Site from django.http import HttpRequest from django.shortcuts import resolve_url from django.test import RequestFactory, TestCase @@ -22,6 +24,7 @@ NonDataAffiliateAgreementFactory, ) from primed.dbgap.tests.factories import dbGaPApplicationFactory +from primed.drupal_oauth_provider.provider import CustomProvider from primed.primed_anvil.tests.factories import StudySiteFactory from primed.users.forms import UserChangeForm from primed.users.models import User @@ -189,6 +192,22 @@ def test_view_links(self, client, user: User, rf: RequestFactory): assert account.get_absolute_url() not in str(response.content) +class LoginViewTest(TestCase): + def setUp(self): + current_site = Site.objects.get_current() + self.social_app = SocialApp.objects.create( + provider=CustomProvider.id, + name="DOA", + client_id="test-client-id", + secret="test-client-secret", + ) + self.social_app.sites.add(current_site) + + def test_basic_login_view_render(self): + response = self.client.get(reverse("account_login")) + assert response.status_code == 200 + + class UserDetailTest(TestCase): def setUp(self): self.factory = RequestFactory() From cbc5e41f03e370afbbd97b52791a59e2ab3e09bb Mon Sep 17 00:00:00 2001 From: Adrienne Stilp Date: Thu, 7 Nov 2024 11:06:07 -0800 Subject: [PATCH 63/76] Pin pip to a specific version Paths in the requirements.txt file get converted to absolute paths instead of relative paths. This can (temporarily?) be fixed by pinning pip to a specific version. Hopefully? --- .github/workflows/pip-compile.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/pip-compile.yml b/.github/workflows/pip-compile.yml index 9f906bd1..36124064 100644 --- a/.github/workflows/pip-compile.yml +++ b/.github/workflows/pip-compile.yml @@ -22,6 +22,12 @@ jobs: with: python-version: "3.10" + - name: Temporarily pin pip-compile version + # The latest version of pip and pip-tools creates absolute paths instead of relative paths + # when compiling requirements files. + run: | + pip install --upgrade pip==24.3 + - name: Update requirements files uses: UW-GAC/pip-tools-actions/update-requirements-files@v0.1 with: From 63168a554552547c734d020f2ad2edcc5b629c77 Mon Sep 17 00:00:00 2001 From: Adrienne Stilp Date: Thu, 7 Nov 2024 12:02:05 -0800 Subject: [PATCH 64/76] Try using a new version of the pip-tools-actions repo Instead of pinning pip here, I updated the pip-tools-actions repo to use v24.3 of pip, which should work with pip-tools. --- .github/workflows/pip-compile.yml | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/.github/workflows/pip-compile.yml b/.github/workflows/pip-compile.yml index 36124064..3e2037f3 100644 --- a/.github/workflows/pip-compile.yml +++ b/.github/workflows/pip-compile.yml @@ -22,14 +22,8 @@ jobs: with: python-version: "3.10" - - name: Temporarily pin pip-compile version - # The latest version of pip and pip-tools creates absolute paths instead of relative paths - # when compiling requirements files. - run: | - pip install --upgrade pip==24.3 - - name: Update requirements files - uses: UW-GAC/pip-tools-actions/update-requirements-files@v0.1 + uses: UW-GAC/pip-tools-actions/update-requirements-files@feature/remove-pip-upgrade with: requirements_files: |- requirements/requirements.in From e6d3d6af04c18566b5b847b5258c9c8be4e60a0a Mon Sep 17 00:00:00 2001 From: Adrienne Stilp Date: Thu, 7 Nov 2024 12:17:40 -0800 Subject: [PATCH 65/76] Use new release of pip-tools-actions Same as before, just a new tag. --- .github/workflows/pip-compile.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pip-compile.yml b/.github/workflows/pip-compile.yml index 3e2037f3..72bd62a0 100644 --- a/.github/workflows/pip-compile.yml +++ b/.github/workflows/pip-compile.yml @@ -23,7 +23,7 @@ jobs: python-version: "3.10" - name: Update requirements files - uses: UW-GAC/pip-tools-actions/update-requirements-files@feature/remove-pip-upgrade + uses: UW-GAC/pip-tools-actions/update-requirements-files@v0.2 with: requirements_files: |- requirements/requirements.in From 4217df87e9b0573612722ab3b0158d871c6ae7ae Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 7 Nov 2024 20:58:30 +0000 Subject: [PATCH 66/76] Bump pytest-cov from 5.0.0 to 6.0.0 Bumps [pytest-cov](https://github.com/pytest-dev/pytest-cov) from 5.0.0 to 6.0.0. - [Changelog](https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst) - [Commits](https://github.com/pytest-dev/pytest-cov/compare/v5.0.0...v6.0.0) --- updated-dependencies: - dependency-name: pytest-cov dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- requirements/test-requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements/test-requirements.txt b/requirements/test-requirements.txt index 522bfa65..2cc02a15 100644 --- a/requirements/test-requirements.txt +++ b/requirements/test-requirements.txt @@ -60,7 +60,7 @@ pytest==8.3.3 # pytest-django # pytest-sugar # pytest-xdist -pytest-cov==5.0.0 +pytest-cov==6.0.0 # via -r requirements/test-requirements.in pytest-django==4.9.0 # via -r requirements/test-requirements.in From 63c81200a4ceeefdc89a4f39036e01ef0943b54a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 7 Nov 2024 20:58:51 +0000 Subject: [PATCH 67/76] Bump django-htmx from 1.19.0 to 1.21.0 Bumps [django-htmx](https://github.com/adamchainz/django-htmx) from 1.19.0 to 1.21.0. - [Changelog](https://github.com/adamchainz/django-htmx/blob/main/docs/changelog.rst) - [Commits](https://github.com/adamchainz/django-htmx/compare/1.19.0...1.21.0) --- updated-dependencies: - dependency-name: django-htmx dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- requirements/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements/requirements.txt b/requirements/requirements.txt index 9cbe930d..af2b3469 100644 --- a/requirements/requirements.txt +++ b/requirements/requirements.txt @@ -77,7 +77,7 @@ django-extensions==3.2.3 # django-anvil-consortium-manager django-filter==23.5 # via django-anvil-consortium-manager -django-htmx==1.19.0 +django-htmx==1.21.0 # via -r requirements/requirements.in django-login-required-middleware==0.9.0 # via -r requirements/requirements.in From be117c2cfc801051ca2af2326de4bf5cce5460dd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 7 Nov 2024 20:58:55 +0000 Subject: [PATCH 68/76] Bump ruff from 0.7.0 to 0.7.2 Bumps [ruff](https://github.com/astral-sh/ruff) from 0.7.0 to 0.7.2. - [Release notes](https://github.com/astral-sh/ruff/releases) - [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md) - [Commits](https://github.com/astral-sh/ruff/compare/0.7.0...0.7.2) --- updated-dependencies: - dependency-name: ruff dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- requirements/dev-requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements/dev-requirements.txt b/requirements/dev-requirements.txt index 767685cf..201779f2 100644 --- a/requirements/dev-requirements.txt +++ b/requirements/dev-requirements.txt @@ -137,7 +137,7 @@ requests==2.32.3 # -c requirements/requirements.txt # -c requirements/test-requirements.txt # sphinx -ruff==0.7.0 +ruff==0.7.2 # via -r requirements/dev-requirements.in six==1.16.0 # via From 17bc8165af1559d3bef90f3ff08634918b9c892d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 7 Nov 2024 20:58:59 +0000 Subject: [PATCH 69/76] Bump werkzeug from 3.0.4 to 3.1.2 Bumps [werkzeug](https://github.com/pallets/werkzeug) from 3.0.4 to 3.1.2. - [Release notes](https://github.com/pallets/werkzeug/releases) - [Changelog](https://github.com/pallets/werkzeug/blob/main/CHANGES.rst) - [Commits](https://github.com/pallets/werkzeug/compare/3.0.4...3.1.2) --- updated-dependencies: - dependency-name: werkzeug dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- requirements/dev-requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements/dev-requirements.txt b/requirements/dev-requirements.txt index 767685cf..b624c265 100644 --- a/requirements/dev-requirements.txt +++ b/requirements/dev-requirements.txt @@ -218,7 +218,7 @@ wcwidth==0.2.13 # via prompt-toolkit websockets==12.0 # via sphinx-autobuild -werkzeug==3.0.4 +werkzeug==3.1.2 # via -r requirements/dev-requirements.in # The following packages are considered to be unsafe in a requirements file: From f568435b59fa48d2234decab887bc90bd2fdbb8c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 7 Nov 2024 20:59:03 +0000 Subject: [PATCH 70/76] Bump pyjwt from 2.4.0 to 2.9.0 Bumps [pyjwt](https://github.com/jpadilla/pyjwt) from 2.4.0 to 2.9.0. - [Release notes](https://github.com/jpadilla/pyjwt/releases) - [Changelog](https://github.com/jpadilla/pyjwt/blob/master/CHANGELOG.rst) - [Commits](https://github.com/jpadilla/pyjwt/compare/2.4.0...2.9.0) --- updated-dependencies: - dependency-name: pyjwt dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- requirements/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements/requirements.txt b/requirements/requirements.txt index 9cbe930d..697e365a 100644 --- a/requirements/requirements.txt +++ b/requirements/requirements.txt @@ -143,7 +143,7 @@ pyasn1-modules==0.3.0 # via google-auth pycparser==2.21 # via cffi -pyjwt==2.4.0 +pyjwt==2.9.0 # via -r requirements/requirements.in pyparsing==3.1.1 # via packaging From 2b0676d9229b8c1f168cd921c6d0f818da7d5829 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 7 Nov 2024 20:59:03 +0000 Subject: [PATCH 71/76] Bump requests-oauthlib from 1.3.1 to 2.0.0 Bumps [requests-oauthlib](https://github.com/requests/requests-oauthlib) from 1.3.1 to 2.0.0. - [Release notes](https://github.com/requests/requests-oauthlib/releases) - [Changelog](https://github.com/requests/requests-oauthlib/blob/master/HISTORY.rst) - [Commits](https://github.com/requests/requests-oauthlib/compare/v1.3.1...v2.0.0) --- updated-dependencies: - dependency-name: requests-oauthlib dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- requirements/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements/requirements.txt b/requirements/requirements.txt index 9cbe930d..7af53ca8 100644 --- a/requirements/requirements.txt +++ b/requirements/requirements.txt @@ -172,7 +172,7 @@ requests==2.32.3 # django-anvil-consortium-manager # jsonapi-requests # requests-oauthlib -requests-oauthlib==1.3.1 +requests-oauthlib==2.0.0 # via -r requirements/requirements.in rpds-py==0.17.1 # via From e279acc6bd95b053223e2017e9a22ef051023cae Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 7 Nov 2024 20:59:05 +0000 Subject: [PATCH 72/76] Bump cryptography from 43.0.1 to 43.0.3 Bumps [cryptography](https://github.com/pyca/cryptography) from 43.0.1 to 43.0.3. - [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst) - [Commits](https://github.com/pyca/cryptography/compare/43.0.1...43.0.3) --- updated-dependencies: - dependency-name: cryptography dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- requirements/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements/requirements.txt b/requirements/requirements.txt index 9cbe930d..89c39e3c 100644 --- a/requirements/requirements.txt +++ b/requirements/requirements.txt @@ -36,7 +36,7 @@ crispy-bootstrap5==2024.10 # via # -r requirements/requirements.in # django-anvil-consortium-manager -cryptography==43.0.1 +cryptography==43.0.3 # via -r requirements/requirements.in django==4.2.16 # via From a2313e692e435e5e7f2c1951da9974a289ffa871 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 7 Nov 2024 20:59:07 +0000 Subject: [PATCH 73/76] Bump whitenoise from 6.7.0 to 6.8.2 Bumps [whitenoise](https://github.com/evansd/whitenoise) from 6.7.0 to 6.8.2. - [Changelog](https://github.com/evansd/whitenoise/blob/main/docs/changelog.rst) - [Commits](https://github.com/evansd/whitenoise/compare/6.7.0...6.8.2) --- updated-dependencies: - dependency-name: whitenoise dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- requirements/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements/requirements.txt b/requirements/requirements.txt index 9cbe930d..788cac75 100644 --- a/requirements/requirements.txt +++ b/requirements/requirements.txt @@ -203,7 +203,7 @@ urllib3==2.2.2 # via requests wheel==0.42.0 # via pip-tools -whitenoise==6.7.0 +whitenoise==6.8.2 # via -r requirements/requirements.in # The following packages are considered to be unsafe in a requirements file: From 3dbd0e8375b542cbf663d0e0d30891c8fc5963a0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 7 Nov 2024 20:59:08 +0000 Subject: [PATCH 74/76] Bump django-allauth from 65.0.2 to 65.1.0 Bumps [django-allauth](https://github.com/sponsors/pennersr) from 65.0.2 to 65.1.0. - [Commits](https://github.com/sponsors/pennersr/commits) --- updated-dependencies: - dependency-name: django-allauth dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- requirements/requirements.txt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/requirements/requirements.txt b/requirements/requirements.txt index 9cbe930d..6b16f058 100644 --- a/requirements/requirements.txt +++ b/requirements/requirements.txt @@ -8,9 +8,10 @@ argon2-cffi==23.1.0 # via -r requirements/requirements.in argon2-cffi-bindings==21.2.0 # via argon2-cffi -asgiref==3.7.2 +asgiref==3.8.1 # via # django + # django-allauth # django-htmx attrs==23.2.0 # via @@ -54,7 +55,7 @@ django==4.2.16 # django-picklefield # django-simple-history # django-tables2 -django-allauth==65.0.2 +django-allauth==65.1.0 # via -r requirements/requirements.in django-anvil-consortium-manager @ git+https://github.com/UW-GAC/django-anvil-consortium-manager.git@v0.25 # via -r requirements/requirements.in From d422f108dcbc1db6c6fa39fa1867e5eb679f19f0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 7 Nov 2024 20:59:23 +0000 Subject: [PATCH 75/76] Bump django-constance from 4.1.2 to 4.1.3 Bumps [django-constance](https://github.com/jazzband/django-constance) from 4.1.2 to 4.1.3. - [Release notes](https://github.com/jazzband/django-constance/releases) - [Changelog](https://github.com/jazzband/django-constance/blob/master/docs/changes.rst) - [Commits](https://github.com/jazzband/django-constance/compare/4.1.2...4.1.3) --- updated-dependencies: - dependency-name: django-constance dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- requirements/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements/requirements.txt b/requirements/requirements.txt index 9cbe930d..fbb7b32b 100644 --- a/requirements/requirements.txt +++ b/requirements/requirements.txt @@ -60,7 +60,7 @@ django-anvil-consortium-manager @ git+https://github.com/UW-GAC/django-anvil-con # via -r requirements/requirements.in django-autocomplete-light==3.11.0 # via django-anvil-consortium-manager -django-constance==4.1.2 +django-constance==4.1.3 # via -r requirements/requirements.in django-crispy-forms==2.3 # via From e25252a9a483e488a8b7c1c1464d3495243f9107 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 7 Nov 2024 21:15:02 +0000 Subject: [PATCH 76/76] Compile requirements files --- requirements/dev-requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements/dev-requirements.txt b/requirements/dev-requirements.txt index 767685cf..e5ad9ad2 100644 --- a/requirements/dev-requirements.txt +++ b/requirements/dev-requirements.txt @@ -10,7 +10,7 @@ anyio==4.4.0 # via # starlette # watchfiles -asgiref==3.7.2 +asgiref==3.8.1 # via # -c requirements/requirements.txt # django