Skip to content

chore: polish employer portfolio - #2

Merged
NilhanHub merged 1 commit into
mainfrom
agent/employer-portfolio-polish
Jul 16, 2026
Merged

chore: polish employer portfolio#2
NilhanHub merged 1 commit into
mainfrom
agent/employer-portfolio-polish

Conversation

@NilhanHub

@NilhanHub NilhanHub commented Jul 16, 2026

Copy link
Copy Markdown
Owner

What changed

  • adds a reproducible 1280x640 project preview and explicit evaluation path
  • adds security reporting, contribution, licensing, and asset-rights guidance
  • adds a portfolio integrity workflow with documentation and changed-history secret gates
  • preserves the project's honest maturity and runtime interfaces

Verification

  • full-history redacted Gitleaks scan
  • Git diff and preview-dimension validation
  • existing project checks where available

Risk and rollback

Documentation, repository policy, and CI only unless the diff explicitly contains a verified tooling repair. Revert this PR to roll back.

Summary by CodeRabbit

  • New Features

    • Added automated integrity checks for required documentation, preview image specifications, and accidental credential exposure.
  • Documentation

    • Added contribution guidelines covering workflow, testing, accessibility, security, privacy, and responsible AI-assisted contributions.
    • Added licensing and reuse guidance for original, third-party, and public-source materials.
    • Added a security policy explaining how to report vulnerabilities privately.
  • Chores

    • Updated secret-scanning exclusions with context for approved third-party content.

@coderabbitai

coderabbitai Bot commented Jul 16, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

Adds repository contribution, licensing, rights, and security policies. Introduces a Portfolio Integrity workflow that validates required documentation and social-preview image dimensions, then scans history for secrets with targeted snapshot exclusions.

Changes

Repository integrity and governance

Layer / File(s) Summary
Repository policy documents
CONTRIBUTING.md, LICENSE, RIGHTS.md, SECURITY.md
Adds contribution instructions, the MIT License, reuse and ownership terms, and private vulnerability disclosure guidance.
Automated integrity and secret checks
.github/workflows/portfolio-integrity.yml, .gitleaksignore
Adds documentation and PNG validation on pull requests and main/master pushes, plus gitleaks scanning and exclusions for two third-party HTML snapshots.

Estimated code review effort: 3 (Moderate) | ~20 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title is concise and clearly matches the PR's portfolio-polishing changes.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch agent/employer-portfolio-polish

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🧹 Nitpick comments (2)
.github/workflows/portfolio-integrity.yml (2)

16-19: 🔒 Security & Privacy | 🔵 Trivial | ⚡ Quick win

Opt out of persisted checkout credentials.

This job does not need authenticated Git commands after checkout. Set persist-credentials: false to avoid writing the token into the checkout configuration. (github.com)

Proposed fix
         with:
           fetch-depth: 0
+          persist-credentials: false
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/portfolio-integrity.yml around lines 16 - 19, Update the
actions/checkout@v4 step in “Checkout full history” to set persist-credentials
to false alongside fetch-depth, preventing checkout credentials from being
persisted for the remainder of the job.

Source: Linters/SAST tools


8-10: 🔒 Security & Privacy | 🔵 Trivial | ⚡ Quick win

Disable Gitleaks PR comments or grant the required permission.

gitleaks-action enables PR comments by default, but this workflow grants only pull-requests: read. Keep least privilege by setting GITLEAKS_ENABLE_COMMENTS: 'false' unless inline comments are explicitly required; otherwise comment creation cannot succeed. (raw.githubusercontent.com)

Proposed fix
         env:
           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+          GITLEAKS_ENABLE_COMMENTS: 'false'

Also applies to: 36-39

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/portfolio-integrity.yml around lines 8 - 10, Update the
gitleaks-action configuration in the portfolio integrity workflow to set
GITLEAKS_ENABLE_COMMENTS to 'false', preserving the existing least-privilege
pull-requests: read permission and disabling PR comment creation.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/portfolio-integrity.yml:
- Around line 23-27: Update the required-documentation checks in the portfolio
integrity workflow to include a non-empty LICENSE file alongside README.md,
SECURITY.md, CONTRIBUTING.md, RIGHTS.md, and docs/social-preview.png.
- Around line 16-17: Upgrade the gitleaks/gitleaks-action step in the portfolio
integrity workflow from v2 to v3. Keep the existing secrets-scanning
configuration and checkout step unchanged.

---

Nitpick comments:
In @.github/workflows/portfolio-integrity.yml:
- Around line 16-19: Update the actions/checkout@v4 step in “Checkout full
history” to set persist-credentials to false alongside fetch-depth, preventing
checkout credentials from being persisted for the remainder of the job.
- Around line 8-10: Update the gitleaks-action configuration in the portfolio
integrity workflow to set GITLEAKS_ENABLE_COMMENTS to 'false', preserving the
existing least-privilege pull-requests: read permission and disabling PR comment
creation.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 660dadb1-9c90-4741-be75-b92ecbd15240

📥 Commits

Reviewing files that changed from the base of the PR and between 79b215c and e8b5c09.

