/** * {@code userName}의 {@code projectName}에 해당하는 프로젝트의 저장소에서 {@code branch}의 {@code path}에 해당하는 정보를 * JSON으로 읽어온다. * * <p>when: {@link controllers.CodeApp#ajaxRequestWithBranch(String, String, String, String)}에서 특정 * 프로젝트의 특정 브랜치에 있는 코드를 조회할 때 사용한다. * * <p>{@code userName}의 {@code projectName}에 해당하는 {@link Project}의 {@link PlayRepository}를 찾아서 * {@link PlayRepository#findFileInfo(String, String)}를 호출한다. * * @param userName * @param projectName * @param path * @param branch * @return * @throws AmbiguousObjectException * @throws NoHeadException * @throws UnsupportedOperationException * @throws IOException * @throws SVNException * @throws GitAPIException * @throws ServletException * @see {@link PlayRepository#findFileInfo(String, String)} */ public static ObjectNode getMetaDataFrom( String userName, String projectName, String path, String branch) throws AmbiguousObjectException, NoHeadException, UnsupportedOperationException, IOException, SVNException, GitAPIException, ServletException { // TODO Auto-generated method stub Project project = ProjectApp.getProject(userName, projectName); return RepositoryService.getRepository(project).findFileInfo(branch, path); }
/** * {@code project}와 관련있는 저장소를 생성한다. * * <p>when: {@link controllers.ProjectApp#newProject()}로 프로젝트를 생성할 때 사용한다. * * <p>{@code project}에 해당하는 저장소를 삭제하고 {@link PlayRepository}를 읽어온 뒤 {@link * PlayRepository#create()}를 호출한다. * * @param project * @throws IOException * @throws ServletException * @throws ClientException * @throws UnsupportedOperationException * @see {@link #deleteRepository(String, String, String)} * @see {@link PlayRepository#create()} */ public static void createRepository(Project project) throws IOException, ServletException, ClientException, UnsupportedOperationException { RepositoryService.deleteRepository(project.owner, project.name, project.vcs); RepositoryService.getRepository(project).create(); }
/** * 저장소를 삭제한다. * * <p>when: {@link ProjectApp#deleteProject(String, String)}에서 프로젝트를 삭제할 때 해당 프로젝트와 관련있는 저장소를 삭제할 * 때 사용한다. * * <p>{@code userName}과 {@code projectName}에 해당하는 프로젝트의 {@link PlayRepository}를 읽어오고 {@link * playRepository.PlayRepository#delete()}를 호출한다. * * @param userName * @param projectName * @param type * @throws IOException * @throws ServletException * @see {@link ProjectApp#deleteProject(String, String)} * @see {@link playRepository.PlayRepository#delete()} */ public static void deleteRepository(String userName, String projectName, String type) throws IOException, ServletException { Project project = ProjectApp.getProject(userName, projectName); RepositoryService.getRepository(project).delete(); }
/** * {@code userName}의 {@code projectName}에 해당하는 프로젝트의 저장소에서 {@code branch}의 {@code path}에 해당하는 파일을 * 읽어온다. * * <p>when: {@link controllers.CodeApp#showRawFile(String, String, String)}과 {@link * controllers.CodeApp#showImageFile(String, String, String)}에서 파일 내용을 화면에 보여줄 때 사용한다. * * <p>{@code userName}의 {@code projectName}에 해당하는 {@link Project}의 {@link PlayRepository}를 찾아서 * {@link PlayRepository#getRawFile(String)}을 호출한다. * * @param userName * @param projectName * @param path * @return * @throws ServletException * @throws IOException * @throws UnsupportedOperationException * @throws AmbiguousObjectException * @throws IncorrectObjectTypeException * @throws MissingObjectException * @throws SVNException * @see {@link PlayRepository#getRawFile(String)} */ public static byte[] getFileAsRaw(String userName, String projectName, String path) throws MissingObjectException, IncorrectObjectTypeException, AmbiguousObjectException, UnsupportedOperationException, IOException, ServletException, SVNException { Project project = ProjectApp.getProject(userName, projectName); return RepositoryService.getRepository(project).getRawFile(path); }
/** * {@code userName}의 {@code projectName}에 해당하는 프로젝트의 저장소에서 {@code path}에 해당하는 정보를 JSON으로 읽어온다. * * <p>when: {@link controllers.CodeApp#ajaxRequest(String, String, String)}에서 프로젝트의 코드를 조회할 때 * 사용한다. * * <p>{@code userName}의 {@code projectName}에 해당하는 {@link Project}의 {@link PlayRepository}를 찾아서 * {@link PlayRepository#findFileInfo(String)}를 호출한다. * * @param userName * @param projectName * @param path * @return * @throws NoHeadException * @throws UnsupportedOperationException * @throws IOException * @throws GitAPIException * @throws ServletException * @throws SVNException * @see {@link PlayRepository#findFileInfo(String)} */ public static ObjectNode getMetaDataFrom(String userName, String projectName, String path) throws NoHeadException, UnsupportedOperationException, IOException, GitAPIException, ServletException, SVNException { Project project = ProjectApp.getProject(userName, projectName); return RepositoryService.getRepository(project).findFileInfo(path); }