public RepositoryListVm getRepos(String baseUrl) throws IOException {
        Properties properties = ApplicationProperties.getProperties();
        String organizationName = properties.getProperty(PropertiesConstants.GITHUB_ORGANIZATION);
        List<Repository> orgRepositories = getRepositories(organizationName);
        
        boolean isDev = baseUrl.toLowerCase().contains("localhost") || baseUrl.toLowerCase().contains("bsdatadev");
        
        List<RepositoryVm> repositories = new ArrayList<>();
        for (Repository repository : orgRepositories) {
            if (repository.getName().equals(DataConstants.GITHUB_BSDATA_REPO_NAME)) {
                continue;
            }

            if (!isDev && repository.getName().toLowerCase().equals("test")) {
                continue; // Hack to prevent test repo showing up on the live site
            }

            Release latestRelease = getLatestRelease(repository);
            if (latestRelease == null) {
                continue;
            }
            RepositoryVm repositoryVm = createRepositoryVm(repository, baseUrl, latestRelease);
            repositories.add(repositoryVm);
        }
                        
        Collections.sort(repositories, new Comparator<RepositoryVm>() {
            @Override
            public int compare(RepositoryVm o1, RepositoryVm o2) {
                return o1.getDescription().compareTo(o2.getDescription());
            }
        });
        
        RepositoryListVm repositoryList = new RepositoryListVm();
        repositoryList.setRepositories(repositories);
        repositoryList.setFeedUrl(baseUrl + "/feeds/all.atom");
        repositoryList.setTwitterUrl(properties.getProperty(PropertiesConstants.TWITTER_URL));
        repositoryList.setFacebookUrl(properties.getProperty(PropertiesConstants.FACEBOOK_URL));
        return repositoryList;
    }