7 views
anthropics/claude-code-action
TypeScript★ 9,130+31 that day#5 on trending
C66.7/100
Duplication56
7.4% in typescript, python, bash, perl, javascriptDead 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
Most complex files
- agent-approval-check/agent_approval_check.py343 cx
- src/create-prompt/index.ts188 cx
- test/validate-branch-name.test.ts135 cx
- test/data-fetcher.test.ts127 cx
- src/entrypoints/format-turns.ts123 cx
- src/github/data/fetcher.ts123 cx
- base-action/test/validate-env.test.ts69 cx
- test/create-prompt.test.ts68 cx
- test/sanitizer.test.ts68 cx
- src/github/utils/image-downloader.ts66 cx
Dead code 0.53% unused · 4 findings
- .claude/workflows/pr-stamp-sweep.jsunused-file
- src/github/context.ts:isAutomationContextunused-export
- src/mcp/github-file-ops-schemas.ts:commitFilesPayloadSchemaunused-export
- src/mcp/github-file-ops-schemas.ts:deleteFilesPayloadSchemaunused-export
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; 12First 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
- 30 lines in 2 placestypescript103 tokens
- 46 lines in 2 placesbash102 tokens
- 24 lines in 2 placestypescript96 tokens
- 29 lines in 2 placestypescript94 tokens
- 20 lines in 2 placestypescript94 tokens
- 27 lines in 2 placestypescript89 tokens
- 26 lines in 2 placestypescript87 tokens
Largest clones over all files, tests and data included
- 128 lines in 2 placesmarkdowndocs and examples936 tokens
1# Contributor Covenant Code of Conduct 2 3## Our Pledge 4 5We as members, contributors, and leaders pledge to make participation in our 6community a harassment-free experience for everyone, regardless of age, body 7size, visible or invisible disability, ethnicity, sex characteristics, gender 8identity and expression, level of experience, education, socio-economic status, 9nationality, personal appearance, race, religion, or sexual identity 10and orientation.First 10 of 128 lines.
- 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.
- 23 lines in 3 placestypescripttests121 tokenstest/data-fetcher.test.ts:1498–1520test/data-fetcher.test.ts:1609–1631test/data-fetcher.test.ts:1645–1667
1498body: "PR body", 1499author: { login: "author" }, 1500createdAt: "2024-01-15T10:00:00Z", 1501additions: 10, 1502deletions: 5, 1503state: "OPEN", 1504commits: { totalCount: 1, nodes: [] }, 1505files: { nodes: [] }, 1506comments: { nodes: [] }, 1507reviews: { nodes: [] },First 10 of 23 lines.
- 8 lines in 5 placesyamldata files52 tokens
- 14 lines in 4 placestypescripttests68 tokens
By format, code only
| Format | Files | Lines | Clones | Duplicated lines | Duplication |
|---|---|---|---|---|---|
| typescript | 60 | 10,769 | 20 | 442 | 4.1% |
| bash | 16 | 981 | 1 | 46 | 4.69% |
| python | 1 | 1,828 | 0 | 0 | 0% |
| perl | 1 | 174 | 0 | 0 | 0% |
| javascript | 1 | 162 | 0 | 0 | 0% |
By format, all files
| Format | Files | Lines | Clones | Duplicated lines | Duplication |
|---|---|---|---|---|---|
| typescript | 120 | 30,004 | 151 | 2,401 | 8% |
| yaml | 46 | 4,386 | 42 | 521 | 11.88% |
| markdown | 32 | 4,622 | 6 | 271 | 5.86% |
| bash | 16 | 981 | 1 | 46 | 4.69% |
| markup | 1 | 744 | 1 | 9 | 1.21% |
| json | 6 | 339 | 1 | 28 | 8.26% |
| python | 1 | 1,828 | 0 | 0 | 0% |
| perl | 1 | 174 | 0 | 0 | 0% |
| javascript | 1 | 162 | 0 | 0 | 0% |
| text | 1 | 4 | 0 | 0 | 0% |
Trending appearances
| Day | Rank | Stars | Files | Lines | Clones | All files | Code | Health | Commit |
|---|---|---|---|---|---|---|---|---|---|
| Sep 27, 2026 | #5 | 9,130 (+31) | 225 | 43,244 | 202 | 7.58% | 3.51% | C 66.7 | 756cc22 |
Want this for your own project? Install jscpd and run jscpd ., or measure it the way the baselines were measured.