public ScmRepository getScmRepository()

in src/main/java/org/apache/maven/report/projectinfo/ScmReport.java [573:626]


        public ScmRepository getScmRepository(String scmUrl) {
            if (scmUrl == null || scmUrl.isEmpty()) {
                return null;
            }

            ScmRepository repo = null;
            List<String> messages = new ArrayList<>();
            try {
                messages.addAll(scmManager.validateScmRepository(scmUrl));
            } catch (Exception e) {
                messages.add(e.getMessage());
            }

            if (!messages.isEmpty()) {
                StringBuilder sb = new StringBuilder();
                boolean isIntroAdded = false;
                for (String msg : messages) {
                    // Ignore NoSuchScmProviderException msg
                    // See impl of AbstractScmManager#validateScmRepository()
                    if (msg.startsWith("No such provider")) {
                        continue;
                    }

                    if (!isIntroAdded) {
                        sb.append("This SCM url '");
                        sb.append(scmUrl);
                        sb.append("' is invalid due to the following errors:");
                        sb.append(LS);
                        isIntroAdded = true;
                    }
                    sb.append(" * ");
                    sb.append(msg);
                    sb.append(LS);
                }

                if (StringUtils.isNotEmpty(sb.toString())) {
                    sb.append("For more information about SCM URL Format, please refer to: "
                            + "http://maven.apache.org/scm/scm-url-format.html");

                    throw new IllegalArgumentException(sb.toString());
                }
            }

            try {
                repo = scmManager.makeScmRepository(scmUrl);
            } catch (Exception e) {
                // Should be already catched
                if (log.isDebugEnabled()) {
                    log.debug(e.getMessage(), e);
                }
            }

            return repo;
        }