Skip to content

Commit 90b1776

Browse files
Merge branch 'main' into devin/1773760543-og-text-color-docs
2 parents 046d3e8 + 9ba94a1 commit 90b1776

1,823 files changed

Lines changed: 7633 additions & 2505 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.claude/skills/changelog/SKILL.md

Lines changed: 0 additions & 112 deletions
This file was deleted.

.claude/skills/links/SKILL.md

Lines changed: 0 additions & 13 deletions
This file was deleted.

.github/workflows/auto-merge-on-docs-release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ jobs:
99
runs-on: ubuntu-latest
1010
steps:
1111
- name: Find and merge dependent PRs
12-
uses: actions/github-script@v7
12+
uses: actions/github-script@v8
1313
with:
1414
script: |
1515
const version = context.payload.client_payload.version;

.github/workflows/check-devin-pr-assignee.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ jobs:
1313
if: ${{ github.event.pull_request.user.login == 'devin-ai-integration[bot]' }}
1414
steps:
1515
- name: Auto-assign requester from PR description
16-
uses: actions/github-script@v7
16+
uses: actions/github-script@v8
1717
with:
1818
github-token: ${{ secrets.GITHUB_TOKEN }}
1919
script: |

.github/workflows/check-links.yml

Lines changed: 32 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ jobs:
1616
runs-on: ubuntu-latest
1717
steps:
1818
- name: Checkout repository
19-
uses: actions/checkout@v4
19+
uses: actions/checkout@v5
2020

2121
- name: Create lychee config
2222
run: |
@@ -32,6 +32,12 @@ jobs:
3232
3333
# Exclude patterns (regex)
3434
exclude = [
35+
# Malformed ToC anchor links generated by the docs platform
36+
# These contain internal routing params (domain/host/auth/audience/version/path)
37+
# and are not real broken links — this is a fern-platform rendering bug
38+
"buildwithfern\\.com/_/buildwithfern\\.com/",
39+
"app\\.buildwithfern\\.com/buildwithfern\\.com/",
40+
3541
# Placeholder/example URLs
3642
"^https://example\\.com",
3743
"^https://github\\.com/owner/repo",
@@ -41,6 +47,10 @@ jobs:
4147
"^https://c\\.vialoops\\.com",
4248
"_vercel/(speed-)?insights",
4349
50+
# Next.js image optimization URLs with content hashes that go stale after each deployment
51+
# These are generated by the platform (not source-level links) and resolve after redeployment
52+
"buildwithfern\\.com/_next/image",
53+
4454
# Asset URLs that work on the live site but are not directly accessible
4555
"buildwithfern\\.com/learn/dashboard/assets/pdf-ui\\.png",
4656
@@ -64,9 +74,6 @@ jobs:
6474
"^tel:",
6575
"^javascript:",
6676
67-
# Anchor-only links
68-
"^#",
69-
7077
# All GitHub URLs - checked separately in dedicated steps
7178
"^https://github\\.com/"
7279
]
@@ -326,7 +333,7 @@ jobs:
326333
327334
328335
- name: Upload URLs (early, for debugging)
329-
uses: actions/upload-artifact@v4
336+
uses: actions/upload-artifact@v6
330337
with:
331338
name: urls
332339
path: |
@@ -363,6 +370,7 @@ jobs:
363370
--max-retries 3
364371
--retry-wait-time 10
365372
--max-concurrency 20
373+
--include-fragments
366374
--files-from urls.txt
367375
output: ./lychee-raw-main.md
368376
format: markdown
@@ -504,6 +512,11 @@ jobs:
504512
url=$(echo "$line" | sed -E 's/.*<([^>]+)>.*/\1/')
505513
status=$(echo "$line" | sed -E 's/.*\[([0-9]+)\].*/\1/')
506514
515+
# Skip malformed ToC anchor links (fern-platform rendering bug)
516+
if echo "$url" | grep -qE 'buildwithfern\.com/_/buildwithfern\.com/|app\.buildwithfern\.com/buildwithfern\.com/'; then
517+
continue
518+
fi
519+
507520
# Check if this is a repo-internal GitHub URL (blob/main pattern)
508521
if echo "$url" | grep -qE '^https://github\.com/fern-api/docs/blob/main/'; then
509522
# Extract relative path from URL (strip prefix and query string)
@@ -706,15 +719,15 @@ jobs:
706719
707720
- name: Upload errors-only report
708721
if: always()
709-
uses: actions/upload-artifact@v4
722+
uses: actions/upload-artifact@v6
710723
with:
711724
name: lychee-report
712725
path: ./lychee-report.md
713726
if-no-files-found: ignore
714727

