-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Migrate to GitHub Native Dependabot #917
Conversation
…yk, remove snyk from packages installed for the frontend
dependencies: | ||
"@types/graphlib" "^2" | ||
|
||
"@snyk/cocoapods-lockfile-parser@3.6.2": |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Snyk was installing a ton of packages we didn't actually need. Dependabot can now handle all of this within Github natively without needing to affect our dev dependencies - this may help speed up local builds as an added bonus.
@@ -44,7 +44,6 @@ | |||
"test": "react-scripts test", | |||
"test:cov": "react-scripts test --coverage --watchAll", | |||
"test:ci": "CI=1 react-scripts test --coverage", | |||
"snyk": "snyk test", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This was only used for running snyk checks locally if needed.
@@ -1,69 +0,0 @@ | |||
# Snyk (https://snyk.io) policy file, patches or ignores known vulnerabilities. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These ignores are all expired even if we choose to continue using Snyk on a different organization instead of accepting this PR's changes.
@@ -1,53 +0,0 @@ | |||
-i https://pypi.org/simple |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Dependabot can manage Python dependencies using the Pipfile
so we no longer need to maintain this file. (It's out of date anyway - note this closed vulnerability, in our Pipfile.lock version 3.3.2 of cryptography is currently in use)
## Dependabot Security Analysis | ||
|
||
Dependabot status badges have not yet been updated to work with GitHub Native Dependabot per [this open issue](https://github.com/dependabot/dependabot-core/issues/1912). In lieu of these badges links are provided to the Dependabot alerts page on raft-tech and the Security Advisories page on HHS. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just want to point this out - the badges aren't currently working correctly for GitHub Native Dependabot so they were not used in this PR.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, dropping Snyk was long overdue in my opinion.
Co-authored-by: Alex P. <63075587+ADPennington@users.noreply.github.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍🏾 👍🏾 confirming that dependabot alerts disabled in hhs repo. given that there is a snyk upgrade ready to merge (#886) , let's hold off on the merge to test if merging this one first will detect the need for dependency upgrade.
ACs:
- Project dependencies can be automatically kept up to date.
- Security vulnerabilities in project dependencies can be automatically resolved.
- All relevant documentation is updated to reflect this change.
Code changes:
- If this PR introduces backend code, is that code documented both inline and overall?
- If this PR introduces frontend code, is that code documented both inline and overall?
Security:
- Does the OWASP Scan pass on CircleCI?
- Do manual code review and manual testing detect any security issues?
Summary of Changes
Currently our Snyk configuration is configured on the
carltonsmith
Snyk organization which will no longer work after @carltonsmith leaves the project. Additionally, these Snyk PRs require us to manage an unnecessaryrequirements.txt
file in addition to our Pipfile and python dependency update PRs are not complete when they get opened since they don't update anything in our actual dependencies. Example Snyk Python Dependency PRAdditionally, we currently use the Dependabot Preview app which is being deprecated in favor of a GitHub Native Dependabot which has more features and is configured via a YAML file committed to the repo.
Rather than setting up Snyk on a new organization and in order to get ahead on the impending Dependabot migration this PR proposes an update which provides the necessary YAML config to enable the new GitHub Native version of Dependabot. The new version is capable of providing both dependency version upgrades as well as security upgrades in response to vulnerabilities, which covers the functionality provided by both Snyk and Dependabot Preview.
NOTE: We may want to explicitly disable automated PR updates on the HHS repo if it is not already, otherwise once this file gets merged in we will get Dependabot PRs to both repos, which would conflict with our git flow as they would be opened on divergent branches. This can be disabled in the security analysis settings as shown below:
How to Test
Unfortunately due to the way Dependabot works we can't fully test this until it gets merged. On merge to raft-tdp-main a scan should begin immediately and the status checks should update shortly thereafter in the Dependency Graph
We can however, run the proposed YAML file against the Dependabot provided validator here as shown below:
Deliverable 1: Accepted Features
As facilitator/product manager, @kniz-raft will decide if ACs are met from Raft's perspective.
Deliverable 2: Tested Code
N/A changes relate only to dependency and vulnerability management
Deliverable 3: Properly Styled Code
N/A changes relate only to dependency and vulnerability management
Deliverable 4: Accessible
N/A no UX changes
Deliverable 5: Deployed
N/A changes relate only to dependency and vulnerability management
Deliverable 6: Documented
Deliverable 7: Secure