public static CurrentUsageData getCurrentUsageData(final String login) {
		Issue currentIssue;
		List<Issue> issues;
		Set<String> commitFiles;
		Set<String> commitImports;

		issues = new ArrayList<Issue>();
		commitFiles = new HashSet<String>();
		commitImports = new HashSet<String>();

		try {
			// Gather work data
			for (Repository repository : GitHubService.repositoryService.getRepositories(login)) {
				// Current work
				for (RepositoryCommit commit : GitHubService.commitService.getCommits(repository)) {
					if (login.equals(commit.getCommitter().getLogin())) {
						for (CommitFile commitFile : GitHubService.commitService.getCommit(repository, commit.getSha())
						        .getFiles()) {
							if (UtilService.isSupportedFile(commitFile.getFilename())) {
								commitFiles.add(commitFile.getFilename().substring(
								        commitFile.getFilename().lastIndexOf('/') + 1));
								commitImports.addAll(UtilService.getClassImports(GitHubService
								        .getRawBlobFile(commitFile.getBlobUrl())));
							}
						}
					}
				}

				// Pending work
				for (Issue issue : GitHubService.issueService.getIssues(login, repository.getName(), null)) {
					if (login.equals(issue.getAssignee().getLogin())) {
						if (issue.getState().equals("open")) {
							currentIssue = GitHubService.issueService.getIssue(repository, issue.getNumber());
							issues.add(currentIssue);
						}
					}
				}
			}
		} catch (IOException exception) {
			GitHubService.logger.log(Level.INFO, "No usage data found for user: " + login);
		}

		return new CurrentUsageData(issues, commitFiles, commitImports, UtilService.assignArtifacts(commitImports));
	}