{"id":19454117,"url":"https://github.com/ultralytics/source-trace","last_synced_at":"2025-06-28T02:39:15.066Z","repository":{"id":232040106,"uuid":"783317647","full_name":"ultralytics/source-trace","owner":"ultralytics","description":"🔍 Ultralytics Source Trace: A tool for detecting and analyzing code duplication across Git repositories.","archived":false,"fork":false,"pushed_at":"2025-05-11T00:21:48.000Z","size":41,"stargazers_count":9,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-11T00:26:48.649Z","etag":null,"topics":["agpl","audit","check","code","detection","duplication","ip","license","source","trace","track"],"latest_commit_sha":null,"homepage":"https://ultralytics.com","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ultralytics.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":"glenn-jocher","patreon":"ultralytics","open_collective":"ultralytics"}},"created_at":"2024-04-07T15:00:45.000Z","updated_at":"2025-05-11T00:21:51.000Z","dependencies_parsed_at":"2024-04-07T16:25:12.492Z","dependency_job_id":"3a1cd059-372d-4d0c-a6a5-44c42d790dbd","html_url":"https://github.com/ultralytics/source-trace","commit_stats":null,"previous_names":["ultralytics/source-trace"],"tags_count":0,"template":false,"template_full_name":"ultralytics/template","purl":"pkg:github/ultralytics/source-trace","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ultralytics%2Fsource-trace","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ultralytics%2Fsource-trace/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ultralytics%2Fsource-trace/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ultralytics%2Fsource-trace/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ultralytics","download_url":"https://codeload.github.com/ultralytics/source-trace/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ultralytics%2Fsource-trace/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262365074,"owners_count":23299701,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agpl","audit","check","code","detection","duplication","ip","license","source","trace","track"],"created_at":"2024-11-10T17:08:00.579Z","updated_at":"2025-06-28T02:39:15.027Z","avatar_url":"https://github.com/ultralytics.png","language":"Python","funding_links":["https://github.com/sponsors/glenn-jocher","https://patreon.com/ultralytics","https://opencollective.com/ultralytics"],"categories":[],"sub_categories":[],"readme":"\u003ca href=\"https://www.ultralytics.com/\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/ultralytics/assets/main/logo/Ultralytics_Logotype_Original.svg\" width=\"320\" alt=\"Ultralytics logo\"\u003e\u003c/a\u003e\n\n# 🛠 Ultralytics Source Trace\n\nWelcome to the `ultralytics/source-trace` repository! This specialized tool from [Ultralytics](https://www.ultralytics.com/) is designed to analyze and report potential [code duplication](https://en.wikipedia.org/wiki/Duplicate_code) between different [Git](https://git-scm.com/) repositories. Building upon the standard Ultralytics [Python](https://www.python.org/) project template, `source-trace` focuses specifically on enhancing code integrity and tracking. It empowers developers by identifying code segments that might be copied across repositories, offering detailed insights into the source, destination, and associated [metadata](https://en.wikipedia.org/wiki/Metadata) for each instance of duplication.\n\n[![Ultralytics Actions](https://github.com/ultralytics/source-trace/actions/workflows/format.yml/badge.svg)](https://github.com/ultralytics/source-trace/actions/workflows/format.yml)\n[![Ultralytics Discord](https://img.shields.io/discord/1089800235347353640?logo=discord\u0026logoColor=white\u0026label=Discord\u0026color=blue)](https://discord.com/invite/ultralytics)\n[![Ultralytics Forums](https://img.shields.io/discourse/users?server=https%3A%2F%2Fcommunity.ultralytics.com\u0026logo=discourse\u0026label=Forums\u0026color=blue)](https://community.ultralytics.com/)\n[![Ultralytics Reddit](https://img.shields.io/reddit/subreddit-subscribers/ultralytics?style=flat\u0026logo=reddit\u0026logoColor=white\u0026label=Reddit\u0026color=blue)](https://reddit.com/r/ultralytics)\n\n## ✨ Features\n\n- **Detailed Comparison**: Generates comprehensive reports highlighting lines of code from one repository found within another.\n- **Comprehensive Statistics**: Provides valuable [metrics](https://www.ultralytics.com/glossary/accuracy) detailing the extent of code duplication, broken down by file and author.\n- **Metadata Tracking**: Captures essential metadata for each duplication instance, including the author and commit date.\n\n## 🚀 Getting Started\n\nTo begin using `source-trace` for your analysis:\n\n1.  **Clone the Repository**: Use [Git clone](https://git-scm.com/docs/git-clone) to copy `source-trace` to your local machine or server.\n    ```bash\n    git clone https://github.com/ultralytics/source-trace.git\n    cd source-trace\n    ```\n2.  **Install Dependencies**: Install the required [Python packages](https://pypi.org/) using [pip](https://pip.pypa.io/en/stable/). We recommend using a [virtual environment](https://docs.python.org/3/tutorial/venv.html).\n    ```bash\n    pip install -e .\n    ```\n3.  **Set Up Your Analysis**: Consult the documentation within the `docs/` directory for guidance on configuring your comparison parameters.\n4.  **Run the Tool**: Execute the analysis scripts located in the `source/` directory to start the code duplication check.\n\n## 💡 Contribute\n\nUltralytics thrives on community collaboration, and we deeply appreciate your contributions! Please review our [Contributing Guide](https://docs.ultralytics.com/help/contributing/) for detailed information on how you can get involved. We also encourage you to share your feedback through our [Survey](https://www.ultralytics.com/survey?utm_source=github\u0026utm_medium=social\u0026utm_campaign=Survey). A heartfelt thank you 🙏 goes out to all our contributors!\n\n[![Ultralytics open-source contributors](https://raw.githubusercontent.com/ultralytics/assets/main/im/image-contributors.png)](https://github.com/ultralytics/ultralytics/graphs/contributors)\n\n## 📄 License\n\nUltralytics offers two licensing options to accommodate diverse needs:\n\n- **AGPL-3.0 License**: This [OSI-approved](https://opensource.org/license/agpl-v3) open-source license is ideal for students, enthusiasts, and researchers who value open collaboration and knowledge sharing. See the [LICENSE](LICENSE) file for details.\n- **Enterprise License**: Designed for commercial use, this license permits seamless integration of Ultralytics software and AI models into commercial products and services, bypassing the open-source requirements of AGPL-3.0. For enterprise solutions, please contact us via [Ultralytics Licensing](https://www.ultralytics.com/license).\n\n## 📮 Contact\n\nFor bug reports or feature suggestions related to `source-trace`, please raise an issue on [GitHub Issues](https://github.com/ultralytics/source-trace/issues). You're also welcome to join our [Discord](https://discord.com/invite/ultralytics) community for discussions, questions, and support!\n\n\u003cbr\u003e\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://github.com/ultralytics\"\u003e\u003cimg src=\"https://github.com/ultralytics/assets/raw/main/social/logo-social-github.png\" width=\"3%\" alt=\"Ultralytics GitHub\"\u003e\u003c/a\u003e\n  \u003cimg src=\"https://github.com/ultralytics/assets/raw/main/social/logo-transparent.png\" width=\"3%\" alt=\"space\"\u003e\n  \u003ca href=\"https://www.linkedin.com/company/ultralytics/\"\u003e\u003cimg src=\"https://github.com/ultralytics/assets/raw/main/social/logo-social-linkedin.png\" width=\"3%\" alt=\"Ultralytics LinkedIn\"\u003e\u003c/a\u003e\n  \u003cimg src=\"https://github.com/ultralytics/assets/raw/main/social/logo-transparent.png\" width=\"3%\" alt=\"space\"\u003e\n  \u003ca href=\"https://twitter.com/ultralytics\"\u003e\u003cimg src=\"https://github.com/ultralytics/assets/raw/main/social/logo-social-twitter.png\" width=\"3%\" alt=\"Ultralytics Twitter\"\u003e\u003c/a\u003e\n  \u003cimg src=\"https://github.com/ultralytics/assets/raw/main/social/logo-transparent.png\" width=\"3%\" alt=\"space\"\u003e\n  \u003ca href=\"https://youtube.com/ultralytics\"\u003e\u003cimg src=\"https://github.com/ultralytics/assets/raw/main/social/logo-social-youtube.png\" width=\"3%\" alt=\"Ultralytics YouTube\"\u003e\u003c/a\u003e\n  \u003cimg src=\"https://github.com/ultralytics/assets/raw/main/social/logo-transparent.png\" width=\"3%\" alt=\"space\"\u003e\n  \u003ca href=\"https://www.tiktok.com/@ultralytics\"\u003e\u003cimg src=\"https://github.com/ultralytics/assets/raw/main/social/logo-social-tiktok.png\" width=\"3%\" alt=\"Ultralytics TikTok\"\u003e\u003c/a\u003e\n  \u003cimg src=\"https://github.com/ultralytics/assets/raw/main/social/logo-transparent.png\" width=\"3%\" alt=\"space\"\u003e\n  \u003ca href=\"https://ultralytics.com/bilibili\"\u003e\u003cimg src=\"https://github.com/ultralytics/assets/raw/main/social/logo-social-bilibili.png\" width=\"3%\" alt=\"Ultralytics BiliBili\"\u003e\u003c/a\u003e\n  \u003cimg src=\"https://github.com/ultralytics/assets/raw/main/social/logo-transparent.png\" width=\"3%\" alt=\"space\"\u003e\n  \u003ca href=\"https://discord.com/invite/ultralytics\"\u003e\u003cimg src=\"https://github.com/ultralytics/assets/raw/main/social/logo-social-discord.png\" width=\"3%\" alt=\"Ultralytics Discord\"\u003e\u003c/a\u003e\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fultralytics%2Fsource-trace","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fultralytics%2Fsource-trace","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fultralytics%2Fsource-trace/lists"}