⛔ Files ignored due to path filters (2)
  • docs/social-preview.png is excluded by !**/*.png
  • docs/social-preview.svg is excluded by !**/*.svg
📒 Files selected for processing (6)
  • .github/workflows/portfolio-integrity.yml
  • .gitleaksignore
  • CONTRIBUTING.md
  • LICENSE
  • RIGHTS.md
  • SECURITY.md

Comment on lines +16 to +17
- name: Checkout full history
uses: actions/checkout@v4

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🩺 Stability & Availability | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

rg -n 'uses:\s*(actions/checkout|gitleaks/gitleaks-action)@' .github/workflows

Repository: NilhanHub/c-fit-ai

Length of output: 322


🏁 Script executed:

sed -n '1,120p' .github/workflows/portfolio-integrity.yml

Repository: NilhanHub/c-fit-ai

Length of output: 1210


🌐 Web query:

gitleaks/gitleaks-action v2 Node runtime v3 Node 24 checkout v4 Node runtime July 2026

💡 Result:

As of July 16, 2026, the status of Gitleaks-Action and its Node runtime requirements are as follows: Gitleaks-Action v3 is the current version, having been released to migrate the GitHub Actions runtime from Node 20 to Node 24 [1][2]. This migration was necessary due to GitHub's deprecation of the Node 20 runtime for GitHub Actions [2][3]. Timeline for Node 20 deprecation: June 2, 2026: GitHub switched the default runner to Node 24. Workflows still using Node 20 actions (like gitleaks-action v2) require the environment variable ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true to function [2][3][4]. September 16, 2026: Node 20 will be removed from GitHub-hosted runners entirely, at which point gitleaks-action v2 will stop working regardless of any opt-out flags [2][3][4]. For users, the recommended migration is to update to gitleaks-action v3 [1][3]. Additionally, it is recommended to update actions/checkout to v6, which aligns with the Node 24 runtime update [3][5]. Users of self-hosted runners must ensure their runner version is at least v2.327.1 to support the Node 24 runtime [2][3].

Citations:


🌐 Web query:

actions/checkout v4 Node runtime v6 Node 24 GitHub Actions July 2026

💡 Result:

As of July 16, 2026, the status of GitHub Actions and the Node.js runtime environment is as follows: The actions/checkout v4 action is currently supported and compatible with the GitHub Actions runtime environment [1][2]. GitHub Actions runners have implemented support for Node.js 24 [3][4]. Migration and Enforcement: GitHub has been managing a transition from older Node.js versions to newer ones. By March 2026, GitHub merged enforcement mechanisms to require Node.js 24 for JavaScript-based actions [3], building on earlier infrastructure work that introduced Node.js 24 support in mid-2025 [4][5]. While Node.js 20 has been deprecated [6] and removed from runner images as of May 2026 [7], the platform provides mechanisms to handle environments where Node.js 24 might not be available, such as specific legacy architectures like Linux ARM32 [3][5]. Runner Environment: As of May 2026, the default Node.js version on GitHub Actions runner images has been updated to Node.js 22, with Node.js 20 removed [7]. Node.js 24 remains available for use within the Actions environment [8]. It is recommended to use the actions/setup-node action in workflows to explicitly manage and pin the required Node.js runtime version, ensuring consistent behavior across different runner environments [9][10].

Citations:


Upgrade gitleaks/gitleaks-action to v3. v2 still depends on Node 20, so the secrets scan will stop running once GitHub removes that runtime.

🧰 Tools
🪛 zizmor (1.26.1)

[warning] 16-19: credential persistence through GitHub Actions artifacts (artipacked): does not set persist-credentials: false

(artipacked)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/portfolio-integrity.yml around lines 16 - 17, Upgrade the
gitleaks/gitleaks-action step in the portfolio integrity workflow from v2 to v3.
Keep the existing secrets-scanning configuration and checkout step unchanged.

Comment on lines +23 to +27
test -s README.md
test -s SECURITY.md
test -s CONTRIBUTING.md
test -s RIGHTS.md
test -s docs/social-preview.png

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win

Add LICENSE to the required-documentation gate.

LICENSE is introduced by this PR but is not checked here. A later change could remove or empty it while the integrity workflow remains green.

Proposed fix
           test -s CONTRIBUTING.md
           test -s RIGHTS.md
+          test -s LICENSE
           test -s docs/social-preview.png
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
test -s README.md
test -s SECURITY.md
test -s CONTRIBUTING.md
test -s RIGHTS.md
test -s docs/social-preview.png
test -s README.md
test -s SECURITY.md
test -s CONTRIBUTING.md
test -s RIGHTS.md
test -s LICENSE
test -s docs/social-preview.png
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/portfolio-integrity.yml around lines 23 - 27, Update the
required-documentation checks in the portfolio integrity workflow to include a
non-empty LICENSE file alongside README.md, SECURITY.md, CONTRIBUTING.md,
RIGHTS.md, and docs/social-preview.png.

@NilhanHub
NilhanHub merged commit 5831522 into main Jul 16, 2026
2 checks passed
@NilhanHub
NilhanHub deleted the agent/employer-portfolio-polish branch July 16, 2026 10:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants