Category :
DevOps Projects
Project Dates :
2025-05-12 - 2025-05-12

πŸ” Password Checkup

This GitHub Action automates password security reviews by scanning an Excel file for upcoming password review dates and old passwords that haven’t been updated in a while. It sends a styled HTML email summary to configured recipients every 24 hours ( 10:00 AM Romanian Hour ).


Table of Contents

  1. Features
  2. Project Structure
  3. Screenshots
  4. Setup Instructions
  5. GitHub Secrets Required
  6. SMTP Configuration
  7. Automation Schedule
  8. Email Preview
  9. Technologies Used

πŸ“‹ Features

  • βœ… Automatically checks an Excel file daily ( data/data.xlsx )
  • βœ… Categorizes passwords:
    • Due within 1 day
    • Due within 3 days
    • Due within 1 week
    • Old passwords that haven’t been updated in over 6 months
  • βœ… Sends a beautiful HTML email with all matching entries
  • βœ… Built with GitHub Actions, Python, and open-source tools

πŸ“ Project Structure

.
β”œβ”€β”€ .github/workflows/
β”‚   └── reminder.yml             # GitHub Action: daily trigger
β”œβ”€β”€ assets/
β”‚   └── email_preview.gif         # An example of the email you’ll receive
β”‚   └── github_action_run.png     # How it looks when the GitHub Action triggers
β”‚   └── excel_data_preview.png     # How data looks
β”œβ”€β”€ config/
β”‚   └── email_recipients.yaml     # Email list
β”œβ”€β”€ data/
β”‚   └── data.xlsx                 # Main Excel file with password info
β”œβ”€β”€ scripts/
β”‚   └── send_email.py             # Main script that sends the email
β”œβ”€β”€ requirements.txt              # Python dependencies
└── README.md                     # This file that you are reading right now

πŸ–ΌοΈ Screenshots

πŸ“¬ Email Preview

Here’s an example of the email you’ll receive: Email preview

βš™οΈ GitHub Action Run

This is how it looks when the GitHub Action triggers: GitHub Action run

βš™οΈ Excel Data Preview

This is how data in excel looks: Data Excel Preview


βš™οΈ Setup Instructions

Reach out to Github Repo for Setup Instructions, link below:

Github Repo - https://github.com/axbecher/PasswordCheckup


πŸ” GitHub Secrets Required

Go to Settings > Secrets and variables > Actions and add:

Name Description
EMAIL_USER The email used to send notifications (e.g., system@domain.com)
EMAIL_PASSWORD The SMTP password or app password for that email address

πŸ“‘ SMTP Configuration

This project allows you to configure the SMTP host.

Go to scripts/send_email.py and update:

Name Description
%SMTP_HOST% SMTP server hostname (e.g., mail.domain.com, smtp.gmail.com)

πŸ” Automation Schedule

This project is set up to allow manual triggering by default via the "Run workflow" button in GitHub Actions.

If you'd like the workflow to run automatically every 24 hours at 08:00 UTC, you need to:

  1. Open the file: /.github/workflows/reminder.yml
  2. Uncomment the schedule section:
on:
  schedule:
    - cron: '0 8 * * *'  # runs daily at 08:00 UTC
  workflow_dispatch:

πŸ’Œ Email Preview

The email contains:

  • Summary per time frame (1 day, 3 days, 1 week, old passwords ( 90 days / 3 months ))
  • Clean table format
  • Footer with a link to LastPass Vault

βœ… Technologies Used

  • Python 3.11
  • Pandas
  • openpyxl
  • GitHub Actions
  • SMTP