Compare commits

..

28 Commits

Author SHA1 Message Date
ccostino
69c8bbc6b7 Merge pull request #2615 from GSA/poetry
upgrade poetry to 2.1.3
2025-05-30 11:50:27 -04:00
Carlo Costino
6a606a467e Update bootstrap-with-git-hooks command
Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2025-05-30 11:06:45 -04:00
ccostino
3d44e76383 Update .github/workflows/checks.yml
Removing extraneous vulnerability ignore config.
2025-05-30 10:57:24 -04:00
Kenneth Kehl
038f4e294a merge from main 2025-05-29 14:46:02 -07:00
Beverly Nguyen
9aa7138902 Merge pull request #2621 from GSA/2562-search-name-and-email-within-team-settings
Improving the UX on the team members page
2025-05-29 14:01:36 -07:00
Beverly Nguyen
86cd481786 Merge pull request #2625 from GSA/ui_issue
fix ui spacing
2025-05-29 14:00:54 -07:00
Beverly Nguyen
b3e09219a8 fix test 2025-05-29 13:02:48 -07:00
Beverly Nguyen
31293557ef -Previously, the template would show nothing if a user didn't have a name set. Now it falls back to displaying the email address.
-Added padding-x-2 class to the "Change details"
2025-05-29 12:17:59 -07:00
Kenneth Kehl
3fe74bea54 add exclusion 2025-05-29 11:25:01 -07:00
Kenneth Kehl
6aa84305f6 code review feedback 2025-05-29 11:19:22 -07:00
Kenneth Kehl
06f0eaa3c7 change to padding class 2025-05-29 10:38:37 -07:00
Beverly Nguyen
5c927d009b Merge branch 'main' into 2562-search-name-and-email-within-team-settings 2025-05-29 09:51:59 -07:00
Alex Janousek
bbd19bb513 Merge pull request #2624 from GSA/dependabot/pip/phonenumbers-9.0.6
Bump phonenumbers from 9.0.5 to 9.0.6
2025-05-29 12:36:33 -04:00
Kenneth Kehl
8b2139727e add README comments about poetry upgrades 2025-05-29 08:49:38 -07:00
Kenneth Kehl
e95740b52b fix ui spacing 2025-05-29 07:14:32 -07:00
dependabot[bot]
bb90f81571 Bump phonenumbers from 9.0.5 to 9.0.6
Bumps [phonenumbers](https://github.com/daviddrysdale/python-phonenumbers) from 9.0.5 to 9.0.6.
- [Commits](https://github.com/daviddrysdale/python-phonenumbers/compare/v9.0.5...v9.0.6)

---
updated-dependencies:
- dependency-name: phonenumbers
  dependency-version: 9.0.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-29 09:44:21 +00:00
Alex Janousek
45ce6d8e8e Merge pull request #2623 from GSA/dependabot/pip/redis-6.2.0
Bump redis from 6.1.0 to 6.2.0
2025-05-29 05:42:18 -04:00
Beverly Nguyen
f824549e18 Merge pull request #2622 from GSA/ignore-redis-false-report
Updated pip-audit ignore-vulns
2025-05-28 17:49:19 -07:00
dependabot[bot]
dabba6b696 Bump redis from 6.1.0 to 6.2.0
Bumps [redis](https://github.com/redis/redis-py) from 6.1.0 to 6.2.0.
- [Release notes](https://github.com/redis/redis-py/releases)
- [Changelog](https://github.com/redis/redis-py/blob/master/CHANGES)
- [Commits](https://github.com/redis/redis-py/compare/v6.1.0...v6.2.0)

---
updated-dependencies:
- dependency-name: redis
  dependency-version: 6.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-28 23:53:56 +00:00
Carlo Costino
ba0daeaf76 Updated pip-audit ignore-vulns
This changeset updates the PYSEC notices to ignore to due versions that either cannot be fixed or are false positives.  Specifically, this changeset removes previously ignored vulnerability reports and adds PYSEC-2023-312 to the list because it is a false positive and refers to Redis itself, not the Python Redis client (see https://github.com/pypa/advisory-database/issues/237 for details).

Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2025-05-28 17:37:04 -04:00
Beverly Nguyen
9bd81fa314 Removed margin 2025-05-28 12:02:24 -07:00
Beverly Nguyen
f5690c3384 Added a "No results found" 2025-05-28 11:59:54 -07:00
Kenneth Kehl
665d7b543b upgrade poetry to 2.1.3 2025-05-27 12:44:28 -07:00
Kenneth Kehl
7ba4f3658e upgrade poetry to 2.1.3 2025-05-27 12:32:54 -07:00
Kenneth Kehl
0afc93958c upgrade poetry to 2.1.3 2025-05-27 12:25:52 -07:00
Kenneth Kehl
d27bc213d4 upgrade poetry to 2.1.3 2025-05-27 12:00:46 -07:00
Kenneth Kehl
589c01ed75 upgrade poetry to 2.1.3 2025-05-27 11:41:33 -07:00
Kenneth Kehl
29db4dcf4d upgrade poetry to 2.1.3 2025-05-27 11:34:11 -07:00
13 changed files with 59 additions and 28 deletions

View File

@@ -15,7 +15,10 @@ runs:
python-version: "3.12.3"
- name: Install poetry
shell: bash
run: pip install poetry==1.8.5
run: pip install poetry==2.1.3
- name: Install poetry export plugin
shell: bash
run: poetry self add poetry-plugin-export
- name: Downgrade virtualenv to compatible version
shell: bash
run: pip install "virtualenv<20.30"

View File

@@ -139,13 +139,12 @@ jobs:
- uses: actions/checkout@v4
- uses: ./.github/actions/setup-project
- name: Create requirements.txt
run: poetry export --without-hashes --format=requirements.txt > requirements.txt
run: poetry export --output requirements.txt
- uses: pypa/gh-action-pip-audit@v1.1.0
with:
inputs: requirements.txt
ignore-vulns: |
PYSEC-2024-60
PYSEC-2022-43162
PYSEC-2023-312
- name: Run npm audit
run: make npm-audit

View File

@@ -25,10 +25,12 @@ jobs:
- uses: actions/checkout@v4
- uses: ./.github/actions/setup-project
- name: Create requirements.txt
run: poetry export --without-hashes --format=requirements.txt > requirements.txt
run: poetry export --output requirements.txt
- uses: pypa/gh-action-pip-audit@v1.1.0
with:
inputs: requirements.txt
ignore-vulns: |
PYSEC-2023-312
- name: Run npm audit
run: make npm-audit

View File

@@ -42,7 +42,7 @@ jobs:
- uses: ./.github/actions/setup-project
- name: Create requirements.txt
run: poetry export --without-hashes --format=requirements.txt > requirements.txt
run: poetry export --output requirements.txt
- name: Deploy to cloud.gov
uses: cloud-gov/cg-cli-tools@main

View File

@@ -42,7 +42,7 @@ jobs:
- uses: ./.github/actions/setup-project
- name: Create requirements.txt
run: poetry export --without-hashes --format=requirements.txt > requirements.txt
run: poetry export --output requirements.txt
- name: Deploy to cloud.gov
uses: cloud-gov/cg-cli-tools@main

View File

@@ -47,7 +47,7 @@ jobs:
- uses: ./.github/actions/setup-project
- name: Create requirements.txt
run: poetry export --without-hashes --format=requirements.txt > requirements.txt
run: poetry export --output requirements.txt
- name: Deploy to cloud.gov

View File

@@ -17,8 +17,7 @@ NVMSH := $(shell [ -f "$(HOME)/.nvm/nvm.sh" ] && echo "$(HOME)/.nvm/nvm.sh" || e
.PHONY: bootstrap
bootstrap: ## Set up everything to run the app
make generate-version-file
poetry lock --no-update
poetry install --sync --no-root
poetry sync --no-root
poetry run playwright install --with-deps
poetry run pre-commit install
source $(NVMSH) --no-use && nvm install && npm install
@@ -28,8 +27,7 @@ bootstrap: ## Set up everything to run the app
.PHONY: bootstrap-with-git-hooks
bootstrap-with-git-hooks: ## Sets everything up and accounts for pre-existing git hooks
make generate-version-file
poetry lock --no-update
poetry install --sync --no-root
poetry sync --no-root
poetry run playwright install --with-deps
git config --global --unset-all core.hooksPath
poetry run pre-commit install
@@ -129,7 +127,7 @@ py-lock: ## Syncs dependencies and updates lock file without performing recursiv
.PHONY: freeze-requirements
freeze-requirements: ## create static requirements.txt
poetry export --without-hashes --format=requirements.txt > requirements.txt
poetry export --output requirements.txt
.PHONY: pip-audit
pip-audit:

View File

@@ -308,6 +308,22 @@ you'll be set with an upgraded version of Python.
_If you're not sure about the details of your current virtual environment, you can run `poetry env info` to get more information. If you've been using `pyenv` for everything, you can also see all available virtual environments with `pyenv virtualenvs`._
#### Poetry upgrades ####
If you are doing a new project setup, then after you install poetry you need to install the export plugin
```sh
poetry self add poetry-plugin-export
```
If you are upgrading from poetry 1.8.5, you need to do this:
```sh
curl -sSL https://install.python-poetry.org | python3 - --version 2.1.3
poetry self add poetry-export-plugin
```
#### Updating the .env file for Login.gov
To configure the application for Login.gov, you will need to update the following environment variables in the .env file:

View File

@@ -15,6 +15,7 @@
let query = normalize($searchBox.val());
let results = 0;
let $noResultsMessage = $('.js-live-search-no-results');
$targets.each(function() {
@@ -39,6 +40,12 @@
});
if (query !== '' && results === 0) {
$noResultsMessage.show();
} else {
$noResultsMessage.hide();
}
if (state === 'loaded') {
if (query !== '') {
$searchBox.attr('aria-label', $searchLabel.text().trim() + ', ' + resultsSummary(results));

View File

@@ -36,16 +36,21 @@
{% endif %}
<div class="user-list">
<div class="js-live-search-no-results" style="display: none;">
<p class="usa-body margin-0">No results found</p>
</div>
{% for user in users %}
{% if user.status != 'cancelled' %}
<div class="user-list-item width-full">
<h2 class="user-list-item-heading font-body-lg margin-y-0" title="{{ user.email_address }}">
{%- if user.name -%}
<span class="heading-small live-search-relevant">{{ user.name }}</span>
{%- else -%}
<span class="heading-small live-search-relevant">{{ user.email_address }}</span>
{%- endif -%}
</h2>
<p class="margin-top-0">
{%- if user.status == 'pending' -%}
{%- if user.status == 'pending' -%}
<span class="live-search-relevant">{{ user.email_address }}</span>
<span class="hint">(invited)</span>
{%- elif user.status == 'expired' -%}
@@ -79,7 +84,7 @@
) }}
{% endfor %}
</ul>
{% if current_service.all_template_folders %}
{% if current_service.all_template_folders %}
<p class="usa-body tick-cross-list-hint">
{% set folder_count = user.template_folders_for_service(current_service) | length %}
{% if folder_count == 0 %}
@@ -105,7 +110,7 @@
{% if current_user.has_permissions('manage_service') %}
{% if user.status == 'pending' or user.status == 'expired' %}
<a class="user-list-edit-link usa-link" href="{{ url_for('.cancel_invited_user', service_id=current_service.id, invited_user_id=user.id) }}">
<a class="user-list-edit-link usa-link padding-x-2" href="{{ url_for('.cancel_invited_user', service_id=current_service.id, invited_user_id=user.id) }}">
Cancel invitation<span class="usa-sr-only"> for {{ user.email_address }}</span>
</a>
{% endif %}
@@ -115,7 +120,7 @@
Resend invite<span class="usa-sr-only"> for {{ user.email_address }}</span>
</a>
{% elif user.is_editable_by(current_user) %}
<a class="user-list-edit-link usa-link" href="{{ url_for('.edit_user_permissions', service_id=current_service.id, user_id=user.id) }}">
<a class="user-list-edit-link usa-link padding-x-2" href="{{ url_for('.edit_user_permissions', service_id=current_service.id, user_id=user.id) }}">
Change details<span class="usa-sr-only"> for {{ user.name }} {{ user.email_address }}</span>
</a>
{% endif %}

18
poetry.lock generated
View File

@@ -2379,14 +2379,14 @@ install = ["zstandard (>=0.21.0)"]
[[package]]
name = "phonenumbers"
version = "9.0.5"
version = "9.0.6"
description = "Python version of Google's common library for parsing, formatting, storing and validating international phone numbers."
optional = false
python-versions = "*"
groups = ["main"]
files = [
{file = "phonenumbers-9.0.5-py2.py3-none-any.whl", hash = "sha256:7acef19817868a6f9cbc0d628dc5ad447b3768137e3d53c70dd6827a1ac040ba"},
{file = "phonenumbers-9.0.5.tar.gz", hash = "sha256:70fde168a92dd9c73f57872359515181d6cde6bb8e7ec5660e94c4ca45692c50"},
{file = "phonenumbers-9.0.6-py2.py3-none-any.whl", hash = "sha256:b4a0f5a0dc30235b273d06acfe9afc2160cce4f1c8220067985ed81d72bb29a9"},
{file = "phonenumbers-9.0.6.tar.gz", hash = "sha256:bfb228cfc4a5644f7c1a32ded1bd2ee6f8e3749e422fbdabd57661e86ad8872d"},
]
[[package]]
@@ -3306,18 +3306,18 @@ all = ["numpy"]
[[package]]
name = "redis"
version = "6.1.0"
version = "6.2.0"
description = "Python client for Redis database and key-value store"
optional = false
python-versions = ">=3.8"
python-versions = ">=3.9"
groups = ["main"]
files = [
{file = "redis-6.1.0-py3-none-any.whl", hash = "sha256:3b72622f3d3a89df2a6041e82acd896b0e67d9f54e9bcd906d091d23ba5219f6"},
{file = "redis-6.1.0.tar.gz", hash = "sha256:c928e267ad69d3069af28a9823a07726edf72c7e37764f43dc0123f37928c075"},
{file = "redis-6.2.0-py3-none-any.whl", hash = "sha256:c8ddf316ee0aab65f04a11229e94a64b2618451dab7a67cb2f77eb799d872d5e"},
{file = "redis-6.2.0.tar.gz", hash = "sha256:e821f129b75dde6cb99dd35e5c76e8c49512a5a0d8dfdc560b2fbd44b85ca977"},
]
[package.extras]
hiredis = ["hiredis (>=3.0.0)"]
hiredis = ["hiredis (>=3.2.0)"]
jwt = ["pyjwt (>=2.9.0)"]
ocsp = ["cryptography (>=36.0.1)", "pyopenssl (>=20.0.1)", "requests (>=2.31.0)"]
@@ -4164,4 +4164,4 @@ cffi = ["cffi (>=1.11)"]
[metadata]
lock-version = "2.1"
python-versions = "^3.12.2"
content-hash = "640d7ecd2d2e1de918fdcbe1900ce68a73f28819b5f73968c0535a1590be6f09"
content-hash = "913c98fc4ee6270f0c8fff572b9aa9501d622550bdaa8cde313af78885dc7498"

View File

@@ -50,10 +50,10 @@ geojson = "^3.1.0"
jmespath = "^1.0.1"
numpy = "^2.2.6"
ordered-set = "^4.1.0"
phonenumbers = "^9.0.5"
phonenumbers = "^9.0.6"
pycparser = "^2.22"
python-json-logger = "^3.3.0"
redis = "^6.1.0"
redis = "^6.2.0"
regex = "^2024.11.6"
s3transfer = "^0.10.2"
shapely = "^2.1.1"

View File

@@ -1239,6 +1239,7 @@ def test_cancel_invited_user_doesnt_work_if_user_not_invited_to_this_service(
(
"pending",
(
"invited_user@test.gsa.gov "
"invited_user@test.gsa.gov (invited) "
"Permissions "
"Can See dashboard "