Giter Site home page Giter Site logo

medianick / forensics-api-plugin Goto Github PK

View Code? Open in Web Editor NEW

This project forked from jenkinsci/forensics-api-plugin

0.0 0.0 0.0 4.18 MB

Jenkins plug-in that defines an API to mine and analyze data from a source control repository

License: MIT License

Shell 0.38% Java 99.48% CSS 0.03% HTML 0.11%

forensics-api-plugin's Introduction

Jenkins Forensics API Plugin

Join the chat at https://gitter.im/jenkinsci/warnings-plugin Jenkins GitHub Actions Codecov

This Forensics API Jenkins plug-in defines an API to mine and analyze data from a source control repository.

This API plugin provides the following services:

  • Blames: Shows what revision and author last modified a specified set of lines of a file. This information can be used to track the original commit that introduced a piece of code.
  • File statistics: Incrementally collects global commit statistics for all repository files in the style of Code as a Crime Scene [Adam Tornhill, November 2013]. This includes:
    • commits count
    • different authors count
    • creation time
    • last modification time
    • lines of code (from the commit details)
    • code churn (changed lines since created)
  • Commit tracking: Tracks all new commits that are part of a build. Using this information plugins can search for builds that contain a specific commit.
  • Commit statistics: Collects commit statistics for all new commits in a build or in a series of builds (e.g. for all commits of a pull request). This includes:
    • commits count
    • changed files count
    • added and deleted lines
  • Reference build: Several plugins that report build statistics (test results, code coverage, metrics, static analysis warnings) typically show their reports in two different ways: either as absolute report (e.g., total number of tests or warnings, overall code coverage) or as relative delta report (e.g., additional tests, increased or decreased coverage, new or fixed warnings). In order to compute a relative delta report a plugin needs to carefully select the other build to compare the current results to (a so called reference build). For simple Jenkins jobs that build the main branch of an SCM the reference build will be selected from one of the previous builds of the same job. For more complex branch source projects (i.e., projects that build several branches and pull requests in a connected job hierarchy) it makes more sense to select a reference build from a job that builds the actual target branch (i.e., the branch the current changes will be merged into). Here one typically is interested what changed in a branch or pull request with respect to the main branch (or any other target branch): e.g., how will the code coverage change if the team merges the changes. Selecting the correct reference build is not that easy, since the main branch of a project will evolve more frequently than a specific feature or bugfix branch.
  • Repository Browser: Provides a RepositoryBrowser for commits. Since the original Jenkins interface has no API to generate links to simple commits, this decorator adds such a functionality. Note that this API does not only obtain such links, it also renders these links as HTML a tags.

Implementations

Jenkins Git Forensics Plugin is a plugin that implements the corresponding extension points for Git. Other version control systems are not yet supported.

User documentation

Currently this API is only implemented by the Jenkins Git Forensics Plugin so please refer to the documentation there on how to use the features.

forensics-api-plugin's People

Contributors

andipabst avatar bleibdirtroy avatar bncbhm avatar dependabot-preview[bot] avatar dependabot[bot] avatar fo-code avatar jwalteri avatar nikolasfunction avatar notmyfault avatar rathaya avatar romanboiarchuk avatar slide avatar tjuri avatar uhafner avatar zbynek avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.