Skip to content
This repository was archived by the owner on Jan 16, 2026. It is now read-only.

Comments

Add scheduled lychee cronjob with automatic GitHub issue creation#2740

Merged
emhane merged 4 commits intomainfrom
copilot/fix-2736
Sep 3, 2025
Merged

Add scheduled lychee cronjob with automatic GitHub issue creation#2740
emhane merged 4 commits intomainfrom
copilot/fix-2736

Conversation

Copy link
Contributor

Copilot AI commented Aug 20, 2025

Fixes #2736

Implements a scheduled lychee link checker that runs on a cron schedule at 09 UTC every Monday and automatically opens GitHub issues for broken links, replacing the previous PR-based link checking.

Co-authored-by: emhane <58548332+emhane@users.noreply.github.com>
Copilot AI changed the title [WIP] Lychee cronjob Add scheduled lychee cronjob with automatic GitHub issue creation Aug 20, 2025
Copilot AI requested a review from emhane August 20, 2025 17:22
@emhane emhane marked this pull request as ready for review August 20, 2025 17:22
Copilot AI review requested due to automatic review settings August 20, 2025 17:22
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR replaces PR-based link checking with a scheduled approach that automatically creates GitHub issues for broken links, reducing CI noise while maintaining proactive link health monitoring.

  • Introduces scheduled lychee link checker that runs weekly on Mondays at 9:00 AM UTC
  • Removes lychee job from Rust CI workflow to prevent PR blocking
  • Implements automatic GitHub issue creation and management for broken links

Reviewed Changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

File Description
.github/workflows/rust_ci.yaml Removes lychee link checking job from CI pipeline
.github/workflows/lychee.yaml Adds new scheduled workflow with automatic issue creation for broken links

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@claude
Copy link
Contributor

claude bot commented Aug 20, 2025

Claude finished @Copilot's task —— View job


Pull Request Review

This PR successfully implements a scheduled lychee link checker with automatic GitHub issue creation. Here's my comprehensive review:

Todo List

  • Read and analyze the new lychee.yaml workflow
  • Review the rust_ci.yaml modifications
  • Evaluate code quality and best practices
  • Check for potential bugs or issues
  • Assess security considerations
  • Review performance implications
  • Provide comprehensive feedback

Strengths

Architecture & Design:

  • Smart approach: Moving from PR-blocking to scheduled issue creation reduces CI noise while maintaining proactive monitoring
  • Proper scheduling: Monday 9AM UTC is reasonable for weekly link health checks
  • Issue management: close-previous-issues: true prevents duplicate issue spam

Security & Permissions:

  • Minimal permissions: Correctly requests only issues: write and contents: read
  • Standard token usage: Uses GITHUB_TOKEN appropriately for rate limiting avoidance
  • No credential exposure: No hardcoded secrets or unsafe practices

Configuration:

  • Reuses existing config: Leverages lychee.toml maintaining consistency
  • Appropriate timeout: 30-minute timeout prevents hanging jobs
  • Manual trigger: workflow_dispatch enables testing and on-demand runs

⚠️ Issues Found

Critical Bug (.github/workflows/lychee.yaml:30):

# Current (incorrect)
args: ... './docs/**/*.com'
# Should be
args: ... './docs/**/*.json'

The .com extension appears to be a typo and should likely be .json for documentation files. This was correctly identified by the previous reviewer.

Minor Improvements:

  1. Workflow name consistency: Consider Link Health Check to match the purpose better than just Link Checker

  2. Issue template enhancement: The issue body could include more context:

