<commit_before>TODO

* implement object tags?
* filters should accept regular expressions
* improve on sudo error handling (detect when we can't sudo)
* detect username on system for when we don't have a username

* decorate AWS accounts with the profile name used to reach them if
  three are no aliases
* decorate AWS Iam accounts with the account alias of the AWS account
* decorate AWS instances with the AWS account to which they belong

* remove should remove changes as well

* Create github release process
* compute AWS format fingerprints of private keys

* fetch -v should show the accounts/keys it creates

* deal with "Failed to parse key" error message

* improve SSH root handling to avoid creating so many connections

* implement "recursive connect" for AWS (i.e. SSH to all of the
  instances with public DNSes)
  - How do we determine login account name?
  - Should we check the current ssh-agent to see if it has the key
  loaded or if the key is otherwise available?
  
* implement "recursive connect" for AWS credentials file
* remove accounts for instances that have been terminated during AWS fetch

* can we somehow detect gitolite so we don't do the usual thing with
  those keys?

* handle pkcs8 format public keys?  ssh-keygen -f <key> -y -e -m PKCS8

* record hostname when recording key name by path.  Should we record
  the entire path?

* should comment and names share the same namespace?

* Move SSH fetch to pure golang implementation (must work with OpenSSH agent)
* Make SSH fetch work with PLINK on Windows
* document commands

* more complicated filters
* handle key options in bindings
* mirror terraform's plan/apply for changes
* remove keys from accounts via connections
* replace a key wherever it is
* deprecate a key wherever it is
* Do something with key aging

* Rotate SSH key in AWS

* import SSH keys from gitlab
* replace SSH keys in gitlab

* import SSH keys from github
* replace SSH keys in github

* import SSH keys from GCP
* replace SSH keys in GCP

* import SSH keys from DO
* replace SSH keys in DO

* generate AWS key for a given user
* remove given AWS key
* rotate given AWS key

* change key comment everywhere???

* Handle AWS accounts (not keys)???
* AWS key age/expiration
* parse the private key to generate the #$%#$%!@#$ Amazon fingerprint crap.  Must handle encrypted private keys.  Amazon has destroyed more productivity with this stupid decision than should be tolerated.

* parse multiple keys from a local file (e.g. known hosts)

MAYBE

* "find" things by filtering on not top level


DONE
* remove a key/connection/account/whatever
* AWS iterate over all regions
* verbose listing which shows keys for account (and accounts for key?)
* record flie name as key 'Name'
* record AWS name as key 'Name'
* display key names on listing
* display keys by account
* display accounts by key
* Import SSH keys from AWS
* import AWS keys from file
* report on instances using SSH key (can we build ssh access URLs?)
* import AWS keys from AWS account
* test on MacOS
* allow specification of different key repo location
* Do some scale testing
* make an SSH key placeholder with just a fingerprint (Note:  how do we handle changing IDs when we finally discover a public key for it?)
* be able to handle key references with no public key (e.g. when  Amazon has a key fingerprint we don't recognize)
* make IAM accounts use ARN or alias
* implement "recursive connect" for SSH (i.e. sudo)
* Add a docker build file
* automatically try sudo when we're 'root' or 'ubuntu' or 'ec2-user'
* Grab AWS keys from AWS, relate to user accounts
* Record AWS account ID# and alias
* Don't record accounts for which we have no keys (?)
* Fix the !@#$%# AWS Fingerprints!<commit_msg>Update todo<commit_after>TODO

* implement object tags?
* filters should accept regular expressions
* improve on sudo error handling (detect when we can't sudo)

* decorate AWS accounts with the profile name used to reach them if
  three are no aliases
* decorate AWS Iam accounts with the account alias of the AWS account
* decorate AWS instances with the AWS account to which they belong

* remove should remove changes as well

* Create github release process
* compute AWS format fingerprints of private keys

* fetch -v should show the accounts/keys it creates

* deal with "Failed to parse key" error message

* improve SSH root handling to avoid creating so many connections

* implement "recursive connect" for AWS (i.e. SSH to all of the
  instances with public DNSes)
  - How do we determine login account name?
  - Should we check the current ssh-agent to see if it has the key
  loaded or if the key is otherwise available?
  
* implement "recursive connect" for AWS credentials file
* remove accounts for instances that have been terminated during AWS fetch

* can we somehow detect gitolite so we don't do the usual thing with
  those keys?

* handle pkcs8 format public keys?  ssh-keygen -f <key> -y -e -m PKCS8

* record hostname when recording key name by path.  Should we record
  the entire path?

* should comment and names share the same namespace?

* Move SSH fetch to pure golang implementation (must work with OpenSSH agent)
* Make SSH fetch work with PLINK on Windows
* document commands

* more complicated filters
* handle key options in bindings
* mirror terraform's plan/apply for changes
* remove keys from accounts via connections
* replace a key wherever it is
* deprecate a key wherever it is
* Do something with key aging

* Rotate SSH key in AWS

* import SSH keys from gitlab
* replace SSH keys in gitlab

* import SSH keys from github
* replace SSH keys in github

* import SSH keys from GCP
* replace SSH keys in GCP

* import SSH keys from DO
* replace SSH keys in DO

* generate AWS key for a given user
* remove given AWS key
* rotate given AWS key

* change key comment everywhere???

* Handle AWS accounts (not keys)???
* AWS key age/expiration
* parse the private key to generate the #$%#$%!@#$ Amazon fingerprint crap.  Must handle encrypted private keys.  Amazon has destroyed more productivity with this stupid decision than should be tolerated.

* parse multiple keys from a local file (e.g. known hosts)

MAYBE

* "find" things by filtering on not top level


DONE
* remove a key/connection/account/whatever
* AWS iterate over all regions
* verbose listing which shows keys for account (and accounts for key?)
* record flie name as key 'Name'
* record AWS name as key 'Name'
* display key names on listing
* display keys by account
* display accounts by key
* Import SSH keys from AWS
* import AWS keys from file
* report on instances using SSH key (can we build ssh access URLs?)
* import AWS keys from AWS account
* test on MacOS
* allow specification of different key repo location
* Do some scale testing
* make an SSH key placeholder with just a fingerprint (Note:  how do we handle changing IDs when we finally discover a public key for it?)
* be able to handle key references with no public key (e.g. when  Amazon has a key fingerprint we don't recognize)
* make IAM accounts use ARN or alias
* implement "recursive connect" for SSH (i.e. sudo)
* Add a docker build file
* automatically try sudo when we're 'root' or 'ubuntu' or 'ec2-user'
* Grab AWS keys from AWS, relate to user accounts
* Record AWS account ID# and alias
* Don't record accounts for which we have no keys (?)
* Fix the !@#$%# AWS Fingerprints!
* detect username on system for when we don't have a username
{'fraction_non_alphanumeric': 0.05144694533762058, 'fraction_numerical': 0.0008038585209003215, 'mean_word_length': 4.016801075268817, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6084918', 'n_tokens_mistral': 2032, 'n_tokens_neox': 1913, 'n_words': 1176}