{"id":27928503,"url":"https://github.com/jenkinsci/forensics-api-plugin","last_synced_at":"2026-04-18T23:05:47.097Z","repository":{"id":35412782,"uuid":"191651516","full_name":"jenkinsci/forensics-api-plugin","owner":"jenkinsci","description":"Jenkins plug-in that defines an API to mine and analyze data from a  source control repository","archived":false,"fork":false,"pushed_at":"2025-10-08T10:25:43.000Z","size":4836,"stargazers_count":18,"open_issues_count":1,"forks_count":31,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-08T11:35:47.960Z","etag":null,"topics":["api-plugin","code-forensics","forensics","hacktoberfest","jenkins"],"latest_commit_sha":null,"homepage":"https://plugins.jenkins.io/forensics-api/","language":"Java","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jenkinsci.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2019-06-12T22:10:38.000Z","updated_at":"2025-10-08T10:25:46.000Z","dependencies_parsed_at":"2023-10-05T10:47:49.344Z","dependency_job_id":"712b0dec-1679-425a-b41b-126abeaf1e1d","html_url":"https://github.com/jenkinsci/forensics-api-plugin","commit_stats":null,"previous_names":[],"tags_count":70,"template":false,"template_full_name":null,"purl":"pkg:github/jenkinsci/forensics-api-plugin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jenkinsci%2Fforensics-api-plugin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jenkinsci%2Fforensics-api-plugin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jenkinsci%2Fforensics-api-plugin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jenkinsci%2Fforensics-api-plugin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jenkinsci","download_url":"https://codeload.github.com/jenkinsci/forensics-api-plugin/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jenkinsci%2Fforensics-api-plugin/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279000666,"owners_count":26082805,"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","status":"online","status_checked_at":"2025-10-08T02:00:06.501Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["api-plugin","code-forensics","forensics","hacktoberfest","jenkins"],"created_at":"2025-05-07T02:20:56.333Z","updated_at":"2026-04-12T18:07:29.136Z","avatar_url":"https://github.com/jenkinsci.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Jenkins Forensics API Plugin\n\n[![Join the chat at https://gitter.im/jenkinsci/warnings-plugin](https://badges.gitter.im/jenkinsci/warnings-plugin.svg)](https://gitter.im/jenkinsci/warnings-plugin?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\n[![GitHub Actions](https://github.com/jenkinsci/forensics-api-plugin/workflows/GitHub%20CI/badge.svg)](https://github.com/jenkinsci/forensics-api-plugin/actions)\n\nThis Forensics API Jenkins plug-in defines an API to mine and analyze data from a source control repository. \n \nThis API plugin provides the following services:\n- **Blames**: Shows what revision and author last modified a specified set of lines of a file. This information can be \nused to track the original commit that introduced a piece of code. \n- **File statistics**: Incrementally collects global commit statistics for all repository files in the style of Code as a Crime Scene \\[Adam Tornhill, November 2013\\]. \nThis includes:\n  - commits count\n  - different authors count\n  - creation time\n  - last modification time\n  - lines of code (from the commit details)\n  - code churn (changed lines since created)\n- **Commit tracking**: Tracks all new commits that are part of a build. Using this information plugins can search for \n builds that contain a specific commit. \n- **Commit statistics**: Collects commit statistics for all new commits in a build or in a series of builds (e.g. for \nall commits of a pull request). This includes: \n  - commits count\n  - changed files count\n  - added and deleted lines \n- **Reference build**: Several plugins that report build statistics (test results, code coverage, metrics, static \nanalysis warnings) typically show their reports in two different ways: either as absolute report \n(e.g., total number of tests or warnings, overall code coverage) or as relative delta report (e.g., additional tests,\nincreased or decreased coverage, new or fixed warnings). In order to compute a relative delta report a plugin needs \nto carefully select the other build to compare the current results to (a so called *reference build*). \nFor simple Jenkins jobs that build the main branch of an SCM the reference build will be selected from one of the \nprevious builds of the same job. For more complex branch source projects (i.e., projects that build several branches \nand pull requests in a connected job hierarchy) it makes more sense to select a reference build from a job \nthat builds the actual target branch (i.e., the branch the current changes will be merged into). Here one typically is\ninterested what changed in a branch or pull request with respect to the main branch (or any other \ntarget branch): e.g., how will the code coverage change if the team merges the changes. Selecting the correct reference\nbuild is not that easy, since the main branch of a project will evolve more frequently than a specific feature or bugfix\nbranch.    \n- **Repository Browser**: Provides a [RepositoryBrowser](https://javadoc.jenkins.io/hudson/scm/RepositoryBrowser.html) \n  for commits. Since the original Jenkins interface has no API to generate links to simple\n  commits, this decorator adds such a functionality. Note that this API does not only obtain such links, it also\n  renders these links as HTML `a` tags.\n\n## Implementations\n\n[Jenkins Git Forensics Plugin](https://github.com/jenkinsci/git-forensics-plugin) is a plugin that implements the \ncorresponding extension points for Git. Other version control systems are not yet supported.  \n\n## User documentation\n\nCurrently this API is only implemented by the \n[Jenkins Git Forensics Plugin](https://github.com/jenkinsci/git-forensics-plugin)\nso please refer to the [documentation](https://github.com/jenkinsci/git-forensics-plugin/blob/master/README.md)\nthere on how to use the features. \n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjenkinsci%2Fforensics-api-plugin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjenkinsci%2Fforensics-api-plugin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjenkinsci%2Fforensics-api-plugin/lists"}