issue-body: |
  The automated link checker found broken links in the repository.
  
  **Schedule**: This check runs every Monday at 9:00 AM UTC
  **Last successful run**: Check the [Actions tab](https://github.com/${{ github.repository }}/actions/workflows/lychee.yaml)
  
  Please review and fix the broken links listed below:
  
  $LYCHEE_REPORT

Code Quality Assessment

Best Practices:

  • ✅ Uses pinned action versions (@v5, @v2)
  • ✅ Proper YAML formatting and indentation
  • ✅ Clear job and step naming
  • ✅ Appropriate use of environment variables

Performance Considerations:

  • ✅ 30-minute timeout prevents runaway jobs
  • fail: false ensures workflow doesn't fail on broken links (appropriate for issue creation flow)
  • ✅ Cache exclusion for 429 status codes handles rate limiting gracefully

Maintainability:

  • ✅ Clean removal of lychee job from rust_ci.yaml (lines 172-196 cleanly removed)
  • ✅ Configuration centralized in lychee.toml
  • ✅ Clear documentation in PR description

🔍 Test Coverage

Missing but Acceptable:

  • No direct tests for GitHub Actions workflows (this is standard practice)
  • Manual testing possible via workflow_dispatch trigger
  • The existing lychee.toml config has been validated in previous PR-based runs

📊 Impact Assessment

Positive Changes:

  • ✅ Reduces CI noise and PR blocking
  • ✅ Maintains proactive link monitoring
  • ✅ Provides better issue tracking for broken links
  • ✅ Separates concerns (CI vs. maintenance tasks)

Risk Assessment:

  • 🟡 Low risk: File pattern typo needs fixing but won't break workflow
  • 🟢 No security concerns: Proper permission model
  • 🟢 No performance regression: Removes load from PR pipeline

Recommendation

APPROVE with the file extension typo fix. This is a well-implemented solution that achieves the goal of reducing PR noise while maintaining link health monitoring.

Required Fix:

  • Fix .com.json in lychee.yaml:30

Optional Enhancements (can be done in follow-up):

  • Enhanced issue template with more context
  • Consider workflow name improvement

@codecov
Copy link

codecov bot commented Aug 20, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 86.0%. Comparing base (b68d533) to head (dd228fe).
⚠️ Report is 2 commits behind head on main.
✅ All tests successful. No failed tests found.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

Copy link
Contributor

@refcell refcell left a comment

Choose a reason for hiding this comment

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

One thing that concerns me here is if the issues aren't fixed relatively quickly, this will wind up creating a ton of issues over time. Is it possible to have a workflow that checks if issues exist already? One open issue should be sufficient to track all relevant lychee issues.

@emhane
Copy link
Contributor

emhane commented Aug 21, 2025

One thing that concerns me here is if the issues aren't fixed relatively quickly, this will wind up creating a ton of issues over time. Is it possible to have a workflow that checks if issues exist already? One open issue should be sufficient to track all relevant lychee issues.

@copliot pls fix

@emhane emhane added this pull request to the merge queue Aug 29, 2025
@emhane emhane removed this pull request from the merge queue due to a manual request Aug 29, 2025
@emhane emhane added this pull request to the merge queue Aug 29, 2025
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Aug 29, 2025
@emhane emhane added this pull request to the merge queue Sep 2, 2025
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Sep 2, 2025
@emhane emhane enabled auto-merge September 3, 2025 12:22
@emhane emhane added this pull request to the merge queue Sep 3, 2025
Merged via the queue into main with commit 7715817 Sep 3, 2025
27 of 34 checks passed
@emhane emhane deleted the copilot/fix-2736 branch September 3, 2025 13:03
theochap pushed a commit to ethereum-optimism/optimism that referenced this pull request Dec 10, 2025
…-rs/kona#2740)

Fixes op-rs/kona#2736 

Implements a scheduled lychee link checker that runs on a cron schedule
at 09 UTC every Monday and automatically opens GitHub issues for broken
links, replacing the previous PR-based link checking.

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: emhane <58548332+emhane@users.noreply.github.com>
Co-authored-by: Emilia Hane <elsaemiliaevahane@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
theochap pushed a commit to ethereum-optimism/optimism that referenced this pull request Jan 14, 2026
…-rs/kona#2740)

Fixes op-rs/kona#2736 

Implements a scheduled lychee link checker that runs on a cron schedule
at 09 UTC every Monday and automatically opens GitHub issues for broken
links, replacing the previous PR-based link checking.

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: emhane <58548332+emhane@users.noreply.github.com>
Co-authored-by: Emilia Hane <elsaemiliaevahane@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Lychee cronjob

3 participants