715728
- name: Upload lychee outputs and verification results
716729
if: always()
717-
uses: actions/upload-artifact@v4
730+
uses: actions/upload-artifact@v6
718731
with:
719732
name: lychee-outputs
720733
path: |
@@ -727,7 +740,7 @@ jobs:
727740
- name: Create PR for broken links
728741
id: create-pr
729742
if: steps.check_failures.outputs.has_other_failures == 'true' || steps.retry429.outputs.has_429_failures == 'true' || steps.verify_github.outputs.has_missing == 'true'
730-
uses: actions/github-script@v7
743+
uses: actions/github-script@v8
731744
env:
732745
DEVIN_PROMPT: |
733746
@devin-ai-integration Please fix the broken links detected by the scheduled link checker.
@@ -816,6 +829,15 @@ jobs:
816829
scaffoldContent += '\n---\n';
817830
scaffoldContent += `[View workflow run](https://github.com/${owner}/${repo}/actions/runs/${context.runId})\n`;
818831
832+
// Truncate PR body to stay under GitHub's 65536 character limit
833+
// The full content is still written to the scaffold file
834+
const MAX_PR_BODY_LENGTH = 60000; // leave headroom for safety
835+
let prBody = scaffoldContent;
836+
if (prBody.length > MAX_PR_BODY_LENGTH) {
837+
const truncationNote = `\n\n---\n⚠️ **Report truncated** — full list is in the scaffold file (\`${filePath}\`) on the branch.\n[View workflow run](https://github.com/${owner}/${repo}/actions/runs/${context.runId})\n`;
838+
prBody = prBody.substring(0, MAX_PR_BODY_LENGTH - truncationNote.length) + truncationNote;
839+
}
840+
819841
// Get the base branch ref
820842
const baseRef = await github.rest.git.getRef({
821843
owner,
@@ -953,7 +975,7 @@ jobs:
953975
title: 'Fix broken links (Devin)',
954976
head: branchName,
955977
base: baseBranch,
956-
body: scaffoldContent,
978+
body: prBody,
957979
draft: true,
958980
});
959981
@@ -968,7 +990,7 @@ jobs:
968990
969991
- name: Send Slack notification for broken links
970992
if: steps.create-pr.outputs.pr_created == 'true'
971-
uses: actions/github-script@v7
993+
uses: actions/github-script@v8
972994
env:
973995
SLACK_TOKEN: ${{ secrets.DEVIN_AI_PR_BOT_SLACK_TOKEN }}
974996
PR_URL: ${{ steps.create-pr.outputs.pr_url }}

.github/workflows/fern-scribe.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,12 @@ jobs:
1616

1717
steps:
1818
- name: Checkout repository
19-
uses: actions/checkout@v4
19+
uses: actions/checkout@v5
2020
with:
2121
token: ${{ secrets.GITHUB_TOKEN }}
2222

2323
- name: Setup Node.js
24-
uses: actions/setup-node@v4
24+
uses: actions/setup-node@v5
2525
with:
2626
node-version: '20'
2727
cache: 'npm'
@@ -62,7 +62,7 @@ jobs:
6262
6363
- name: Comment on issue
6464
if: success()
65-
uses: actions/github-script@v7
65+
uses: actions/github-script@v8
6666
with:
6767
script: |
6868
github.rest.issues.createComment({
@@ -74,7 +74,7 @@ jobs:
7474
7575
- name: Comment on failure
7676
if: failure()
77-
uses: actions/github-script@v7
77+
uses: actions/github-script@v8
7878
with:
7979
script: |
8080
github.rest.issues.createComment({

.github/workflows/preview-docs.yml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ jobs:
1414
contents: read # For checking out code
1515
steps:
1616
- name: Checkout repository
17-
uses: actions/checkout@v4
17+
uses: actions/checkout@v5
1818
with:
1919
fetch-depth: 0 # Fetch full history for git diff
2020

@@ -30,8 +30,9 @@ jobs:
3030
id: generate-docs
3131
env:
3232
FERN_TOKEN: ${{ secrets.FERN_TOKEN }}
33+
HEAD_REF: ${{ github.head_ref }}
3334
run: |
34-
OUTPUT=$(fern generate --docs --preview --instance fern-api.docs.buildwithfern.com/learn 2>&1) || true
35+
OUTPUT=$(fern generate --docs --preview --id "$HEAD_REF" --instance fern-api.docs.buildwithfern.com/learn 2>&1) || true
3536
echo "$OUTPUT"
3637
URL=$(echo "$OUTPUT" | grep -oP 'Published docs to \K.*(?= \()')
3738
echo "preview_url=$URL" >> $GITHUB_OUTPUT

.github/workflows/publish-docs.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ jobs:
1111
runs-on: ubuntu-latest
1212
steps:
1313
- name: Checkout repository
14-
uses: actions/checkout@v4
14+
uses: actions/checkout@v5
1515

1616
- name: Setup Fern CLI
1717
uses: fern-api/setup-fern-cli@v1

.github/workflows/update-versions.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ jobs:
99
update-versions:
1010
runs-on: ubuntu-latest
1111
steps:
12-
- uses: actions/checkout@v4
12+
- uses: actions/checkout@v5
1313
with:
1414
ref: main
1515
- name: update-csharp-version
@@ -36,7 +36,7 @@ jobs:
3636
run: curl -s https://api.github.com/repos/fern-api/fern/releases/latest | jq -r -j '.tag_name' > fern/snippets/version-number-cli.mdx
3737
- name: create PR
3838
id: cpr
39-
uses: peter-evans/create-pull-request@v7
39+
uses: peter-evans/create-pull-request@v8
4040
with:
4141
commit-message: "update versions from docker hub"
4242
title: "Update versions from docker hub"
@@ -52,7 +52,7 @@ jobs:
5252
- name: Approving PR
5353
if: steps.cpr.outputs.pull-request-operation == 'created'
5454
env:
55-
GH_TOKEN: ${{ secrets.PR_BOT_GH_PAT }}
55+
GH_TOKEN: ${{ secrets.FERN_GITHUB_TOKEN }}
5656
run: |
5757
echo "Approving PR"
58-
gh pr review ${{ steps.cpr.outputs.pull-request-number }} --approve
58+
gh pr review ${{ steps.cpr.outputs.pull-request-number }} --approve

.github/workflows/vale.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,11 @@ jobs:
1515
github.event.pull_request.user.login != 'fern-support' &&
1616
github.event.pull_request.user.login != 'github-actions'
1717
steps:
18-
- uses: actions/checkout@v4
18+
- uses: actions/checkout@v5
1919

2020
- name: Get changed files
2121
id: changed-files
22-
uses: tj-actions/changed-files@v41
22+
uses: tj-actions/changed-files@v47
2323
with:
2424
files: |
2525
fern/**/*.md

0 commit comments

Comments
 (0)