URL: https://github.com/freeipa/freeipa/pull/463
Author: HonzaCholasta
 Title: #463: pylint_plugins: add forbidden import checker
Action: opened

PR body:
"""
Add new pylint AST checker plugin which implements a check for imports
forbidden in IPA. Which imports are forbidden is configurable in pylintrc.

Provide default forbidden import configuration and disable the check for
existing forbidden imports in our code base.

Supersedes @MartinBasti's PR #462.
"""

To pull the PR as Git branch:
git remote add ghfreeipa https://github.com/freeipa/freeipa
git fetch ghfreeipa pull/463/head:pr463
git checkout pr463





<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">



  <link crossorigin="anonymous" href="https://assets-cdn.github.com/assets/frameworks-70aff62372b4dd20e8b7e3141aa52f2b7fda1b9238a597db09f7dd5bbcff25f6.css"; media="all" rel="stylesheet" />
  <link crossorigin="anonymous" href="https://assets-cdn.github.com/assets/github-0e373bf06af78ffa67fcc21199552cb7946a49bf88cbc2e1084257963fc45d1f.css"; media="all" rel="stylesheet" />
  
  
  <link crossorigin="anonymous" href="https://assets-cdn.github.com/assets/site-fef5731cce75ca5e750fa22524df18fd064fb4c10df83448ed7db5797e3f3303.css"; media="all" rel="stylesheet" />
  

  <meta name="viewport" content="width=device-width">
  
  <title>pylint_plugins: add forbidden import checker by HonzaCholasta · Pull Request #463 · freeipa/freeipa · GitHub</title>
  <link rel="search" type="application/opensearchdescription+xml" href="/opensearch.xml" title="GitHub">
  <link rel="fluid-icon" href="https://github.com/fluidicon.png"; title="GitHub">
  <meta property="fb:app_id" content="1401488693436528">


  <link rel="assets" href="https://assets-cdn.github.com/";>
  
  <meta name="pjax-timeout" content="1000">
  
  <meta name="request-id" content="23FF:7801:511EC41:823C0E3:58A2D09E" data-pjax-transient>
  

  <meta name="selected-link" value="repo_pulls" data-pjax-transient>

  <meta name="google-site-verification" content="KT5gs8h0wvaagLKAVWq8bbeNwnZZK1r1XQysX3xurLU">
<meta name="google-site-verification" content="ZzhVyEFwb7w3e0-uOTltm8Jsck2F5StVihD0exw2fsA">
    <meta name="google-analytics" content="UA-3769691-2">

