타 Front End Site에서 SunarQube 화면을 구현할 경우
프로젝트(components) 목록중 공개/비공개 설정을 할경우 SonarQube 로그인과정을 거치게 되며
로그인후 프로젝트(components) 를 public/private 상태로 변경이 가능합니다.
아래는 java로 구현한 간단한 예제입니다.
CloseableHttpClient httpClient = HttpClients.createDefault(); String result = "false"; try { String projectId = "java_project"; String visibility = "private"; String projectUrl = "http://localhost/sonarqube/api/projects/update_visibility"; String projectParam = "project="+ projectId + "&visibility=" + visibility; HttpPost httpPost = new HttpPost( projectUrl + "?" + projectParam ); httpPost.setEntity(new StringEntity("login post")); UsernamePasswordCredentials creds = new UsernamePasswordCredentials("sonarqubeId", "sonarqubePassword"); httpPost.addHeader(new BasicScheme().authenticate(creds, httpPost, null)); HttpResponse response = httpClient.execute(httpPost); int httpStatus = response.getStatusLine().getStatusCode(); if (httpStatus >= 200 && httpStatus < 300) { result = "true"; } else { throw new ClientProtocolException("Unexpected response status: " + httpStatus); } } catch (Exception e) { logger.error("Error : " + e); } finally { try { httpClient.close(); } catch (Exception e) { logger.error("Error while closing the HTTP client: " + e); } }