@Override public List<GitProject> projects() throws GitException { try { List<GitlabProject> projects = connect.getMembershipProjects(); List<GitProject> results = new ArrayList<>(projects.size()); for (GitlabProject project : projects) { Integer id = project.getId(); String name = project.getName(); String fullName = project.getNameWithNamespace(); results.add(new GitProject(id.toString(), name, fullName)); } return results; } catch (IOException e) { throw new GitException(e.getMessage()); } }
@Override public GitCommit commit(String refName) throws GitException { checkProject(); try { List<GitlabCommit> lastCommits = connect.getLastCommits(project.getId(), refName); GitlabCommit gitlabCommit = lastCommits.get(0); String commitId = gitlabCommit.getId(); String commitMessage = gitlabCommit.getMessage(); String commitAuthorEmail = gitlabCommit.getAuthorEmail(); return new GitCommit(commitId, commitMessage, commitAuthorEmail); } catch (IOException e) { throw new GitException(e.getMessage()); } }
/** * Gets a list of a project's jobs in Gitlab * * @param project the project * @return A list of project jobs */ public List<GitlabJob> getProjectJobs(GitlabProject project) { return getProjectJobs(project.getId()); }
/** * Gets a list of project's jobs of the given pipeline in Gitlab * * @param project the project * @param pipelineId * @return A list of project jobs */ public List<GitlabJob> getPipelineJobs(GitlabProject project, Integer pipelineId) { return getPipelineJobs(project.getId(), pipelineId); }
/** * Gets build variable associated with a project and key. * * @param project The project associated with the variable. * @return A variable. * @throws IOException on gitlab api call error */ public GitlabBuildVariable getBuildVariable(GitlabProject project, String key) throws IOException { return getBuildVariable(project.getId(), key); }
/** * Gets a list of project's jobs of the given pipeline in Gitlab * * @param project the project * @param pipelineId * @return A list of project jobs */ public List<GitlabJob> getPipelineJobs(GitlabProject project, Integer pipelineId) { return getPipelineJobs(project.getId(), pipelineId); }
/** * Gets labels associated with a project. * * @param project The project associated with labels. * @return A non-null list of labels. * @throws IOException on gitlab api call error */ public List<GitlabLabel> getLabels(GitlabProject project) throws IOException { return getLabels(project.getId()); }
/** * Gets a list of project's jobs of the given pipeline in Gitlab * * @param project the project * @param pipelineId * @return A list of project jobs */ public List<GitlabJob> getPipelineJobs(GitlabProject project, Integer pipelineId) { return getPipelineJobs(project.getId(), pipelineId); }
/** * Gets build variables associated with a project. * * @param project The project associated with variables. * @return A non-null list of variables. * @throws IOException on gitlab api call error */ public List<GitlabBuildVariable> getBuildVariables(GitlabProject project) throws IOException { return getBuildVariables(project.getId()); }
/** * Get the raw file contents for a blob by blob SHA. * * @param project The Project * @param sha The commit or branch name * @throws IOException on gitlab api call error */ public byte[] getRawBlobContent(GitlabProject project, String sha) throws IOException { String tailUrl = GitlabProject.URL + "/" + project.getId() + "/repository/blobs/" + sha + "/raw"; return retrieve().to(tailUrl, byte[].class); }
/** * Get a list of tags in specific project * * @param project * @return */ public List<GitlabTag> getTags(GitlabProject project) { String tailUrl = GitlabProject.URL + "/" + project.getId() + GitlabTag.URL + PARAM_MAX_ITEMS_PER_PAGE; return retrieve().getAll(tailUrl, GitlabTag[].class); }
/** * Get the raw file contents for a blob by blob SHA. * * @param project The Project * @param sha The commit or branch name * @throws IOException on gitlab api call error */ public byte[] getRawBlobContent(GitlabProject project, String sha) throws IOException { String tailUrl = GitlabProject.URL + "/" + project.getId() + "/repository/blobs/" + sha + "/raw"; return retrieve().to(tailUrl, byte[].class); }
/** * Add a project member. * * @param project the GitlabProject * @param user the GitlabUser * @param accessLevel the GitlabAccessLevel * @return the GitlabProjectMember * @throws IOException on gitlab api call error */ public GitlabProjectMember addProjectMember(GitlabProject project, GitlabUser user, GitlabAccessLevel accessLevel) throws IOException { return addProjectMember(project.getId(), user.getId(), accessLevel); }
/** * Delete a project team member. * * @param project the GitlabProject * @param user the GitlabUser * @throws IOException on gitlab api call error */ public void deleteProjectMember(GitlabProject project, GitlabUser user) throws IOException { deleteProjectMember(project.getId(), user.getId()); }
private int getRandomProject (List<GitlabProject> projects) { if (projects.size() > 0) { Random rand = new Random(); return projects.get(rand.nextInt(projects.size())).getId(); } else return 0; } }
public List<GitlabMergeRequest> getMergeRequestsWithStatus(GitlabProject project, String state, Pagination pagination) throws IOException { Query query = pagination.asQuery(); query.append("state", state); String tailUrl = GitlabProject.URL + "/" + project.getId() + GitlabMergeRequest.URL + query; return retrieve().getAll(tailUrl, GitlabMergeRequest[].class); }
public List<GitlabMergeRequest> getMergeRequestsWithStatus(GitlabProject project, String state, Pagination pagination) throws IOException { Query query = pagination.asQuery(); query.append("state", state); String tailUrl = GitlabProject.URL + "/" + project.getId() + GitlabMergeRequest.URL + query; return retrieve().getAll(tailUrl, GitlabMergeRequest[].class); }
public GitlabCommitStatus changeCommitStatus(String commitHash, String commitStatus, String targetUrl) { try { GitlabAPI api = builder.getGitlab().get(); GitlabMergeRequest mergeRequest = api.getMergeRequest(project, iid); return builder.getGitlab().changeCommitStatus(project.getId(), mergeRequest.getSourceBranch(), commitHash, commitStatus, targetUrl); } catch (IOException e) { LOGGER.log(Level.SEVERE, "Failed to change status for merge request commit " + commitHash, e); } return null; }
public GitlabProjectHook addProjectHook(GitlabProject project, String url) throws IOException { Query query = new Query() .append("url", url); String tailUrl = GitlabProject.URL + "/" + project.getId() + GitlabProjectHook.URL + query.toString(); return dispatch().to(tailUrl, GitlabProjectHook.class); }
public GitlabProjectHook addProjectHook(GitlabProject project, String url) throws IOException { Query query = new Query() .append("url", url); String tailUrl = GitlabProject.URL + "/" + project.getId() + GitlabProjectHook.URL + query.toString(); return dispatch().to(tailUrl, GitlabProjectHook.class); }