7 views

anthropics/claude-code-action

TypeScript★ 9,130+31 that day#5 on trending

Analyzed September 27, 2026 at 756cc22 (main) with jscpd 5.4.0 in 0.1s.

C66.7/100
Project health33,193 lines of code (M)
Duplication56
7.4% in typescript, python, bash, perl, javascript
Dead code94
0.5%
Complexity57
41.4%

The score is jscpd's own --health model: markup, data and text left out, tests kept. The numbers below are the trending scan's.

3.51%duplicated code · 488 of 13,914 lines
21clones in code
79code files of 225 scanned
7.58%duplicated over all files · 202 clones

The code number leaves out tests, fixtures, docs, examples, data files, styles, translations and vendored code.

Largest clones in the code

  • 69 lines in 2 placestypescript298 tokens
    307);
    308
    309// 4. Create a new tree
    310const treeUrl = `${GITHUB_API_URL}/repos/${owner}/${repo}/git/trees`;
    311const treeResponse = await fetch(treeUrl, {
    312  method: "POST",
    313  headers: {
    314    Accept: "application/vnd.github+json",
    315    Authorization: `Bearer ${githubToken}`,
    316    "X-GitHub-Api-Version": "2022-11-28",
    
    468}));
    469
    470// 4. Create a new tree with deletions
    471const treeUrl = `${GITHUB_API_URL}/repos/${owner}/${repo}/git/trees`;
    472const treeResponse = await fetch(treeUrl, {
    473  method: "POST",
    474  headers: {
    475    Accept: "application/vnd.github+json",
    476    Authorization: `Bearer ${githubToken}`,
    477    "X-GitHub-Api-Version": "2022-11-28",
    

    First 10 of 69 lines, the second copy on the right.

  • 20 lines in 2 placestypescript114 tokens
    9import type { GitHubContext } from "../context";
    10
    11function isAllowedBot(actor: string, allowedBots: string): boolean {
    12  const trimmed = allowedBots.trim();
    13  if (trimmed === "*") return true;
    14  if (!trimmed) return false;
    15
    16  const allowedList = trimmed
    17    .split(",")
    18    .map((bot) =>
    
    3import type { Octokit } from "@octokit/rest";
    4
    5/**
    6 * Check if a bot actor is in the allowed bots list.
    7 */
    8function isAllowedBot(actor: string, allowedBots: string): boolean {
    9  const trimmed = allowedBots.trim();
    10  if (trimmed === "*") return true;
    11  if (!trimmed) return false;
    12
    

    First 10 of 20 lines, the second copy on the right.

  • 31 lines in 2 placestypescript112 tokens
    223    return { fullPath, relativePath };
    224  }),
    225);
    226
    227// 1. Get the branch reference (create if doesn't exist)
    228const baseSha = await getOrCreateBranchRef(
    229  owner,
    230  repo,
    231  branch,
    232  githubToken,
    

    First 10 of 31 lines.

7 more
Largest clones over all files, tests and data included
By format, code only
FormatFilesLinesClonesDuplicated linesDuplication
typescript6010,769204424.1%
bash169811464.69%
python11,828000%
perl1174000%
javascript1162000%
By format, all files
FormatFilesLinesClonesDuplicated linesDuplication
typescript12030,0041512,4018%
yaml464,3864252111.88%
markdown324,62262715.86%
bash169811464.69%
markup1744191.21%
json63391288.26%
python11,828000%
perl1174000%
javascript1162000%
text14000%

Trending appearances

DayRankStarsFilesLinesClonesAll filesCodeHealthCommit
Sep 27, 2026#59,130 (+31)22543,2442027.58%3.51%C 66.7756cc22

Want this for your own project? Install jscpd and run jscpd ., or measure it the way the baselines were measured.