GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - python/psrt-ghsa-bot: Bot which adds the PSRT GitHub team and CVE IDs to GitHub Security Advisories

BranchesTags
Open more actions menu

Latest commit

 

History

55 Commits
55 Commits

Folders and files

NameName
Last commit message
Last commit date
.github
.github
 
 
src/psrt_ghsa_bot
src/psrt_ghsa_bot
 
 
tests
tests
 
 
.env.example
.env.example
 
 
.gitignore
.gitignore
 
 
.pre-commit-config.yaml
.pre-commit-config.yaml
 
 
.python-version
.python-version
 
 
LICENSE
LICENSE
 
 
Makefile
Makefile
 
 
README.md
README.md
 
 
pyproject.toml
pyproject.toml
 
 
uv.lock
uv.lock
 
 

Repository files navigation

PSRT GHSA Bot

PSRT GHSA Bot is a GitHub App that automates the Python Security Response Team (PSRT)'s handling of GitHub Security Advisories. It runs hourly (or by manual dispatch) and does housekeeping on every advisory.

  • For newly accepted advisories, it reserves a CVE ID, creates a private fork, and adds the PSRT team as collaborators.
  • For accepted advisories, if the associated CVE has been published with a patch, it closes the advisory.

It only processes installations owned by the account named in the GH_REQUIRED_ORG environment variable; installations under any other user are skipped. For that account it processes every repository the GitHub App is installed on. The process is identical across repositories except that CVE IDs are only reserved for repositories listed in the CVE_ENABLED_REPOS environment variable.

flowchart TD
    Start([Hourly cron or manual dispatch]):::entry --> Advs[For each repository security advisory]:::loop
    Advs --> S{"Advisory state?"}:::decision

    S -- Closed --> Skip([Skip advisory]):::terminal
    S -- Triage --> Collab
    S -- Draft --> Fork

    Fork{"No private fork?"}:::decision
    Fork -- yes --> MkFork[Create private fork]:::write --> CveId
    Fork -- no --> CveId

    CveId{"CVE ID assigned?"}:::decision
    CveId -- yes --> CveDone
    CveId -- no --> Reserve[Reserve a CVE ID]:::write --> Collab

    CveDone{"CVE published with patch?"}:::decision
    CveDone -- yes --> Close[Close advisory]:::write --> Collab
    CveDone -- no --> Collab

    Collab{"PSRT missing as collaborators?"}:::decision
    Collab -- yes --> AddCollab[Add PSRT as collaborators]:::write --> Credits
    Collab -- no --> Credits

    Credits[For each user associated with a pull request]:::loop --> CheckCredit
    CheckCredit{"User credited on advisory?"}:::decision
    CheckCredit -- yes --> Update
    CheckCredit -- no --> AddCredit[Add user to advisory credits]:::write --> Update

    Update[Update advisory]:::terminal

classDef entry stroke:#0C0,stroke-width:2px;
classDef loop stroke:#00C;
classDef decision stroke:#CC0;
classDef write stroke:#C0C;
classDef terminal stroke:#0C0;
Loading

About

Bot which adds the PSRT GitHub team and CVE IDs to GitHub Security Advisories

Resources

Readme
License

Code of conduct

Code of conduct

Security policy

Security policy
Activity
Custom properties

Stars

7 stars

Watchers

5 watching

Forks

4 forks
Report repository

Releases

Sponsor this project

Packages

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.