<meta content="collector.githubapp.com" name="octolytics-host" /><meta content="github" name="octolytics-app-id" /><meta content="https://collector.githubapp.com/github-external/browser_event"; name="octolytics-event-url" /><meta content="23FF:7801:511EC41:823C0E3:58A2D09E" name="octolytics-dimension-request_id" />
<meta content="/&lt;user-name&gt;/&lt;repo-name&gt;/pull_requests/show" data-pjax-transient="true" name="analytics-location" />



  <meta class="js-ga-set" name="dimension1" content="Logged Out">



      <meta name="hostname" content="github.com">
  <meta name="user-login" content="">

      <meta name="expected-hostname" content="github.com">
    <meta name="js-proxy-site-detection-payload" content="MmVmYjNkYjc2MWE2MTZlZWFhMTVhZmJlMjE0ODVjYWQ5NTRlOGRhZmFjYjA0NjA5NDg1YmM3ODdmYjkwOGYzY3x7InJlbW90ZV9hZGRyZXNzIjoiMjEzLjE3NS4zNy4xMCIsInJlcXVlc3RfaWQiOiIyM0ZGOjc4MDE6NTExRUM0MTo4MjNDMEUzOjU4QTJEMDlFIiwidGltZXN0YW1wIjoxNDg3MDY1MjQ2LCJob3N0IjoiZ2l0aHViLmNvbSJ9">


  <meta name="html-safe-nonce" content="efce6e231ec265ee0d77942cbeb34111fc484afd">

  <meta http-equiv="x-pjax-version" content="9be9fb9e6591e44c1ab14c0185df07b3">
  

      <style type="text/css" media="screen">
    span.labelstyle-d93f0b, .linked-labelstyle-d93f0b {  background-color: #d93f0b !important;  color: #fff !important;}.labelstyle-d93f0b.selected {  background-color: #d93f0b !important;  color: #fff !important;}.label-select-menu .labelstyle-d93f0b.selected {  background:rgba(217, 63, 11, 0.12) !important;  color: #982c07 !important;}

span.labelstyle-1d76db, .linked-labelstyle-1d76db {  background-color: #1d76db !important;  color: #fff !important;}.labelstyle-1d76db.selected {  background-color: #1d76db !important;  color: #fff !important;}.label-select-menu .labelstyle-1d76db.selected {  background:rgba(29, 118, 219, 0.12) !important;  color: #145299 !important;}

span.labelstyle-0e8a16, .linked-labelstyle-0e8a16 {  background-color: #0e8a16 !important;  color: #fff !important;}.labelstyle-0e8a16.selected {  background-color: #0e8a16 !important;  color: #fff !important;}.label-select-menu .labelstyle-0e8a16.selected {  background:rgba(14, 138, 22, 0.12) !important;  color: #0f9918 !important;}
  </style>

  <meta name="description" content="freeipa - Mirror of FreeIPA, an integrated security information management solution">
  <meta name="go-import" content="github.com/freeipa/freeipa git https://github.com/freeipa/freeipa.git";>

  <meta content="10979201" name="octolytics-dimension-user_id" /><meta content="freeipa" name="octolytics-dimension-user_login" /><meta content="4340318" name="octolytics-dimension-repository_id" /><meta content="freeipa/freeipa" name="octolytics-dimension-repository_nwo" /><meta content="true" name="octolytics-dimension-repository_public" /><meta content="false" name="octolytics-dimension-repository_is_fork" /><meta content="4340318" name="octolytics-dimension-repository_network_root_id" /><meta content="freeipa/freeipa" name="octolytics-dimension-repository_network_root_nwo" />
  <link href="https://github.com/freeipa/freeipa/commits/master-pylint-forbidden-imports.atom"; rel="alternate" title="Recent Commits to freeipa:master-pylint-forbidden-imports" type="application/atom+xml">




  <meta name="browser-stats-url" content="https://api.github.com/_private/browser/stats";>

  <meta name="browser-errors-url" content="https://api.github.com/_private/browser/errors";>

  <link rel="mask-icon" href="https://assets-cdn.github.com/pinned-octocat.svg"; color="#000000">
  <link rel="icon" type="image/x-icon" href="https://assets-cdn.github.com/favicon.ico";>

<meta name="theme-color" content="#1e2327">


  </head>

  <body class="logged-out env-production vis-public">
    

  <div id="js-pjax-loader-bar" class="pjax-loader-bar"><div class="progress"></div></div>
  <a href="#start-of-content" tabindex="1" class="accessibility-aid js-skip-to-content">Skip to content</a>

  
  
  



        <header class="site-header js-details-container Details alt-body-font" role="banner">
  <div class="container-responsive">
    <a class="header-logo-invertocat" href="https://github.com/"; aria-label="Homepage" data-ga-click="(Logged out) Header, go to homepage, icon:logo-wordmark">
      <svg aria-hidden="true" class="octicon octicon-mark-github" height="32" version="1.1" viewBox="0 0 16 16" width="32"><path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0 0 16 8c0-4.42-3.58-8-8-8z"/></svg>
    </a>

    <button class="btn-link float-right site-header-toggle js-details-target" type="button" aria-label="Toggle navigation">
      <svg aria-hidden="true" class="octicon octicon-three-bars" height="24" version="1.1" viewBox="0 0 12 16" width="18"><path fill-rule="evenodd" d="M11.41 9H.59C0 9 0 8.59 0 8c0-.59 0-1 .59-1H11.4c.59 0 .59.41.59 1 0 .59 0 1-.59 1h.01zm0-4H.59C0 5 0 4.59 0 4c0-.59 0-1 .59-1H11.4c.59 0 .59.41.59 1 0 .59 0 1-.59 1h.01zM.59 11H11.4c.59 0 .59.41.59 1 0 .59 0 1-.59 1H.59C0 13 0 12.59 0 12c0-.59 0-1 .59-1z"/></svg>
    </button>

    <div class="site-header-menu">
      <nav class="site-header-nav site-header-nav-main">
        <a href="/personal" class="js-selected-navigation-item nav-item nav-item-personal" data-ga-click="Header, click, Nav menu - item:personal" data-selected-links="/personal /personal">
          Personal
</a>        <a href="/open-source" class="js-selected-navigation-item nav-item nav-item-opensource" data-ga-click="Header, click, Nav menu - item:opensource" data-selected-links="/open-source /open-source/stories /open-source">
          Open source
</a>        <a href="/business" class="js-selected-navigation-item nav-item nav-item-business" data-ga-click="Header, click, Nav menu - item:business" data-selected-links="/business /business/partners /business/features /business/customers /business/why-github-for-work /business/security /business">
          Business
</a>        <a href="/explore" class="js-selected-navigation-item nav-item nav-item-explore" data-ga-click="Header, click, Nav menu - item:explore" data-selected-links="/explore /trending /trending/developers /integrations /integrations/feature/code /integrations/feature/collaborate /integrations/feature/ship /showcases /explore">
          Explore
</a>      </nav>

      <div class="site-header-actions">
            <a class="btn btn-primary site-header-actions-btn" href="/join?source=header-repo" data-ga-click="(Logged out) Header, clicked Sign up, text:sign-up">Sign up</a>
          <a class="btn site-header-actions-btn mr-1" href="/login?return_to=%2Ffreeipa%2Ffreeipa%2Fpull%2F463" data-ga-click="(Logged out) Header, clicked Sign in, text:sign-in">Sign in</a>
      </div>

        <nav class="site-header-nav site-header-nav-secondary mr-md-3">
          <a class="nav-item" href="/pricing">Pricing</a>
          <a class="nav-item" href="/blog">Blog</a>
          <a class="nav-item" href="https://help.github.com";>Support</a>
          <a class="nav-item header-search-link" href="https://github.com/search";>Search GitHub</a>
              <div class="header-search scoped-search site-scoped-search js-site-search" role="search">
  <!-- '"` --><!-- </textarea></xmp> --></option></form><form accept-charset="UTF-8" action="/freeipa/freeipa/search" class="js-site-search-form" data-scoped-search-url="/freeipa/freeipa/search" data-unscoped-search-url="/search" method="get"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="&#x2713;" /></div>
    <label class="form-control header-search-wrapper js-chromeless-input-container">
      <div class="header-search-scope">This repository</div>
      <input type="text"
        class="form-control header-search-input js-site-search-focus js-site-search-field is-clearable"
        data-hotkey="s"
        name="q"
        placeholder="Search"
        aria-label="Search this repository"
        data-unscoped-placeholder="Search GitHub"
        data-scoped-placeholder="Search"
        autocapitalize="off">
    </label>
</form></div>

        </nav>
    </div>
  </div>
</header>



  <div id="start-of-content" class="accessibility-aid"></div>

    <div id="js-flash-container">
</div>



  <div role="main">
      <div itemscope itemtype="http://schema.org/SoftwareSourceCode";>
    <div id="js-repo-pjax-container" data-pjax-container>
      



<div class="pagehead repohead instapaper_ignore readability-menu experiment-repo-nav">
  <div class="container repohead-details-container">

    

<ul class="pagehead-actions">

  <li>
      <a href="/login?return_to=%2Ffreeipa%2Ffreeipa"
    class="btn btn-sm btn-with-count tooltipped tooltipped-n"
    aria-label="You must be signed in to watch a repository" rel="nofollow">
    <svg aria-hidden="true" class="octicon octicon-eye" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M8.06 2C3 2 0 8 0 8s3 6 8.06 6C13 14 16 8 16 8s-3-6-7.94-6zM8 12c-2.2 0-4-1.78-4-4 0-2.2 1.8-4 4-4 2.22 0 4 1.8 4 4 0 2.22-1.78 4-4 4zm2-4c0 1.11-.89 2-2 2-1.11 0-2-.89-2-2 0-1.11.89-2 2-2 1.11 0 2 .89 2 2z"/></svg>
    Watch
  </a>
  <a class="social-count" href="/freeipa/freeipa/watchers"
     aria-label="18 users are watching this repository">
    18
  </a>

  </li>

  <li>
      <a href="/login?return_to=%2Ffreeipa%2Ffreeipa"
    class="btn btn-sm btn-with-count tooltipped tooltipped-n"
    aria-label="You must be signed in to star a repository" rel="nofollow">
    <svg aria-hidden="true" class="octicon octicon-star" height="16" version="1.1" viewBox="0 0 14 16" width="14"><path fill-rule="evenodd" d="M14 6l-4.9-.64L7 1 4.9 5.36 0 6l3.6 3.26L2.67 14 7 11.67 11.33 14l-.93-4.74z"/></svg>
    Star
  </a>

    <a class="social-count js-social-count" href="/freeipa/freeipa/stargazers"
      aria-label="59 users starred this repository">
      59
    </a>

  </li>

  <li>
      <a href="/login?return_to=%2Ffreeipa%2Ffreeipa"
        class="btn btn-sm btn-with-count tooltipped tooltipped-n"
        aria-label="You must be signed in to fork a repository" rel="nofollow">
        <svg aria-hidden="true" class="octicon octicon-repo-forked" height="16" version="1.1" viewBox="0 0 10 16" width="10"><path fill-rule="evenodd" d="M8 1a1.993 1.993 0 0 0-1 3.72V6L5 8 3 6V4.72A1.993 1.993 0 0 0 2 1a1.993 1.993 0 0 0-1 3.72V6.5l3 3v1.78A1.993 1.993 0 0 0 5 15a1.993 1.993 0 0 0 1-3.72V9.5l3-3V4.72A1.993 1.993 0 0 0 8 1zM2 4.2C1.34 4.2.8 3.65.8 3c0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zm3 10c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zm3-10c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2z"/></svg>
        Fork
      </a>

    <a href="/freeipa/freeipa/network" class="social-count"
       aria-label="64 users forked this repository">
      64
    </a>
  </li>
</ul>

    <h1 class="public ">
  <svg aria-hidden="true" class="octicon octicon-repo" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path fill-rule="evenodd" d="M4 9H3V8h1v1zm0-3H3v1h1V6zm0-2H3v1h1V4zm0-2H3v1h1V2zm8-1v12c0 .55-.45 1-1 1H6v2l-1.5-1.5L3 16v-2H1c-.55 0-1-.45-1-1V1c0-.55.45-1 1-1h10c.55 0 1 .45 1 1zm-1 10H1v2h2v-1h3v1h5v-2zm0-10H2v9h9V1z"/></svg>
  <span class="author" itemprop="author"><a href="/freeipa" class="url fn" rel="author">freeipa</a></span><!--
--><span class="path-divider">/</span><!--
--><strong itemprop="name"><a href="/freeipa/freeipa" data-pjax="#js-repo-pjax-container">freeipa</a></strong>

</h1>

  </div>
  <div class="container">
    
<nav class="reponav js-repo-nav js-sidenav-container-pjax"
     itemscope
     itemtype="http://schema.org/BreadcrumbList";
     role="navigation"
     data-pjax="#js-repo-pjax-container">

  <span itemscope itemtype="http://schema.org/ListItem"; itemprop="itemListElement">
    <a href="/freeipa/freeipa" class="js-selected-navigation-item reponav-item" data-hotkey="g c" data-selected-links="repo_source repo_downloads repo_commits repo_releases repo_tags repo_branches /freeipa/freeipa" itemprop="url">
      <svg aria-hidden="true" class="octicon octicon-code" height="16" version="1.1" viewBox="0 0 14 16" width="14"><path fill-rule="evenodd" d="M9.5 3L8 4.5 11.5 8 8 11.5 9.5 13 14 8 9.5 3zm-5 0L0 8l4.5 5L6 11.5 2.5 8 6 4.5 4.5 3z"/></svg>
      <span itemprop="name">Code</span>
      <meta itemprop="position" content="1">
</a>  </span>


  <span itemscope itemtype="http://schema.org/ListItem"; itemprop="itemListElement">
    <a href="/freeipa/freeipa/pulls" class="js-selected-navigation-item selected reponav-item" data-hotkey="g p" data-selected-links="repo_pulls /freeipa/freeipa/pulls" itemprop="url">
      <svg aria-hidden="true" class="octicon octicon-git-pull-request" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path fill-rule="evenodd" d="M11 11.28V5c-.03-.78-.34-1.47-.94-2.06C9.46 2.35 8.78 2.03 8 2H7V0L4 3l3 3V4h1c.27.02.48.11.69.31.21.2.3.42.31.69v6.28A1.993 1.993 0 0 0 10 15a1.993 1.993 0 0 0 1-3.72zm-1 2.92c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zM4 3c0-1.11-.89-2-2-2a1.993 1.993 0 0 0-1 3.72v6.56A1.993 1.993 0 0 0 2 15a1.993 1.993 0 0 0 1-3.72V4.72c.59-.34 1-.98 1-1.72zm-.8 10c0 .66-.55 1.2-1.2 1.2-.65 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2zM2 4.2C1.34 4.2.8 3.65.8 3c0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2z"/></svg>
      <span itemprop="name">Pull requests</span>
      <span class="counter">52</span>
      <meta itemprop="position" content="3">
</a>  </span>

  <a href="/freeipa/freeipa/projects" class="js-selected-navigation-item reponav-item" data-selected-links="repo_projects new_repo_project repo_project /freeipa/freeipa/projects">
    <svg aria-hidden="true" class="octicon octicon-project" height="16" version="1.1" viewBox="0 0 15 16" width="15"><path fill-rule="evenodd" d="M10 12h3V2h-3v10zm-4-2h3V2H6v8zm-4 4h3V2H2v12zm-1 1h13V1H1v14zM14 0H1a1 1 0 0 0-1 1v14a1 1 0 0 0 1 1h13a1 1 0 0 0 1-1V1a1 1 0 0 0-1-1z"/></svg>
    Projects
    <span class="counter">0</span>
</a>


  <a href="/freeipa/freeipa/pulse" class="js-selected-navigation-item reponav-item" data-selected-links="pulse /freeipa/freeipa/pulse">
    <svg aria-hidden="true" class="octicon octicon-pulse" height="16" version="1.1" viewBox="0 0 14 16" width="14"><path fill-rule="evenodd" d="M11.5 8L8.8 5.4 6.6 8.5 5.5 1.6 2.38 8H0v2h3.6l.9-1.8.9 5.4L9 8.5l1.6 1.5H14V8z"/></svg>
    Pulse
</a>
  <a href="/freeipa/freeipa/graphs" class="js-selected-navigation-item reponav-item" data-selected-links="repo_graphs repo_contributors /freeipa/freeipa/graphs">
    <svg aria-hidden="true" class="octicon octicon-graph" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M16 14v1H0V0h1v14h15zM5 13H3V8h2v5zm4 0H7V3h2v10zm4 0h-2V6h2v7z"/></svg>
    Graphs
</a>

</nav>

  </div>
</div>

<div class="container new-discussion-timeline experiment-repo-nav">
  <div class="repository-content">

    

<!-- base sha1: &quot;08c71703a44d8aec308781351c3a9dd4a4ba94a7&quot; -->
<!-- head sha1: &quot;043e6b8e3611d21bf72058be75794532d7807dca&quot; -->


<div class="issues-listing" data-pjax>
  
  <div class="clearfix js-issues-results">
    
  <div
    id="partial-discussion-header"
    class="gh-header js-details-container Details js-socket-channel js-updatable-content pull request"
    data-channel="tenant:1:pull_request:106067246"
    data-url="/freeipa/freeipa/pull/463/show_partial?partial=pull_requests%2Ftitle">

  <div class="gh-header-show gh-header-no-access">
      <div class="gh-header-actions">
      </div>

    <h1 class="gh-header-title">
      <span class="js-issue-title">
        pylint_plugins: add forbidden import checker
      </span>
      <span class="gh-header-number">#463</span>
    </h1>
  </div>


  <div class="TableObject gh-header-meta">
    <div class="TableObject-item">
        <div class="state state-open">
          <svg aria-hidden="true" class="octicon octicon-git-pull-request" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path fill-rule="evenodd" d="M11 11.28V5c-.03-.78-.34-1.47-.94-2.06C9.46 2.35 8.78 2.03 8 2H7V0L4 3l3 3V4h1c.27.02.48.11.69.31.21.2.3.42.31.69v6.28A1.993 1.993 0 0 0 10 15a1.993 1.993 0 0 0 1-3.72zm-1 2.92c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zM4 3c0-1.11-.89-2-2-2a1.993 1.993 0 0 0-1 3.72v6.56A1.993 1.993 0 0 0 2 15a1.993 1.993 0 0 0 1-3.72V4.72c.59-.34 1-.98 1-1.72zm-.8 10c0 .66-.55 1.2-1.2 1.2-.65 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2zM2 4.2C1.34 4.2.8 3.65.8 3c0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2z"/></svg>
          Open
        </div>
    </div>
    <div class="TableObject-item TableObject-item--primary">
          <a href="/HonzaCholasta" class="author pull-header-username css-truncate css-truncate-target expandable">
    HonzaCholasta
  </a>
   wants to merge 1 commit into



  <span class="commit-ref current-branch css-truncate user-select-contain expandable base-ref" title="freeipa/freeipa:master"><span class="css-truncate-target user">freeipa</span>:<span class="css-truncate-target">master</span></span>

  <div class="commit-ref-dropdown">
    <div class="select-menu js-menu-container js-select-menu commitish-suggester js-load-contents" data-contents-url="/freeipa/freeipa/pull/463/show_partial?partial=pull_requests%2Fdescription_branches_dropdown">
      <button class="btn btn-sm select-menu-button js-menu-target branch" type="button" aria-label="Choose a base branch" aria-haspopup="true">
        <i>base:</i>
        <span class="js-select-button css-truncate css-truncate-target" title="base: master">master</span>
      </button>
      <div class="select-menu-modal-holder js-menu-content js-navigation-container"
        aria-hidden="true">
        <div class="select-menu-modal">
          <div class="js-select-menu-deferred-content"></div>
          <div class="select-menu-loading-overlay anim-pulse">
            <svg aria-hidden="true" class="octicon octicon-octoface" height="32" version="1.1" viewBox="0 0 16 16" width="32"><path fill-rule="evenodd" d="M14.7 5.34c.13-.32.55-1.59-.13-3.31 0 0-1.05-.33-3.44 1.3-1-.28-2.07-.32-3.13-.32s-2.13.04-3.13.32c-2.39-1.64-3.44-1.3-3.44-1.3-.68 1.72-.26 2.99-.13 3.31C.49 6.21 0 7.33 0 8.69 0 13.84 3.33 15 7.98 15S16 13.84 16 8.69c0-1.36-.49-2.48-1.3-3.35zM8 14.02c-3.3 0-5.98-.15-5.98-3.35 0-.76.38-1.48 1.02-2.07 1.07-.98 2.9-.46 4.96-.46 2.07 0 3.88-.52 4.96.46.65.59 1.02 1.3 1.02 2.07 0 3.19-2.68 3.35-5.98 3.35zM5.49 9.01c-.66 0-1.2.8-1.2 1.78s.54 1.79 1.2 1.79c.66 0 1.2-.8 1.2-1.79s-.54-1.78-1.2-1.78zm5.02 0c-.66 0-1.2.79-1.2 1.78s.54 1.79 1.2 1.79c.66 0 1.2-.8 1.2-1.79s-.53-1.78-1.2-1.78z"/></svg>
          </div>
        </div>
      </div>
    </div>
  </div>

from

<span class="commit-ref current-branch css-truncate user-select-contain expandable head-ref" title="HonzaCholasta/freeipa:master-pylint-forbidden-imports"><span class="css-truncate-target user">HonzaCholasta</span>:<span class="css-truncate-target">master-pylint-forbidden-imports</span></span>



    </div>
  </div>
</div>


      
<div class="tabnav tabnav-pr">
    <div class="tabnav-extra float-right">
      <span class="diffstat" id="diffstat">
        <span class="text-green">
          +126
        </span>
        <span class="text-red">
          −11
        </span>
        <span class="tooltipped tooltipped-s" aria-label="137 lines changed">
          <span class="block-diff-added"></span><span class="block-diff-added"></span><span class="block-diff-added"></span><span class="block-diff-added"></span><span class="block-diff-neutral"></span>
        </span>
      </span>
    </div>

  <nav class="tabnav-tabs">
    <a href="/freeipa/freeipa/pull/463" class="tabnav-tab selected js-pjax-history-navigate">
      <svg aria-hidden="true" class="octicon octicon-comment-discussion" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M15 1H6c-.55 0-1 .45-1 1v2H1c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h1v3l3-3h4c.55 0 1-.45 1-1V9h1l3 3V9h1c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zM9 11H4.5L3 12.5V11H1V5h4v3c0 .55.45 1 1 1h3v2zm6-3h-2v1.5L11.5 8H6V2h9v6z"/></svg>
      Conversation

      <span id="conversation_tab_counter" class="counter">
        0
      </span>
    </a>

    <a href="/freeipa/freeipa/pull/463/commits" class="tabnav-tab  js-pjax-history-navigate">
      <svg aria-hidden="true" class="octicon octicon-git-commit" height="16" version="1.1" viewBox="0 0 14 16" width="14"><path fill-rule="evenodd" d="M10.86 7c-.45-1.72-2-3-3.86-3-1.86 0-3.41 1.28-3.86 3H0v2h3.14c.45 1.72 2 3 3.86 3 1.86 0 3.41-1.28 3.86-3H14V7h-3.14zM7 10.2c-1.22 0-2.2-.98-2.2-2.2 0-1.22.98-2.2 2.2-2.2 1.22 0 2.2.98 2.2 2.2 0 1.22-.98 2.2-2.2 2.2z"/></svg>
      Commits

      <span id="commits_tab_counter" class="counter">
        1
      </span>
    </a>

      <link rel="pjax-prefetch" href="/freeipa/freeipa/pull/463/files">
    <a href="/freeipa/freeipa/pull/463/files" class="tabnav-tab  js-pjax-history-navigate">
      <svg aria-hidden="true" class="octicon octicon-diff" height="16" version="1.1" viewBox="0 0 13 16" width="13"><path fill-rule="evenodd" d="M6 7h2v1H6v2H5V8H3V7h2V5h1v2zm-3 6h5v-1H3v1zM7.5 2L11 5.5V15c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V3c0-.55.45-1 1-1h6.5zM10 6L7 3H1v12h9V6zM8.5 0H3v1h5l4 4v8h1V4.5L8.5 0z"/></svg>
      Files changed

        <span id="files_tab_counter" class="counter">
            13
        </span>
    </a>
  </nav>
</div>



    <div id="discussion_bucket" class="clearfix pull-request-tab-content is-visible">
      <div class="discussion-sidebar">
  <div id="partial-discussion-sidebar"
  class="js-socket-channel js-updatable-content"
  data-channel="tenant:1:pull_request:106067246"
  data-url="/freeipa/freeipa/issues/463/show_partial?partial=issues%2Fsidebar">

    <div class="discussion-sidebar-item sidebar-assignee js-discussion-sidebar-item position-relative">
  <!-- '"` --><!-- </textarea></xmp> --></option></form><form accept-charset="UTF-8" action="/freeipa/freeipa/pull/463/review-requests?pr_global_id=MDExOlB1bGxSZXF1ZXN0MTA2MDY3MjQ2" class="js-issue-sidebar-form" data-remote="true" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="&#x2713;" /><input name="authenticity_token" type="hidden" value="FuMMarmk1svc7dne1JQaJCUVR3QF/QOpF0c0d1kAFHcHCRga2oeTyQ/van/6/3Ec/ShOF3EsV669CQZGWapYHg==" /></div>
    
  <h3 class="discussion-sidebar-heading">
    Reviewers
  </h3>


    <span class="css-truncate">
    No reviews
</span>

</form></div>

  <div class="discussion-sidebar-item sidebar-assignee js-discussion-sidebar-item">
  <!-- '"` --><!-- </textarea></xmp> --></option></form><form accept-charset="UTF-8" action="/freeipa/freeipa/issues/463?partial=issues%2Fsidebar%2Fshow%2Fassignees" class="js-issue-sidebar-form" data-remote="true" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="&#x2713;" /><input name="_method" type="hidden" value="put" /><input name="authenticity_token" type="hidden" value="N/IdPpv+VCZY8RJ6XUWHiytzrQYhX1KFttf88aTbV/AyIe+SeNvB+ueJQe9Zqxu0PytgQ/0ogEGEzu/1xtOi/A==" /></div>
    
  <h3 class="discussion-sidebar-heading">
    Assignees
  </h3>


    <span class="css-truncate">
    No one assigned
</span>

</form></div>

  <div class="discussion-sidebar-item sidebar-labels js-discussion-sidebar-item">
  <!-- '"` --><!-- </textarea></xmp> --></option></form><form accept-charset="UTF-8" action="/freeipa/freeipa/issues/463?partial=issues%2Fsidebar%2Fshow%2Flabels" class="js-issue-sidebar-form" data-remote="true" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="&#x2713;" /><input name="_method" type="hidden" value="put" /><input name="authenticity_token" type="hidden" value="+DXNtF0PzvNbojsOPphO+7KO4jjME2OKfwSmheBkYQn95j8YvipbL+TaaJs6dtLEptYvfRBksU5NHbWBgmyUBQ==" /></div>
      
  <h3 class="discussion-sidebar-heading">
    Labels
  </h3>


    <div class="labels css-truncate">
    None yet
</div>

</form></div>

  <div class="discussion-sidebar-item js-discussion-sidebar-item">
  
  <h3 class="discussion-sidebar-heading">
    Projects
  </h3>


  <span class="css-truncate">
    None yet
</span>

</div>

  <div class="discussion-sidebar-item sidebar-milestone js-discussion-sidebar-item">
  <!-- '"` --><!-- </textarea></xmp> --></option></form><form accept-charset="UTF-8" action="/freeipa/freeipa/issues/463/set_milestone?partial=issues%2Fsidebar%2Fshow%2Fmilestone" class="js-issue-sidebar-form" data-remote="true" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="&#x2713;" /><input name="_method" type="hidden" value="put" /><input name="authenticity_token" type="hidden" value="KbpH7EoXFZd3a7ItwrVQ6BbJ39f1JWJVKh9BpImwutgGniB0fzQ5bX8UUxrXAGUYDzox5Ekr7HPECuqVi85Xow==" /></div>
    
  <h3 class="discussion-sidebar-heading">
    Milestone
  </h3>


      No milestone

</form></div>

  
  <div id="partial-users-participants" class="discussion-sidebar-item">
  <div class="participation">

    <h3 class="discussion-sidebar-heading">
      1 participant
    </h3>
    <div class="participation-avatars">
        <a class="participant-avatar tooltipped tooltipped-n" aria-label="HonzaCholasta" href="/HonzaCholasta"><img alt="@HonzaCholasta" class="avatar" height="26" src="https://avatars0.githubusercontent.com/u/13571106?v=3&amp;s=52"; width="26" /> </a>
    </div>
  </div>
</div>


  

</div>


</div>

<div class="discussion-timeline pull-discussion-timeline js-pull-discussion-timeline js-quote-selection-container js-review-state-classes  ">
  <div class="js-discussion js-socket-channel" data-channel="tenant:1:marked-as-read:pull-request:106067246">
    

  <div class="timeline-comment-wrapper js-comment-container">
    <a href="/HonzaCholasta"><img alt="@HonzaCholasta" class="timeline-comment-avatar" height="44" src="https://avatars3.githubusercontent.com/u/13571106?v=3&amp;s=88"; width="44" /></a>
    

<div id="issue-207463819"
     class="comment previewable-edit timeline-comment js-comment js-task-list-container
                    
                      "
     data-body-version="1de36e6dc95fefef2b7268796f00d268">

  
<div class="timeline-comment-header ">

  <div class="timeline-comment-actions">


  </div>

    
    <span class="timeline-comment-label text-bold tooltipped tooltipped-multiline tooltipped-s" aria-label="This user is a member of the FreeIPA organization.">
      Member
    </span>



  <div class="timeline-comment-header-text">

    <strong>
      <a href="/HonzaCholasta" class="author">HonzaCholasta</a> 
    </strong>

    commented

      <a href="#issue-207463819" class="timestamp"><relative-time datetime="2017-02-14T09:40:44Z">Feb 14, 2017</relative-time></a>

  </div>
</div>


  <div class="edit-comment-hide">
    <table class="d-block">
      <tbody class="d-block">
        <tr class="d-block">
          <td class="d-block comment-body markdown-body markdown-format js-comment-body">
              <p>Add new pylint AST checker plugin which implements a check for imports<br>
forbidden in IPA. Which imports are forbidden is configurable in pylintrc.</p>
<p>Provide default forbidden import configuration and disable the check for<br>
existing forbidden imports in our code base.</p>
<p>Supersedes <a href="https://github.com/MartinBasti"; class="user-mention">@MartinBasti</a>'s PR <a href="https://github.com/freeipa/freeipa/pull/462"; class="issue-link js-issue-link" data-url="https://github.com/freeipa/freeipa/issues/462"; data-id="207381474" data-error-text="Failed to load issue title" data-permission-text="Issue title is private">#462</a>.</p>
          </td>
        </tr>
      </tbody>
    </table>

      

<div class="comment-reactions  js-reactions-container "

    >
</div>

  </div>

</div>

  </div>
  
<div class="discussion-item discussion-commits" id="commits-pushed-043e6b8">
  <div class="discussion-item-body">
    <table class="timeline-commits">
        
<tr class="commit js-details-container Details js-socket-channel js-updatable-content" data-channel="tenant:1:repo:4340318:commit:043e6b8e3611d21bf72058be75794532d7807dca" data-url="/freeipa/freeipa/pull/463/commit/043e6b8e3611d21bf72058be75794532d7807dca/show_partial?partial=commit%2Fpull_condensed">
  <td class="commit-icon">
    <svg aria-hidden="true" class="octicon octicon-git-commit" height="16" version="1.1" viewBox="0 0 14 16" width="14"><path fill-rule="evenodd" d="M10.86 7c-.45-1.72-2-3-3.86-3-1.86 0-3.41 1.28-3.86 3H0v2h3.14c.45 1.72 2 3 3.86 3 1.86 0 3.41-1.28 3.86-3H14V7h-3.14zM7 10.2c-1.22 0-2.2-.98-2.2-2.2 0-1.22.98-2.2 2.2-2.2 1.22 0 2.2.98 2.2 2.2 0 1.22-.98 2.2-2.2 2.2z"/></svg>
  </td>

  <td class="commit-gravatar no-wrap text-right">
      <img alt="" class="avatar avatar-small" data-canonical-src="https://1.gravatar.com/avatar/f9c2df36499f35e0589d41834784559d?d=https%3A%2F%2Fassets-cdn.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png&amp;r=x&amp;s=140"; height="16" src="https://camo.githubusercontent.com/2af1fce485a85dc47f8be65b645eafefd2f92d51/68747470733a2f2f312e67726176617461722e636f6d2f6176617461722f66396332646633363439396633356530353839643431383334373834353539643f643d68747470732533412532462532466173736574732d63646e2e6769746875622e636f6d253246696d6167657325324667726176617461727325324667726176617461722d757365722d3432302e706e6726723d7826733d313430"; width="16" />

  </td>

  <td class="commit-author">
    <strong><span class="author">Jan Cholasta</span></strong>
  </td>

  <td class="commit-message">
    <code><a href="/freeipa/freeipa/pull/463/commits/043e6b8e3611d21bf72058be75794532d7807dca" class="message" data-pjax="true" title="pylint_plugins: add forbidden import checker

Add new pylint AST checker plugin which implements a check for imports
forbidden in IPA. Which imports are forbidden is configurable in pylintrc.

Provide default forbidden import configuration and disable the check for
existing forbidden imports in our code base.">pylint_plugins: add forbidden import checker</a></code>

      <span class="hidden-text-expander inline">
        <button type="button" class="ellipsis-expander js-details-target">&hellip;</button>
      </span>
      <div class="commit-desc"><pre>Add new pylint AST checker plugin which implements a check for imports
forbidden in IPA. Which imports are forbidden is configurable in pylintrc.

Provide default forbidden import configuration and disable the check for
existing forbidden imports in our code base.</pre></div>

  </td>

  <td class="commit-sig-status">
    

  </td>

  <td class="commit-ci-status">
      


  </td>

  <td class="commit-meta">
    <code><a href="/freeipa/freeipa/pull/463/commits/043e6b8e3611d21bf72058be75794532d7807dca" class="commit-id">043e6b8</a></code>
  </td>
</tr>

    </table>
  </div>
</div>






<!-- Rendered timeline since 2017-02-14 01:37:15 -->
<div id="partial-timeline-marker"
      class="js-timeline-marker js-socket-channel js-updatable-content"
      data-channel="tenant:1:pull_request:106067246"
      data-url="/freeipa/freeipa/pull/463/show_partial?partial=pull_requests%2Ftimeline_marker&amp;since=1487065035"
      data-last-modified="Tue, 14 Feb 2017 09:37:15 GMT">

    <!-- '"` --><!-- </textarea></xmp> --></option></form><form accept-charset="UTF-8" action="/freeipa/freeipa/notifications/mark?ids=201393112" class="d-none js-timeline-marker-form" data-remote="true" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="&#x2713;" /><input name="authenticity_token" type="hidden" value="ZBT0haSPj3WxHhA/x8PAKZFR46dKDeeoOZZUwggPHRjAVO2UNR4BljEE7FO9HALP0uG1m7ZzE5d6bh7jNTu5Ig==" /></div>
</form></div>


  </div>

    <div class="discussion-timeline-actions">
          <div class="signed-out-comment">
    <a href="/join?source=comment-repo" class="btn btn-primary" rel="nofollow">Sign up for free</a>
    <strong>to join this conversation on GitHub</strong>.
    Already have an account?
    <a href="/login?return_to=https%3A%2F%2Fgithub.com%2Ffreeipa%2Ffreeipa%2Fpull%2F463" rel="nofollow">Sign in to comment</a>
</div>


    </div>
</div>

    </div>
  </div>

</div>

  </div>
  <div class="modal-backdrop js-touch-events"></div>
</div>


    </div>
  </div>

  </div>

      <div class="container site-footer-container">
  <div class="site-footer" role="contentinfo">
    <ul class="site-footer-links float-right">
        <li><a href="https://github.com/contact"; data-ga-click="Footer, go to contact, text:contact">Contact GitHub</a></li>
      <li><a href="https://developer.github.com"; data-ga-click="Footer, go to api, text:api">API</a></li>
      <li><a href="https://training.github.com"; data-ga-click="Footer, go to training, text:training">Training</a></li>
      <li><a href="https://shop.github.com"; data-ga-click="Footer, go to shop, text:shop">Shop</a></li>
        <li><a href="https://github.com/blog"; data-ga-click="Footer, go to blog, text:blog">Blog</a></li>
        <li><a href="https://github.com/about"; data-ga-click="Footer, go to about, text:about">About</a></li>

    </ul>

    <a href="https://github.com"; aria-label="Homepage" class="site-footer-mark" title="GitHub">
      <svg aria-hidden="true" class="octicon octicon-mark-github" height="24" version="1.1" viewBox="0 0 16 16" width="24"><path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0 0 16 8c0-4.42-3.58-8-8-8z"/></svg>
</a>
    <ul class="site-footer-links">
      <li>&copy; 2017 <span title="0.42360s from github-fe140-cp1-prd.iad.github.net">GitHub</span>, Inc.</li>
        <li><a href="https://github.com/site/terms"; data-ga-click="Footer, go to terms, text:terms">Terms</a></li>
        <li><a href="https://github.com/site/privacy"; data-ga-click="Footer, go to privacy, text:privacy">Privacy</a></li>
        <li><a href="https://github.com/security"; data-ga-click="Footer, go to security, text:security">Security</a></li>
        <li><a href="https://status.github.com/"; data-ga-click="Footer, go to status, text:status">Status</a></li>
        <li><a href="https://help.github.com"; data-ga-click="Footer, go to help, text:help">Help</a></li>
    </ul>
  </div>
</div>



  

  <div id="ajax-error-message" class="ajax-error-message flash flash-error">
    <svg aria-hidden="true" class="octicon octicon-alert" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M8.865 1.52c-.18-.31-.51-.5-.87-.5s-.69.19-.87.5L.275 13.5c-.18.31-.18.69 0 1 .19.31.52.5.87.5h13.7c.36 0 .69-.19.86-.5.17-.31.18-.69.01-1L8.865 1.52zM8.995 13h-2v-2h2v2zm0-3h-2V6h2v4z"/></svg>
    <button type="button" class="flash-close js-flash-close js-ajax-error-dismiss" aria-label="Dismiss error">
      <svg aria-hidden="true" class="octicon octicon-x" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path fill-rule="evenodd" d="M7.48 8l3.75 3.75-1.48 1.48L6 9.48l-3.75 3.75-1.48-1.48L4.52 8 .77 4.25l1.48-1.48L6 6.52l3.75-3.75 1.48 1.48z"/></svg>
    </button>
    You can't perform that action at this time.
  </div>


    <script crossorigin="anonymous" src="https://assets-cdn.github.com/assets/compat-8e19569aacd39e737a14c8515582825f3c90d1794c0e5539f9b525b8eb8b5a8e.js";></script>
    <script crossorigin="anonymous" src="https://assets-cdn.github.com/assets/frameworks-b0d504a21e5761da5ec5eade7ed594f51a8583550c5666e515607039056c976d.js";></script>
    <script async="async" crossorigin="anonymous" src="https://assets-cdn.github.com/assets/github-db2eee9d5e9a883f2ba4dc3de2cace58297fe2d1f66b91292ecb6a385c12d799.js";></script>
    
    
    
    
  <div class="js-stale-session-flash stale-session-flash flash flash-warn flash-banner d-none">
    <svg aria-hidden="true" class="octicon octicon-alert" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M8.865 1.52c-.18-.31-.51-.5-.87-.5s-.69.19-.87.5L.275 13.5c-.18.31-.18.69 0 1 .19.31.52.5.87.5h13.7c.36 0 .69-.19.86-.5.17-.31.18-.69.01-1L8.865 1.52zM8.995 13h-2v-2h2v2zm0-3h-2V6h2v4z"/></svg>
    <span class="signed-in-tab-flash">You signed in with another tab or window. <a href="">Reload</a> to refresh your session.</span>
    <span class="signed-out-tab-flash">You signed out in another tab or window. <a href="">Reload</a> to refresh your session.</span>
  </div>
  <div class="facebox" id="facebox" style="display:none;">
  <div class="facebox-popup">
    <div class="facebox-content" role="dialog" aria-labelledby="facebox-header" aria-describedby="facebox-description">
    </div>
    <button type="button" class="facebox-close js-facebox-close" aria-label="Close modal">
      <svg aria-hidden="true" class="octicon octicon-x" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path fill-rule="evenodd" d="M7.48 8l3.75 3.75-1.48 1.48L6 9.48l-3.75 3.75-1.48-1.48L4.52 8 .77 4.25l1.48-1.48L6 6.52l3.75-3.75 1.48 1.48z"/></svg>
    </button>
  </div>
</div>


  </body>
</html>

-- 
Manage your subscription for the Freeipa-devel mailing list:
https://www.redhat.com/mailman/listinfo/freeipa-devel
Contribute to FreeIPA: http://www.freeipa.org/page/Contribute/Code

Reply via email to