Gfi br creator#6
Conversation
… Candidate Signed-off-by: Daniel Ntege <danientege785@gmail.com>
Signed-off-by: Daniel Ntege <danientege785@gmail.com>
Signed-off-by: Daniel Ntege <danientege785@gmail.com>
Signed-off-by: Daniel Ntege <danientege785@gmail.com>
Signed-off-by: Daniel Ntege <danientege785@gmail.com>
|
Hi @danielmarv, this is **LinkBot** 👋
Linking pull requests to issues helps us significantly with reviewing pull requests and keeping the repository healthy. 🚨 This pull request does not have an issue linked. Please link an issue using the following format: 📖 Guide: If no issue exists yet, please create one: Thanks! |
|
Hi, this is WorkflowBot.
|
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Run ID: 📒 Files selected for processing (2)
WalkthroughIntroduces an automated GitHub Actions workflow and Node.js scanner script that identifies beginner-friendly tasks in repositories, extracting candidates from code patterns and generating corresponding GitHub issues for maintainer review. Changes
Sequence DiagramsequenceDiagram
actor Scheduler as Schedule/Manual Trigger
participant Workflow as GitHub Actions<br/>Workflow
participant Scanner as Node.js Scanner<br/>Script
participant Repo as Repository
participant GitHubAPI as GitHub API
Scheduler->>Workflow: Trigger (daily or manual)
Workflow->>Workflow: Setup runner & checkout
Workflow->>Scanner: Execute with env vars<br/>(thresholds, limits)
Scanner->>Repo: Traverse files
Scanner->>Scanner: Extract candidates from:<br/>- TODO/FIXME markers<br/>- Weak error messages<br/>- Typing gaps<br/>- Validation issues<br/>- Missing tests
Scanner->>Scanner: Validate & score candidates<br/>(confidence, scope, risk)
Scanner->>Scanner: Deduplicate & sort<br/>by strength
Scanner->>GitHubAPI: Check for existing similar issues
GitHubAPI-->>Scanner: Existing issues list
Scanner->>Scanner: Filter candidates<br/>(safety gates)
Scanner->>GitHubAPI: Create issue for each candidate
GitHubAPI-->>Scanner: Issue creation responses
Scanner->>Workflow: Generate summary report
Workflow->>Workflow: Post metrics to run summary
Estimated code review effort🎯 4 (Complex) | ⏱️ ~45 minutes ✨ Finishing Touches
🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Pull request overview
This PR introduces a new automation workflow that scans the repository for beginner-friendly improvement signals and (optionally) creates “Good First Issue Candidate” issues for maintainer review.
Changes:
- Added a scheduled + manually-dispatchable workflow to run a “good first issue candidate” scan and create issues via
actions/github-script. - Added a new repository-scanning script that walks files, applies heuristics (TODO/FIXME, weak errors, missing tests, etc.), deduplicates candidates, and creates labeled issues.
- Uses pinned GitHub Action SHAs (including
step-security/harden-runner@... # v2.15.1) in the new workflow.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 4 comments.
| File | Description |
|---|---|
| .github/workflows/identify-good-first-issue-candidates.yml | New scheduled/dispatch workflow to run the candidate scanner and potentially create issues. |
| .github/scripts/bot-identify-good-first-issue-candidates.js | New scanner/issue-creator logic and heuristics used by the workflow. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
You can also share your feedback on Copilot code review. Take the survey.
| `- Rule: \`${candidate.rule}\``, | ||
| `- Location: \`${candidate.files[0]}:${candidate.line}\``, | ||
| `- Snippet: \`${candidate.snippet.slice(0, 220)}\``, | ||
| '', |
There was a problem hiding this comment.
The issue body renders the evidence snippet as inline code wrapped in backticks, but candidate.snippet can contain backticks/newlines (e.g., Markdown, shell, or code), which can break formatting and make the issue body hard to read. Consider escaping backticks/newlines or rendering the snippet in a fenced code block with safe sanitization/truncation.
| name: Identify Good First Issue Candidates | ||
|
|
||
| on: | ||
| schedule: | ||
| # Daily scan at 09:00 UTC | ||
| - cron: '0 9 * * *' | ||
| workflow_dispatch: |
There was a problem hiding this comment.
The PR description indicates only a step-security/harden-runner version bump, but this change set also introduces a new scheduled workflow that can create issues and a new repository-scanning script. Please update the PR title/description to reflect this added functionality or split it into a separate PR so the scope/review expectations are clear.
| env: | ||
| MAX_ISSUES_PER_RUN: ${{ github.event.inputs.max_issues_per_run || '5' }} | ||
| MIN_CONFIDENCE: ${{ github.event.inputs.min_confidence || 'medium' }} | ||
| DRY_RUN: ${{ github.event.inputs.dry_run || 'false' }} |
There was a problem hiding this comment.
On scheduled runs DRY_RUN will default to false, so this workflow can automatically create up to MAX_ISSUES_PER_RUN issues every day. If the intention is to require explicit opt-in before creating issues, consider defaulting scheduled runs to dry-run mode (or gating creation behind an input/branch check).
| DRY_RUN: ${{ github.event.inputs.dry_run || 'false' }} | |
| DRY_RUN: ${{ github.event_name == 'schedule' || github.event.inputs.dry_run == 'true' }} |
| const IGNORED_DIRS = new Set([ | ||
| '.git', | ||
| '.github/archive', | ||
| '.venv', | ||
| 'venv', | ||
| '__pycache__', | ||
| '.mypy_cache', | ||
| '.pytest_cache', | ||
| 'node_modules', | ||
| 'dist', | ||
| 'build', | ||
| 'site-packages', | ||
| '.idea', | ||
| '.vscode', | ||
| '.ruff_cache', | ||
| ]); |
There was a problem hiding this comment.
IGNORED_DIRS includes .github/archive, but this repo’s archived content appears to live under .github/workflows/archive, .github/workflows/archived, and .github/scripts/archive. As written, the scanner will still traverse those archived directories and may generate noisy candidates from them; consider adding the actual archive paths to IGNORED_DIRS.
This pull request updates the version of the
step-security/harden-runnerGitHub Action used across all workflow files from v2.15.0 to v2.15.1. This ensures that all CI jobs benefit from the latest security and functionality improvements provided by the action.CI/CD Security Updates:
step-security/harden-runneraction to version v2.15.1 in the following workflow files to enhance runner hardening and maintain consistency:.github/workflows/bot-assignment-check.yml.github/workflows/bot-beginner-assign-on-comment.yml.github/workflows/bot-coderabbit-plan-trigger.yml.github/workflows/bot-community-calls.yml.github/workflows/bot-gfi-assign-on-comment.yml.github/workflows/bot-gfi-candidate-notification.yaml.github/workflows/bot-inactivity-unassign.yml.github/workflows/bot-intermediate-assignment.yml.github/workflows/bot-issue-reminder-no-pr.yml.github/workflows/bot-linked-issue-enforcer.yml.github/workflows/bot-merge-conflict.yml.github/workflows/bot-next-issue-recommendation.yml.github/workflows/bot-office-hours.yml.github/workflows/bot-p0-issues-notify-team.yml.github/workflows/bot-pr-draft-ready-reminder.yaml.github/workflows/bot-pr-inactivity-reminder.yml.github/workflows/bot-pr-linked-issue-not-assigned.yml.github/workflows/bot-pr-missing-linked-issue.yml.github/workflows/bot-verified-commits.yml.github/workflows/bot-workflows.yml