Mend Advise
General Information
Mend Advise allows your developers to view a snapshot of a component’s details before they download it to their repository, and incorporate it in the codebase. It is delivered as a Chrome or Microsoft Edge (from version 83) extension.
Mend Advise quickly identifies open source component installation references on Web pages such as StackOverflow, Maven Central, and RubyGems. See also Supported Repositories.
When in the page, a simple click on the icon enables developers to view important details to help them decide whether or not to add a new component. Details include company policy checks, known vulnerabilities, known malicious packages, quality scores, and whether the component is currently in use within your organization.
Installing Mend Advise as an External User
Inviting an External User (for Mend Administrators Only)
The Mend account administrator has the option to invite users to download and use Mend Advise by doing the following:
From the Mend application, click Admin > Advise for Chrome Management. The Advise for Chrome Management screen is displayed.
In Add Users by Email pane, in Emails, add the email addresses of all the users for whom you want to receive an invitation via email.
Note: Ensure each email address is entered on a separate line.
Installing Mend Advise (for Invited Users)
Invited (external) users will receive a link via an email invitation in order to complete the installation.
For Admins to Know: Ensure that the email link is opened in the relevant browser (Chrome / Microsoft Edge). The browser also marks these references in the relevant web pages. If Chrome or Microsoft Edge are not the default browser, then you must copy and paste the email link in either Chrome / Microsoft Edge.
Mend Advise scans web pages for open-source installation references. To perform these functions, it requires permissions to read and write on web pages. You must approve these permissions (no browsing history information is saved).
1. When the user receives the invitation email, click on the "download" button in Chrome and install the plugin.
2. If the Mend instance is not hosted on http://saas.mend.io, complete these steps:
I. click on the configuration icon in the lower right corner of the plugin:
II. Click "modify" next to the destination
III. Change the URL to one of the following depending on where your service is hosted:
http://<ONPREM URL>
IV. Click Save.
V. Click the lower right configuration icon to exit the configuration screen
5. Enter the user's email and submit. A verification email will be sent.
6. Open the verification email and click on the "verify link."
Mend Advise
This video demonstrates how to install and use Mend Advise for the Google Chrome browser.
Activating Mend Advise via the Profile Page (Mend Users Only)
Existing Mend users can activate the Mend Advise from their 'Profile' page without having an administrator send an invitation. This option is done via the following steps:
Go to your Profile Page.
Navigate to the 'Advise for Chrome' panel on this page.
Click Advise for Chrome to generate an activation link. An activation link is be generated. If you are a member of multiple organizations, click the link for the relevant organization.
Add the Mend Advise extension to your browser.
Click Activation Link in order to complete the activation process.
NOTE: You have the option to deactivate Mend Advise on your organization by clicking Deactivate.
On-Premises Deployments
Mend Advise is supported out of the box for on-premises installations. In the extension Settings page, the destination URL can be manually changed to point to the on-premises Mend instance. This is done by going to Settings > modify (next to Destination) and entering the updated destination URL.
Using Mend Advise
The following are the methods used for maximizing the Mend Advise functionality. For a list of repositories and platforms supported by each of these methods, refer to the table in Supported Repositories and Platforms.
1. Browse for a specific library version page by URL
For example, go here for a MVN repository library.
You can view the Mend selection plugin red mark when a library is identified.
2. Browse any Web page via a text pattern search
You can scan any Web page for open source component installation references, by clicking on the Mend Advise extension icon.
It will scan the page and detect all package references where/when available.
Any open source component installation reference (such as "pypi install", "gem install", etc.) will be highlighted.
Mend Advise searches for the following text patterns in these languages:
Python (pip)
pip install {package name}=={version}
Ruby (bundler)
One of the following
gem install {package name}={version}
gem install {package name}:{version}
JavaScript (NPM)
npm install {package name}@{version}
.NET (NuGet)
One of the following:
install-package {package name} –package {version}
update-package {package name} –package {version}
nuget install {package name} –package {version}
nuget update {package name} –package {version}
Java (Maven)
One of the following:
<dependency>
<groupId>{group}</groupId>
<artifactId>{artifact}</artifactId>
<versionId>{version}</versionId>
</dependency>
<plugin>
…
</plugin>
<parent>
…
</parent>
Go
import (
“github.com/{owner1}/{repository1}”
“github.com/{owner2}/{repository2}”
...
)
PHP (Composer)
One of the following:
"require": {
“{group}/{artifact}”: “{version}”
}
"require-dev": {
“{group}/{artifact}”: “{version}”
}
Scala (SBT)
One of the following:
librarydependencies += "{group}" % "{artifact}" % "{version}"
libraryDependencies ++= Seq(
"{group-1}" % "{artifact-1}" % "{version-1}",
"{group-2}" % "{artifact-2}" % "{version-2}" % "test"
)
Rust (Cargo)
One of the following:
cargo install --version {version} {package name}
cargo install --vers {version} {package name}
cargo update -p {package name}
cargo update --package {package name}
cargo update -p {package name} --precise {version}
cargo update --package {package name} --precise {version}
Haskell (Cabal)
One of the following:
Legacy:
cabal install {package name}
cabal install {package name}-{version}
Version 2:
cabal v2-install {package name}
cabal v2-install {package name}-{version}
OCaml (Opam)
One of the following:
opam install {package name}
opam install {package name}.{version}
opam pin add {package name}
3. Code snippet highlighting on any Web page
Scan any of the supported code references from the previous section by highlighting it, right-clicking, and then selecting Scan with Mend Advise option.
The Mend Advise searches for the same patterns that were displayed in the previous section and provides a single result:
Displayed Information after the Scan
Mend Advise displays the following information:
License: identifies the component's license.
Outdated: informs you if there's a newer version of the library. Note: Mend ignores non-stable versions of a library (such as an alpha version).
Policies: shows you whether the component meets your company's policy as configured in your Mend account.
Projects: shows you if your organization is already using this library and number of occurrences.
Security vulnerabilities: each shield accounts for a different vulnerability and severity is demonstrated by color.
Quality: provides an overall score based on the number of commits, version releases, etc.
In the following sample screenshot, Mend Advise found three vulnerabilities with a critical score. Clicking on the 'Take me to the first component' link forwards you to the first icon of the vulnerability.
Selecting the Interface Language
Mend Advise provides you with the option to select a language:
Click on the 'About' icon
The 'About' panel is displayed. Click on 'Language' and select the language for the interface:
Supported Repositories and Platforms
Mend Advise currently supports the following repositories:
URL Scanning | Text Pattern Search | Code Snippet Highlighting | |
---|---|---|---|
CDNJS (on library URLs with and without a specific version) | |||
URL Scanning
For URL Scanning it is required that the dependency version is clearly indicated in the URL. E.g. for https://www.npmjs.com/package/lodash there will be no result, but for https://www.npmjs.com/package/lodash/v/4.17.21 there will be.
NPM Scoped packages are not supported.
Site List
The Advise for Chrome plugin extracts package information from a page or URL and sends it to your Mend.io organization to find the relevant projects or policies for that library.
Below you will find the list of allowed sites:
https://stackoverflow.com/
https://mvnrepository.com/
https://github.com/
https://gitlab.com/
https://bitbucket.org/
https://pypi.org/
https://npmjs.com/
https://cdnjs.com/
https://rubygems.org/
https://packagist.org/
https://pkg.go.dev/
https://cran.r-project.org/
https://crates.io/
https://docs.microsoft.com/
https://developer.mozilla.org/
https://superuser.com/
https://askubuntu.com/
https://serverfault.com/
https://reddit.com/
https://geeksforgeeks.org/
https://tutorialspoint.com/
https://medium.com/
https://dev.to/
https://dzone.com/
https://docs.python.org/
https://w3schools.com/
https://search.maven.org/
https://go-search.org/
https://godoc.org/
https://nuget.org/
https://jcenter.bintray.com/
https://docs.oracle.com/
https://docs.scala-lang.org/
https://clojure.org/
https://hackage.haskell.org/
https://opam.ocaml.org/
https://pub.dev/
https://cpan.org/
https://rubydoc.info/
https://cocoapods.org/
https://docs.rs/
https://hex.pm/
Supported Languages
Mend Advise supports the detection of open source components installation references in the following programming languages:
Java, Scala (SBT), .NET, JavaScript, Ruby, Python, Go, PHP, Rust, Haskell, OCaml
The code snippet scanning option currently supports the following package managers: Maven (Java), SBT (Scala), NuGet (.NET), npm (JavaScript), Bundler (Ruby), Pip (Python), Go, and Composer (PHP).