-
Notifications
You must be signed in to change notification settings - Fork 0
feat: validate and fix publication workflow artifacts #7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -0,0 +1,52 @@ | ||||||||||||||||||||||||||||||||||
| --- | ||||||||||||||||||||||||||||||||||
| description: Pipeline to test, sanitize, and publish changes to jjConfig | ||||||||||||||||||||||||||||||||||
| --- | ||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||
| ### 1. Quality Assurance | ||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||
| Verify that the code meets quality standards and documentation is up to date. | ||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||
| 0. Update Documentation Checklist: | ||||||||||||||||||||||||||||||||||
| - [ ] `TASKS.md`: Mark completed items, add next steps | ||||||||||||||||||||||||||||||||||
| - [ ] `backups/VERSION_HISTORY.md`: Add version/change notes | ||||||||||||||||||||||||||||||||||
| - [ ] `README.md`: Update feature list if user-facing changes | ||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||
| 1. Check for linting and formatting errors | ||||||||||||||||||||||||||||||||||
| `trunk check` | ||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||
| 2. (Optional) Run AI review for final check | ||||||||||||||||||||||||||||||||||
| `scripts/ai-review.sh` | ||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||
| ### 2. Security & Sanitization | ||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||
| **CRITICAL**: Remove all personal identifiable information (PII) before snapshotting. | ||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||
| // turbo 3. Run the robust sanitization script (includes auto-discovery) | ||||||||||||||||||||||||||||||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Remove development artifact from documentation. The "// turbo" prefix appears to be a development comment that shouldn't be in the published documentation. Remove it to maintain clarity. 🔎 Proposed fix-// turbo 3. Run the robust sanitization script (includes auto-discovery)
+3. Run the robust sanitization script (includes auto-discovery)📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents |
||||||||||||||||||||||||||||||||||
| `jj security-sanitize` | ||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||
| ### 3. Commit & Publish | ||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||
| Finalize the snapshot and push to the remote. | ||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||
| 4. Describe the changes (Write a good commit message) | ||||||||||||||||||||||||||||||||||
| `jj describe` | ||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||
| 5. Push to GitHub (Triggers GitGuardian pre-push hook) | ||||||||||||||||||||||||||||||||||
| `jj git push` | ||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||
| 6. Create the Pull Request | ||||||||||||||||||||||||||||||||||
| `gh pr create --web` | ||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||
| ### 4. Restore Local State | ||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||
| **Important**: Restore your local configuration (email) so you can continue working. | ||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||
| 7. Restore PII (Email) | ||||||||||||||||||||||||||||||||||
| `python3 .build-artifacts/sanitize_email.py --restore` | ||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||
| ### 5. Release (After Merge) | ||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||
| Once the PR is approved and merged into the integration branch: | ||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||
| 7. Create a release tag | ||||||||||||||||||||||||||||||||||
|
Comment on lines
+44
to
+51
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Fix duplicate step numbering. Step 7 is used twice: once at line 44 ("Restore PII") and again at line 51 ("Create a release tag"). The second should be step 8. 🔎 Proposed fix 7. Restore PII (Email)
`python3 .build-artifacts/sanitize_email.py --restore`
### 5. Release (After Merge)
Once the PR is approved and merged into the integration branch:
-7. Create a release tag
+8. Create a release tag
`gh release create v1.0.0 --generate-notes`📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents |
||||||||||||||||||||||||||||||||||
| `gh release create v1.0.0 --generate-notes` | ||||||||||||||||||||||||||||||||||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,25 @@ | ||
| name: GitGuardian Scan | ||
|
|
||
| on: [push, pull_request] | ||
|
|
||
| permissions: | ||
| contents: read | ||
|
|
||
| jobs: | ||
| scanning: | ||
| name: GitGuardian Scan | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - name: Checkout | ||
| uses: actions/checkout@v4 | ||
| with: | ||
| fetch-depth: 0 # fetch all history so multiple commits can be scanned | ||
|
|
||
| - name: GitGuardian scan | ||
| uses: GitGuardian/ggshield-action@v1 | ||
| env: | ||
| GITHUB_PUSH_BEFORE_SHA: ${{ github.event.before }} | ||
| GITHUB_PUSH_BASE_SHA: ${{ github.event.before }} | ||
| GITHUB_PULL_BASE_SHA: ${{ github.event.pull_request.base.sha }} | ||
| GITHUB_DEFAULT_BRANCH: ${{ github.event.repository.default_branch }} | ||
| GITGUARDIAN_API_KEY: ${{ secrets.GITGUARDIAN_API_KEY }} |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -43,3 +43,4 @@ backups/v*/applied-*.timestamp | |
|
|
||
| # relay state | ||
| /.relay/ | ||
| .cache_ggshield | ||
This file was deleted.
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,9 @@ | ||
| *out | ||
| *logs | ||
| *actions | ||
| *notifications | ||
| *tools | ||
| plugins | ||
| user_trunk.yaml | ||
| user.yaml | ||
| tmp |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,2 @@ | ||
| # Prettier friendly markdownlint config (all formatting rules disabled) | ||
| extends: markdownlint/style/prettier |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,7 @@ | ||
| enable=all | ||
| source-path=SCRIPTDIR | ||
| disable=SC2154 | ||
|
Comment on lines
+1
to
+3
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧩 Analysis chain🏁 Script executed: #!/bin/bash
# Description: Check if shell scripts rely heavily on externally sourced variables that would trigger SC2154.
# Search for shell scripts that source external files
echo "=== Scripts that source external files ==="
fd -e sh -e bash --exec grep -l '^\s*\(source\|\.\)' {}
echo -e "\n=== Common patterns that might trigger SC2154 ==="
# Look for variable references that might come from sourced files
rg -t sh -C2 '\$[A-Z_][A-Z0-9_]*' --glob '!.trunk/**' | head -100Repository: Thomo1318/jjConfig Length of output: 1096 🏁 Script executed: #!/bin/bash
# Check where variables that triggered SC2154 patterns are actually defined
echo "=== Looking for HOOK_URL definition ==="
rg -t sh 'HOOK_URL' --glob '!.trunk/**' -B3
echo -e "\n=== Looking for HOOK_PATH definition ==="
rg -t sh 'HOOK_PATH' --glob '!.trunk/**' -B3
echo -e "\n=== Checking if any scripts are sourced by others ==="
rg -t sh '^\s*\(source\|\..\s\)' --glob '!.trunk/**'
echo -e "\n=== Checking for environment variable usage ==="
rg -t sh '\$\{[A-Z_]' --glob '!.trunk/**' | head -50Repository: Thomo1318/jjConfig Length of output: 2559 Reconsider disabling SC2154—the codebase does not justify this blanket rule disablement. Analysis of the repository shows no shell scripts source external files or rely on environment-sourced variables. All variables like 🤖 Prompt for AI Agents |
||
|
|
||
| # If you're having issues with shellcheck following source, disable the errors via: | ||
| # disable=SC1090 | ||
| # disable=SC1091 | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,7 @@ | ||
| rules: | ||
| quoted-strings: | ||
| required: only-when-needed | ||
| extra-allowed: ["{|}"] | ||
| key-duplicates: {} | ||
| octal-values: | ||
| forbid-implicit-octal: true |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,37 @@ | ||
| # This file controls the behavior of Trunk: https://docs.trunk.io/cli | ||
| # To learn more about the format of this file, see https://docs.trunk.io/reference/trunk-yaml | ||
| version: 0.1 | ||
| cli: | ||
| version: 1.25.0 | ||
| # Trunk provides extensibility via plugins. (https://docs.trunk.io/plugins) | ||
| plugins: | ||
| sources: | ||
| - id: trunk | ||
| ref: v1.7.4 | ||
| uri: https://github.com/trunk-io/plugins | ||
| # Many linters and tools depend on runtimes - configure them here. (https://docs.trunk.io/runtimes) | ||
| runtimes: | ||
| enabled: | ||
| - go@1.21.0 | ||
| - node@22.16.0 | ||
| - python@3.10.8 | ||
|
Comment on lines
+13
to
+17
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧩 Analysis chain🌐 Web query:
💡 Result: The latest stable Go release is Go 1.25.5 — released December 2, 2025. [1][2] Sources:
🌐 Web query:
💡 Result: As of January 1, 2026 the Active LTS line is Node.js 24.x (entered Active LTS on Oct 28, 2025); the latest patch in that line is 24.12.0 (Dec 10, 2025). [1][2] Sources: 🌐 Web query:
💡 Result: The latest stable Python 3.x (as of Jan 1, 2026) is Python 3.14.2 — released December 5, 2025. [1][2] Sources:
Update runtime versions to current stable releases. The runtime versions specified are significantly outdated:
Using outdated runtimes misses critical security patches, performance improvements, and modern language features. 🤖 Prompt for AI Agents |
||
| # This is the section where you manage your linters. (https://docs.trunk.io/check/configuration) | ||
| lint: | ||
| enabled: | ||
| - yamllint@1.37.1 | ||
| - actionlint@1.7.9 | ||
| - checkov@3.2.496 | ||
| - git-diff-check | ||
| - markdownlint@0.47.0 | ||
| - prettier@3.7.4 | ||
| - shellcheck@0.11.0 | ||
| - shfmt@3.6.0 | ||
| - taplo@0.10.0 | ||
| - trufflehog@3.92.4 | ||
| actions: | ||
| disabled: | ||
| - trunk-announce | ||
| - trunk-check-pre-push | ||
| - trunk-fmt-pre-commit | ||
| enabled: | ||
| - trunk-upgrade-available | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,90 @@ | ||
| ```markdown | ||
| . 📂 jjConfig | ||
| ├── 📄 CONTRIBUTING.md | ||
| ├── 📄 FORCE_PUSH_WARNING.md | ||
| ├── 📄 IMPLEMENTATION.md | ||
| ├── 📄 LICENSE | ||
| ├── 📄 Makefile | ||
| ├── 📄 PR_DESCRIPTION.md | ||
| ├── 📄 QUICKSTART.md | ||
| ├── 📄 README.md | ||
| ├── 📄 RELEASE_NOTES.md | ||
| ├── 📄 RELEASE_NOTES_v1.1.1.md | ||
| ├── 📄 SECURITY_FIX.md | ||
| ├── 📄 TASKS.md | ||
| ├── 📄 TROUBLESHOOTING.md | ||
| ├── 📄 Task4.md | ||
| └── 📂 aliases/ | ||
| │ ├── 📄 README.md | ||
| │ ├── 📄 advanced-workflows.toml | ||
| │ ├── 📄 community-collection.toml | ||
| │ ├── 📄 tier2-intermediate.toml | ||
| │ ├── 📄 tier3-expert.toml | ||
| └── 📂 backups/ | ||
| │ ├── 📄 VERSION_HISTORY.md | ||
| │ └── 📂 v0.1.0-original/ | ||
| │ ├── 📄 config.toml | ||
| │ ├── 📄 metadata.json | ||
| │ └── 📂 v1.0.0-optimized/ | ||
| │ ├── 📄 config.toml | ||
| │ ├── 📄 metadata.json | ||
| │ └── 📂 v1.0.2-init-alias/ | ||
| │ ├── 📄 config.toml | ||
| │ ├── 📄 metadata.json | ||
| │ └── 📂 v1.1.0-mcp-integration/ | ||
| │ ├── 📄 config.toml | ||
| ├── 📄 config-v1-draft.toml | ||
| ├── 📄 config-v1.1.0-draft.toml | ||
| ├── 📄 config.toml | ||
| ├── 📄 config.toml.backup | ||
| ├── 📄 config.toml.backup-before-repomix | ||
| ├── 📄 config_update_git_confirm.txt | ||
| └── 📂 git-configs/ | ||
| │ ├── 📄 README.md | ||
| │ ├── 📄 tier2-git-settings.toml | ||
| │ ├── 📄 tier3-git-advanced.toml | ||
| ├── 📄 git-settings-analysis.md | ||
| ├── 📄 relay.config.json | ||
| └── 📂 revsets/ | ||
| └── 📂 revsets-config/ | ||
| │ ├── 📄 README.md | ||
| │ ├── 📄 community-revsets-patterns.toml | ||
| │ ├── 📄 tier2-revsets-settings.toml | ||
| │ ├── 📄 tier3-advanced-revsets.toml | ||
| │ ├── 📄 willhbr-pattern.toml | ||
| │ ├── 📄 README.md | ||
| │ ├── 📄 community-patterns.toml | ||
| │ ├── 📄 tier2-workflow.toml | ||
| │ ├── 📄 tier3-advanced.toml | ||
| └── 📂 scripts/ | ||
| │ ├── 📄 README.md | ||
| │ ├── 📄 gh-helper.sh | ||
| └── 📂 template-configs/ | ||
| │ ├── 📄 README.md | ||
| │ ├── 📄 community-templates.toml | ||
| │ ├── 📄 tier2-template-aliases.toml | ||
| │ ├── 📄 tier3-custom-templates.toml | ||
| └── 📂 templates/ | ||
| │ ├── 📄 README-mcp-section.md | ||
| │ └── 📂 mcp-hooks/ | ||
| │ ├── 📄 README.md | ||
| │ ├── 📄 post-checkout | ||
| │ ├── 📄 post-commit | ||
| │ ├── 📄 post-merge | ||
| │ └── 📂 repomix-hooks/ | ||
| │ ├── 📄 README.md | ||
| │ ├── 📄 post-checkout | ||
| │ ├── 📄 post-commit | ||
| │ ├── 📄 post-merge | ||
| │ └── 📂 security-hooks/ | ||
| │ ├── 📄 README.md | ||
| │ ├── 📄 git-confirm-setup.sh | ||
| │ ├── 📄 pre-commit | ||
| │ ├── 📄 pre-push | ||
| ├── 📄 ui-analysis.md | ||
| └── 📂 ui-configs/ | ||
| │ ├── 📄 README.md | ||
| │ ├── 📄 synthwave84-colors.toml | ||
| │ ├── 📄 tier2-ui-settings.toml | ||
| │ └── 📄 tier3-advanced-ui.toml | ||
| ``` | ||
|
Comment on lines
+1
to
+90
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧩 Analysis chain🏁 Script executed: find . -name "*tree.md" -o -name "*20251210*" | head -20Repository: Thomo1318/jjConfig Length of output: 89 🏁 Script executed: git ls-files | grep -i treeRepository: Thomo1318/jjConfig Length of output: 87 🏁 Script executed: # Check the root directory structure
ls -la | head -30Repository: Thomo1318/jjConfig Length of output: 1897 🏁 Script executed: wc -l ./20251210095345527-tree.mdRepository: Thomo1318/jjConfig Length of output: 92 🏁 Script executed: cat -n ./20251210095345527-tree.mdRepository: Thomo1318/jjConfig Length of output: 2899 🏁 Script executed: # Check actual repository directories at root
ls -d */ 2>/dev/null | sortRepository: Thomo1318/jjConfig Length of output: 167 🏁 Script executed: # Check backups structure
find backups -type d | head -30Repository: Thomo1318/jjConfig Length of output: 175 🏁 Script executed: # Verify if revsets and revsets-config both exist
ls -la | grep revsetsRepository: Thomo1318/jjConfig Length of output: 186 🏁 Script executed: # Get actual full tree structure of root directories
for dir in aliases backups git-configs revsets revsets-config scripts template-configs templates ui-configs; do
echo "=== $dir ==="
find "$dir" -type f | head -20
doneRepository: Thomo1318/jjConfig Length of output: 1860 🏁 Script executed: # Check if there are root-level TOML files
ls -1 *.toml 2>/dev/nullRepository: Thomo1318/jjConfig Length of output: 119 🏁 Script executed: # Verify tree structure rules - check if all sibling entries follow proper hierarchy
python3 << 'EOF'
with open('./20251210095345527-tree.md', 'r') as f:
lines = f.readlines()
issues = []
for i, line in enumerate(lines[1:90], 2): # Skip line 1 (opening fence) and line 90 (closing)
if '└──' in line or '├──' in line:
# Check if this is the last child before a dedent
current_indent = len(line) - len(line.lstrip())
is_last = '└──' in line
# Look ahead to see what's next
if i < 89:
next_line = lines[i]
next_indent = len(next_line) - len(next_line.lstrip())
# If this line uses └── (end marker) but next line is at same or deeper level, it's wrong
if is_last and next_indent >= current_indent and next_line.strip() and '```' not in next_line:
if '├──' not in next_line and '└──' not in next_line:
continue
# Both have tree markers
if next_indent == current_indent:
issues.append(f"Line {i}: Uses └── but has sibling at line {i+1}")
print(f"Tree structure issues found: {len(issues)}")
for issue in issues[:10]: # Show first 10
print(f" {issue}")
EOFRepository: Thomo1318/jjConfig Length of output: 563 Fix systematic tree hierarchy connector errors throughout the file. The tree structure has pervasive formatting errors with incorrect hierarchy connectors. Multiple entries incorrectly use
Replace 🤖 Prompt for AI Agents |
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hyphenate compound adjective "up-to-date".
Line 7 uses "up to date" as a compound adjective modifying "documentation". It should be hyphenated as "up-to-date" per standard English style guides.
🔎 Proposed fix
📝 Committable suggestion
🧰 Tools
🪛 LanguageTool
[uncategorized] ~7-~7: It appears that hyphens are missing in the adjective “up-to-date”.
Context: ... quality standards and documentation is up to date. 0. Update Documentation Checklist: ...
(UP_TO_DATE_HYPHEN)
🤖 Prompt for AI Agents