Skip to content
@Brown-University-Library

Brown University Library

Hello! We're cleaning up the BUL GitHub as best we can, and revoking access to repositories for folks who no longer work here or otherwise shouldn't have access. If we've made a mistake and removed you from a repository you should have access to, please get in touch and we'll get it sorted out.

Brown University Library GitHub Best Practices

Security

Main security message:

Never Commit Sensitive Information — even if the repository is private.

How to reliably do this?

Keep private things out of the github code directory

  • Keep out of code, and the github code directory:

    • passwords
    • API keys
    • server paths
    • database-structure info (where reasonably possible)
    • private settings
    • shell-scripts that set environmental variables
    • log-files (which can sometimes contain sensitive info)
  • Implementation: One common pattern is to have a "project_outer_directory" that contains these things (as well as the "project_code_directory"), and only commit the "project_code_directory" to github.

  • Utilize environment variables: Store sensitive information in environment variables, set outside of the git-directory and thus not able to be accidentally committed. All languages support common ways of doing this.

  • Do not depend on the .gitignore file for security: Rather, get in the habit of thinking of the .gitignore file as keeping messy-unnecessary-cruft out of github (like auto-compiled *.pyc files), not as basic security. Instead, keep the sensitive info out of the github directory in the first place.

Other recommended GitHub practices...

  • Include a README, preferably with an explanation of the repo's Purpose, Usage, and Installation
  • Make it clear which team at BUL "owns" the repo
  • Add a "Description"
  • Include "dependencies" in such a way that github can auto-scan them and notify you of vulnerabilities
  • If you have a dotenv with private info — as noted above it should not be in the repo — but it's useful to have a sample_dotenv.txt file for users to get a sense of what kind of info is required.
  • the main branch is special: it should always work.
  • There should be a "release" for every version of the code actually deployed. (That makes it easier to know which commit to revert back to if there's a problem.)

See also:

This document is a draft & will be undergoing revisions.

Pinned Loading

  1. geodata geodata Public

    Project and open data repo for GeoData@SciLi

    1 1

  2. bdr_api_documentation bdr_api_documentation Public

    Jupyter Notebook 1

  3. bdr-api-tools bdr-api-tools Public

    Scripts for working with the BDR API.

    Python

  4. django_template_52_project django_template_52_project Public

    Template for new Django projects, full of good-practices -- to get up-and-running easily.

    Python

Repositories

Showing 10 of 274 repositories
  • Brown-University-Library/vivo-on-django's past year of commit activity
    Python 0 0 1 0 Updated Oct 20, 2026
  • Brown-University-Library/usep_indexer_project's past year of commit activity
    Python 0 0 0 1 Updated Oct 19, 2026
  • usep-data Public

    inscriptions and related data files for 'http://library.brown.edu/projects/usep/'

    Brown-University-Library/usep-data's past year of commit activity
    XSLT 2 28 46 1 Updated Oct 18, 2026
  • the_history_of_firearms_in_stamps_jekyll Public

    A digital exhibit made with Jekyll about US stamps that feature firearms

    Brown-University-Library/the_history_of_firearms_in_stamps_jekyll's past year of commit activity
    HTML 0 0 0 0 Updated Oct 7, 2026
  • Brown-University-Library/alt_text_plus_project's past year of commit activity
    HTML 0 0 0 1 Updated Oct 7, 2026
  • sr_input_form Public

    Input form for Stolen Relations data

    Brown-University-Library/sr_input_form's past year of commit activity
    Python 2 MIT 3 31 9 Updated Oct 6, 2026
  • fake_project_for_git_testing Public

    A repo for playing with git and GitHub usage and workflow

    Brown-University-Library/fake_project_for_git_testing's past year of commit activity
    HTML 0 1 6 2 Updated Oct 1, 2026
  • bdr-api-tools Public

    Scripts for working with the BDR API.

    Brown-University-Library/bdr-api-tools's past year of commit activity
    Python 0 0 0 0 Updated Sep 30, 2026
  • bdr_indexer Public
    Brown-University-Library/bdr_indexer's past year of commit activity
    Python 0 MIT 0 0 5 Updated Sep 29, 2026
  • nq-proto Public
    Brown-University-Library/nq-proto's past year of commit activity
    JavaScript 0 0 0 0 Updated Sep 29, 2026