iCR for Python User Guides
iCR for Python 3.5
iCR for Python 3.5
  • Table of contents
    • Introduction
    • Overview
    • Authorizing Access to Your Source Code
      • Authenticating GitHub Access with a Cloud-Based VCS Repository Service
        • Authenticating GitHub Access with a Private VCS Repository
      • Authenticating GitLab Access with a Cloud-Based VCS Repository
        • Authenticating GitLab Access with a Private VCS Repository
      • Authenticating Bitbucket Access with a Cloud-Based VCS Repository
    • Using the Navigator
      • Connecting to the Navigator
      • Setting your User Password
      • The Navigator top banner
      • The Analysis Engine status
      • Selecting Your Source Code
        • Using a cloud-based VCS
        • Selecting your branch
        • Using a private VCS
        • Using a local project
        • Limiting the files to be analyzed
      • Integrating with your bug tracking system
        • Integrating with Jira - Define Your Project
        • Integrating with Jira - Authorizing Access for iCR
        • Integrating with Jira - Connecting with iCR
    • Using the Analysis Engine
      • Initiating an analysis
      • Monitoring the analysis
      • Interrupting the analysis
    • Reviewing your results
      • Reviewer summary and filters
      • Filter by Directory pane
      • Filter by Category pane
      • Reviewing a fix
      • Accepting a fix
        • Accepting a fix when integrated with your bug system
      • Rejecting a fix
        • Rejecting a fix when integrated with your bug system
      • Undoing a fix
        • Undoing a fix when integrated with your bug system
      • Rejected fix history
      • Providing feedback
      • Applying the fixes
      • Cases needing manual attention
      • Capturing results for printing or sharing
      • Ending a reviewer session
    • When you are complete
    • Appendix – List of supported fixers
    • Appendix – Example Summary Report
    • Appendix - Sample Bug Listing
Powered by GitBook
On this page
  1. Table of contents

Overview

PreviousIntroductionNextAuthorizing Access to Your Source Code

Last updated 1 year ago

The following is a quick overview of how to use iCR for Python. It is assumed that you have your server administrator has installed and started iCR for Python. If you are the administrator, refer to the for details on how to install and configure iCR for Python. It is also assumed that you know the IP address of the host server where your administrator installed iCR for Python.

Using that IP address, connect to the service using a standard browser of your choice.

iCR for Python consists of 3 major components:

  1. The Navigator is the main component with which you interact;

  2. The Analysis Engine analyzes source code and generates fixes;

  3. The Reviewer helps you to review, approve/reject and apply the fixes. Using the Navigator, you will:

  4. Direct the Analysis Engine to scan the source code of your Python project; and

  5. Initiate the Reviewer(s) to examine the generated fixes and accept or reject them.

To understand how each of these steps is executed, let’s first look at how to select and analyze a project. The figure below outlines the steps taken to select the code to be analyzed and initiating the analysis.

  1. Select the repository that you are using to manage your source code. This may be a Version-Control System (VCS) available on the cloud or as an in-house service. iCR for Python supports your choice of GitHub, GitLab and Bitbucket systems.

  2. Navigator connects with the repository and fetches the source code to the server. The Navigator will use OAuth to authenticate with your VCS service. Once connected with the VCS, Navigator will present you with a view of all the available repositories associated with your User ID. You may then clone any repository you wish to examine, and you will have all of the branches available for analysis.

  3. Pick a branch to analyze and simply click on the Analyze button in the Navigator.

  4. Navigator will start the Analysis Engine as a background process. You may monitor the progress from the Navigator in a separate browser tab. For a long running analysis, you may choose to receive a notification and exit iCR. Only one analysis can be run at a time.

  5. The Analysis Engine analyzes the source code and prepares the fixes. You may choose to have the Navigator send you an email notification when the analysis completes and the fixes are ready.

Once a project has been analyzed and fixes generated, they are available for review. The diagram below outlines the steps taken to perform a reviewing session.

  1. Return to the Navigator when analysis is complete to review the fixes. Select any branch that has been analyzed and click on Review button within the Navigator. You may review past results even when the Analysis Engine is currently running on a project.

  2. The Navigator starts the Reviewer component in a separate tab.

  3. The Reviewer allows you to browse all of the fixes and gives you the opportunity to accept or reject various fixes. Any number of your developers can review and approve fixes concurrently. After approving fixes, you can Apply them to your project. If there are fixes that you are not clear about or you think are incorrect, you can let our developers know by filling out a quick feedback report for that particular fix.

  4. The Reviewer creates a temporary branch in your repository with the potential fixes placed there as git commits. This gives you a standard way of choosing when you want to roll these fixes into your project branch(es).

The remainder of this guide will provide you with all the details needed to help you to run iCR for Python on your projects. The first step to do that is to prepare your source code repositories for access by iCR.

iCR for Python employs a suite of scalable deep analysis tools to provide a comprehensive analysis of your program’s flow with emphasis on tracking references across methods. From that analysis, iCR for Python then employs a broad family of what we call Fixers which are focused on common Python programming flaws and coding standards such as the . See the list of .

PEP 8 Style Guide for Python Code
iCR for Python supported fixers
Admin Guide