It does however come with this risk, that they let data, or Jupyter notebook output or etc. get committed.
I'm not saying what happened here is excusable -- it's not, it's ridiculously bad. But I can see a few ways how it'd happen.
To me the equal or better question is why does this person have PII in the first place? It's not necessary to do analysis. Someone should have masked or removed it before this person ever got their hands on it. There's no way a PII dataset is needed for training.
Or at all. This is actually a fairly common problem among certain types of research scientists who think software engineering is "peasant work".
I remember a friend of mine working at a research organization where several researchers lost months of work due to an unscheduled server reboot. Turns out when you log into ephemeral containers and pretend they are VMs, things go poof.
As horrible as the robbery was, I was screaming inside "WHAT ABOUT VERSION CONTROL?!??!"
For many people technology really is magic.
If he doesn’t come from a programming background version can seem foreign.
But like ya know… Dropbox. I’d be more concerned with my hard drive corrupting than anything else
I think they might still be deadlocked to this day.
Docker offers persistent volumes, so my 30 second solution would be that
... that's also a short path to dropping a user's PII in the clear.
Is github the most accessible? It is the most popular and best for discovery but a discussion around if gitlabs or bitbucket being more accessible could be had.
You make that sound like it's generically a bad thing. Having the data you used and tested with is good in many ways. Having it in the same git branch and repo as everything else is suboptimal but usually a lot better than not safekeeping it at all.
You should not be using real data with PII for training exersizes.
Hopefully that's what they mean by:
> We are additionally putting in place more protocols and access controls to avoid any possible future data exposure and limiting access for employee training use.
They screwed up by allowing that. The employee screwed up by committing it to git and then pushing to a public repo.
The employee wouldn't have been able to do that if they'd enforced using fake customer data for testing/training.
This isn't to excuse Adafruit; it's to remind everyone that the hot young startup you just signed up for is probably keeping your signup information in a mysql database that everyone in the company has access to right now with a plaintext password thumb-tacked to the one office wall they have.
When a stranger has their laptop stolen on a bus, who knows what data was on it. Fingers crossed most people have FileVault turned on these days.
Unless it is a HIPAA-compliant startup. Then scrubbing PII is priority number 1.
i know they exist. i just havent, personally, had that experience, thankfully.
But it's a bad idea to put PII on github which is apparently what happened.
As for the individual repos, here's the procedure:
cd <repo>
rm -rf .git/ # DON'T TRY THIS AT HOME unless you know what you're doing.
git add .
git commit -m "Brand new repo"
Do not do the above unless you completely understand the ramifications. But those ramifications might be precisely the ones you want for legal compliance.There are various tools to properly filter history, e.g. `git-filter-repo`, but the short answer is as the grandparent commenter said, things get hairy, you need to rewrite history and coordinate. It's not a situation you should hope to get yourself into...