Commit Graph

37 Commits

Author SHA1 Message Date
hikari ec58c9c843 feat: reorganise bash scripts and add comprehensive documentation (#6)
CI / dependency-pin-check-typescript (push) Successful in 5s
CI / dependency-pin-check-python (push) Successful in 4s
CI / python (push) Successful in 9m28s
CI / typescript (push) Successful in 9m42s
Security Scan and Upload / Security & DefectDojo Upload (push) Successful in 1m39s
## Summary

This PR completes the bash script restructuring and adds comprehensive documentation across all script categories.

### Bash Restructuring

- Moved cohort shell scripts (`remove_github_members.sh`, `update_github_teams.sh`) from `python/cohort/` into a new `bash/cohort/` directory
- Moved existing bash utilities (`add-keys-to-git.sh`, `fix-yubikey-perms.sh`, `list-yubikey-ssh-keys.sh`) into a new `bash/yubikey/` subdirectory
- Updated `run.sh` to support **Bash** as a third language option alongside TypeScript and Python
  - Bash scripts are run directly (no 1Password secret injection needed)
  - Category discovery and script listing works the same as for TS/Python
  - Removed dead "Root Scripts" logic that was no longer needed

### Documentation

Added `README.md` files for all script categories that were missing them:

- `bash/cohort/README.md` — cohort GitHub team management scripts
- `bash/yubikey/README.md` — YubiKey SSH key and permission utilities
- `typescript/src/crowdin/README.md` — Crowdin translation management scripts
- `typescript/src/discord/README.md` — Discord bot utility scripts
- `typescript/src/discourse/README.md` — Discourse forum management scripts
- `typescript/src/gitea/README.md` — Gitea bulk repository operation scripts
- `typescript/src/github/README.md` — GitHub API interaction scripts
- `typescript/src/music/README.md` — Music file metadata tools
- `typescript/src/s3/README.md` — S3-compatible object storage scripts
- `typescript/src/security/README.md` — Security analysis and reporting scripts
- `python/cohort/README.md` — Updated to remove moved shell scripts, fix usage commands

Also updated project-level docs:

- **`README.md`** — Corrected project structure, fixed running instructions (removed references to non-existent `make run-ts`/`make run-py` targets), added Bash prerequisites
- **`CLAUDE.md`** — Updated project overview, structure, development standards, and script-adding guides to reflect the current state of the project

 This PR was created with help from Hikari~ 🌸

Co-authored-by: Naomi Carrigan <commits@nhcarrigan.com>
Reviewed-on: #6
Co-authored-by: Hikari <hikari@nhcarrigan.com>
Co-committed-by: Hikari <hikari@nhcarrigan.com>
2026-02-23 20:18:41 -08:00
naomi e481823e06 feat: add mentorship onboarding (#5)
CI / dependency-pin-check-typescript (push) Successful in 4s
CI / dependency-pin-check-python (push) Successful in 4s
CI / python (push) Successful in 9m23s
CI / typescript (push) Successful in 9m48s
Security Scan and Upload / Security & DefectDojo Upload (push) Successful in 1m51s
### Explanation

_No response_

### Issue

_No response_

### Attestations

- [ ] I have read and agree to the [Code of Conduct](https://docs.nhcarrigan.com/community/coc/)
- [ ] I have read and agree to the [Community Guidelines](https://docs.nhcarrigan.com/community/guide/).
- [ ] My contribution complies with the [Contributor Covenant](https://docs.nhcarrigan.com/dev/covenant/).

### Dependencies

- [ ] I have pinned the dependencies to a specific patch version.

### Style

- [ ] I have run the linter and resolved any errors.
- [ ] My pull request uses an appropriate title, matching the conventional commit standards.
- [ ] My scope of feat/fix/chore/etc. correctly matches the nature of changes in my pull request.

### Tests

- [ ] My contribution adds new code, and I have added tests to cover it.
- [ ] My contribution modifies existing code, and I have updated the tests to reflect these changes.
- [ ] All new and existing tests pass locally with my changes.
- [ ] Code coverage remains at or above the configured threshold.

### Documentation

_No response_

### Versioning

_No response_

Reviewed-on: #5
Co-authored-by: Naomi Carrigan <commits@nhcarrigan.com>
Co-committed-by: Naomi Carrigan <commits@nhcarrigan.com>
2026-02-03 11:03:18 -08:00
naomi f5e8deca59 feat: add remaining cohort scripts (#4)
CI / dependency-pin-check-typescript (push) Successful in 5s
CI / dependency-pin-check-python (push) Successful in 4s
Security Scan and Upload / Security & DefectDojo Upload (push) Successful in 54s
CI / python (push) Successful in 9m24s
CI / typescript (push) Successful in 9m41s
### Explanation

_No response_

### Issue

_No response_

### Attestations

- [ ] I have read and agree to the [Code of Conduct](https://docs.nhcarrigan.com/community/coc/)
- [ ] I have read and agree to the [Community Guidelines](https://docs.nhcarrigan.com/community/guide/).
- [ ] My contribution complies with the [Contributor Covenant](https://docs.nhcarrigan.com/dev/covenant/).

### Dependencies

- [ ] I have pinned the dependencies to a specific patch version.

### Style

- [ ] I have run the linter and resolved any errors.
- [ ] My pull request uses an appropriate title, matching the conventional commit standards.
- [ ] My scope of feat/fix/chore/etc. correctly matches the nature of changes in my pull request.

### Tests

- [ ] My contribution adds new code, and I have added tests to cover it.
- [ ] My contribution modifies existing code, and I have updated the tests to reflect these changes.
- [ ] All new and existing tests pass locally with my changes.
- [ ] Code coverage remains at or above the configured threshold.

### Documentation

_No response_

### Versioning

_No response_

Reviewed-on: #4
Co-authored-by: Naomi Carrigan <commits@nhcarrigan.com>
Co-committed-by: Naomi Carrigan <commits@nhcarrigan.com>
2026-02-02 12:36:44 -08:00
naomi 6169eb4577 feat: add claude.md (#3)
CI / dependency-pin-check-typescript (push) Successful in 4s
CI / dependency-pin-check-python (push) Successful in 4s
Security Scan and Upload / Security & DefectDojo Upload (push) Successful in 52s
CI / python (push) Successful in 9m22s
CI / typescript (push) Successful in 9m43s
### Explanation

_No response_

### Issue

_No response_

### Attestations

- [ ] I have read and agree to the [Code of Conduct](https://docs.nhcarrigan.com/community/coc/)
- [ ] I have read and agree to the [Community Guidelines](https://docs.nhcarrigan.com/community/guide/).
- [ ] My contribution complies with the [Contributor Covenant](https://docs.nhcarrigan.com/dev/covenant/).

### Dependencies

- [ ] I have pinned the dependencies to a specific patch version.

### Style

- [ ] I have run the linter and resolved any errors.
- [ ] My pull request uses an appropriate title, matching the conventional commit standards.
- [ ] My scope of feat/fix/chore/etc. correctly matches the nature of changes in my pull request.

### Tests

- [ ] My contribution adds new code, and I have added tests to cover it.
- [ ] My contribution modifies existing code, and I have updated the tests to reflect these changes.
- [ ] All new and existing tests pass locally with my changes.
- [ ] Code coverage remains at or above the configured threshold.

### Documentation

_No response_

### Versioning

_No response_

Reviewed-on: #3
Co-authored-by: Naomi Carrigan <commits@nhcarrigan.com>
Co-committed-by: Naomi Carrigan <commits@nhcarrigan.com>
2026-02-02 11:22:08 -08:00
naomi 8826c1c1a5 feat: ability to delete s3 objects, make endpoint an env (#2)
CI / dependency-pin-check-typescript (push) Successful in 4s
CI / dependency-pin-check-python (push) Successful in 4s
Security Scan and Upload / Security & DefectDojo Upload (push) Successful in 53s
CI / python (push) Successful in 9m25s
CI / typescript (push) Successful in 9m43s
### Explanation

_No response_

### Issue

_No response_

### Attestations

- [ ] I have read and agree to the [Code of Conduct](https://docs.nhcarrigan.com/community/coc/)
- [ ] I have read and agree to the [Community Guidelines](https://docs.nhcarrigan.com/community/guide/).
- [ ] My contribution complies with the [Contributor Covenant](https://docs.nhcarrigan.com/dev/covenant/).

### Dependencies

- [ ] I have pinned the dependencies to a specific patch version.

### Style

- [ ] I have run the linter and resolved any errors.
- [ ] My pull request uses an appropriate title, matching the conventional commit standards.
- [ ] My scope of feat/fix/chore/etc. correctly matches the nature of changes in my pull request.

### Tests

- [ ] My contribution adds new code, and I have added tests to cover it.
- [ ] My contribution modifies existing code, and I have updated the tests to reflect these changes.
- [ ] All new and existing tests pass locally with my changes.
- [ ] Code coverage remains at or above the configured threshold.

### Documentation

_No response_

### Versioning

_No response_

Reviewed-on: #2
Co-authored-by: Naomi Carrigan <commits@nhcarrigan.com>
Co-committed-by: Naomi Carrigan <commits@nhcarrigan.com>
2026-02-02 10:58:45 -08:00
hikari 5f84c5ae44 docs: update feedback section to use support forum
CI / dependency-pin-check-typescript (push) Successful in 4s
CI / dependency-pin-check-python (push) Successful in 5s
CI / typescript (push) Successful in 9m42s
CI / python (push) Successful in 9m26s
Security Scan and Upload / Security & DefectDojo Upload (push) Successful in 2m32s
2026-01-26 12:37:37 -08:00
naomi 6b5fa40599 feat: add multi-lang support and cohort scripts (#1)
CI / dependency-pin-check-typescript (push) Successful in 4s
CI / dependency-pin-check-python (push) Successful in 3s
CI / typescript (push) Successful in 9m38s
CI / python (push) Successful in 9m23s
Security Scan and Upload / Security & DefectDojo Upload (push) Successful in 1m6s
### Explanation

_No response_

### Issue

_No response_

### Attestations

- [ ] I have read and agree to the [Code of Conduct](https://docs.nhcarrigan.com/community/coc/)
- [ ] I have read and agree to the [Community Guidelines](https://docs.nhcarrigan.com/community/guide/).
- [ ] My contribution complies with the [Contributor Covenant](https://docs.nhcarrigan.com/dev/covenant/).

### Dependencies

- [ ] I have pinned the dependencies to a specific patch version.

### Style

- [ ] I have run the linter and resolved any errors.
- [ ] My pull request uses an appropriate title, matching the conventional commit standards.
- [ ] My scope of feat/fix/chore/etc. correctly matches the nature of changes in my pull request.

### Tests

- [ ] My contribution adds new code, and I have added tests to cover it.
- [ ] My contribution modifies existing code, and I have updated the tests to reflect these changes.
- [ ] All new and existing tests pass locally with my changes.
- [ ] Code coverage remains at or above the configured threshold.

### Documentation

_No response_

### Versioning

_No response_

Co-authored-by: Hikari <hikari@nhcarrigan.com>
Reviewed-on: #1
Co-authored-by: Naomi Carrigan <commits@nhcarrigan.com>
Co-committed-by: Naomi Carrigan <commits@nhcarrigan.com>
2026-01-23 20:07:16 -08:00
naomi 38e7f15d93 feat: add scripts for managing discourse
Node.js CI / CI (push) Successful in 27s
Security Scan and Upload / Security & DefectDojo Upload (push) Successful in 1m5s
2026-01-13 19:07:03 -08:00
naomi 6fe566b3f6 feat: turn mimetype into proper util to dedupe this all
Node.js CI / CI (push) Successful in 25s
Security Scan and Upload / Security & DefectDojo Upload (push) Successful in 59s
2026-01-08 23:29:50 -08:00
naomi 6acef3b770 chore: update env references
Node.js CI / CI (push) Successful in 25s
Security Scan and Upload / Security & DefectDojo Upload (push) Successful in 48s
2026-01-08 18:36:53 -08:00
naomi b3a4793243 feat: set content type on upload
Node.js CI / CI (push) Successful in 26s
Security Scan and Upload / Security & DefectDojo Upload (push) Successful in 53s
2026-01-05 10:04:10 -08:00
naomi 30ea4ad79d feat: more s3 scripts
Node.js CI / CI (push) Successful in 26s
Security Scan and Upload / Security & DefectDojo Upload (push) Successful in 5m58s
2025-12-30 18:18:05 -08:00
naomi 80ebbcc651 feat: automated upload of .gitea/workflows/ci.yml
Node.js CI / CI (push) Successful in 25s
Security Scan and Upload / Security & DefectDojo Upload (push) Successful in 1m7s
2025-12-22 19:43:17 +01:00
naomi 4dcd768965 feat: automated upload of .gitea/workflows/ci.yml
Security Scan and Upload / Security & DefectDojo Upload (push) Has been cancelled
Node.js CI / CI (push) Has been cancelled
2025-12-22 19:36:47 +01:00
naomi 369992d665 feat: add script for conditional repo uploads
Node.js CI / Lint and Test (push) Has been cancelled
Security Scan and Upload / Security & DefectDojo Upload (push) Has been cancelled
2025-12-22 10:34:00 -08:00
naomi 1f779f7655 feat: script to post technical breakdowns
I use this for sprint initiatives very helpful
2025-12-22 10:33:53 -08:00
naomi 13504965f1 feat: automated upload of .gitea/workflows/ci.yml
Node.js CI / Lint and Test (push) Has been cancelled
Security Scan and Upload / Security & DefectDojo Upload (push) Has been cancelled
2025-12-22 19:26:27 +01:00
naomi 547de787f4 feat: automated upload of .npmrc
Node.js CI / Lint and Test (push) Has been cancelled
Security Scan and Upload / Security & DefectDojo Upload (push) Has been cancelled
2025-12-22 19:17:17 +01:00
naomi ba46ada4c0 feat: security report generation
Node.js CI / Lint and Test (push) Failing after 24s
Security Scan and Upload / Security & DefectDojo Upload (push) Successful in 1m21s
2025-12-17 20:00:06 -08:00
naomi ac3a9d9e58 fix: paginaton needs to be more generic
Not every API is the same.
2025-12-17 19:59:59 -08:00
naomi bd1caf06bd feat: automated upload of .gitea/workflows/security.yml
Node.js CI / Lint and Test (push) Failing after 23s
Security Scan and Upload / Security & DefectDojo Upload (push) Successful in 1m0s
2025-12-18 03:09:40 +01:00
naomi 275fa2e579 feat: add scripts to manage git repos
Node.js CI / Lint and Test (push) Failing after 23s
2025-12-11 17:40:44 -08:00
naomi dd294879b9 feat: yubikey scripts, clarify prompts in s3 script
Node.js CI / Lint and Test (push) Failing after 27s
2025-12-10 19:14:22 -08:00
naomi 64e2b4419c feat: display results as pretty html page
Node.js CI / Lint and Test (push) Successful in 24s
2025-12-03 14:51:29 -08:00
naomi 43e8b4e6c6 feat: automatically open the oauth URL 2025-12-03 14:34:20 -08:00
naomi bd3f2c6388 feat: separate admin and mod categories 2025-12-03 14:27:36 -08:00
naomi 262cdcb702 feat: oauth flow
Node.js CI / Lint and Test (push) Successful in 23s
2025-12-03 14:23:26 -08:00
naomi ede03ca8e8 feat: jsdoc
Node.js CI / Lint and Test (push) Successful in 22s
2025-12-03 14:05:42 -08:00
naomi 128c7c2f96 feat: add disclaimer, prompt for token as password for security
Node.js CI / Lint and Test (push) Failing after 22s
2025-12-03 14:01:23 -08:00
naomi dc324a307b feat: add script to get discord guild count
Node.js CI / Lint and Test (push) Failing after 22s
2025-12-03 13:53:51 -08:00
naomi 18f3d15791 feat: add upload to s3 bucket script
Node.js CI / Lint and Test (push) Has been cancelled
2025-12-01 14:02:19 -08:00
naomi 0ec276c943 chore: forgot to push this script but i got a id3v2 thing
Node.js CI / Lint and Test (push) Successful in 39s
2025-10-31 19:42:27 -07:00
naomi 2caca692bc feat: discord script to create threads 2025-09-15 12:36:23 -07:00
naomi b8d8ad35f9 feat: add npm audit script, crowdin helpers now write data to disk
Node.js CI / Lint and Test (push) Failing after 34s
2025-09-08 16:55:45 -07:00
naomi 3541fdc411 feat: add script to apply crowdin translations from memory
Node.js CI / Lint and Test (push) Successful in 28s
2025-08-27 16:41:35 -07:00
naomi cb6934ef22 feat: scaffold
Node.js CI / Lint and Test (push) Successful in 31s
2025-08-27 12:30:25 -07:00
NHCarrigan 6bca1078ca Initial commit 2025-08-27 12:20:04 -07:00