use of org.gitlab4j.api.models.User in project catma by forTEXT.
the class JGitRepoManagerTest method cloneGitLabRepoWithAuthentication.
@Test
public void cloneGitLabRepoWithAuthentication() throws Exception {
GitLabServerManager gitLabServerManager = new GitLabServerManager(UserIdentification.userToMap(this.catmaUser.getIdentifier()));
String randomRepoName = Randomizer.getRepoName();
IRemoteGitServerManager.CreateRepositoryResponse createRepositoryResponse = gitLabServerManager.createRepository(randomRepoName, null);
try (ILocalGitRepositoryManager jGitRepoManager = new JGitRepoManager(this.catmaProperties.getProperty(RepositoryPropertyKey.GitBasedRepositoryBasePath.name()), this.catmaUser)) {
this.directoriesToDeleteOnTearDown.add(jGitRepoManager.getRepositoryBasePath());
String repoName = jGitRepoManager.clone("", createRepositoryResponse.repositoryHttpUrl, null, gitLabServerManager.getUsername(), gitLabServerManager.getPassword());
assert jGitRepoManager.isAttached();
assertEquals(repoName, randomRepoName);
File testRepoPath = new File(jGitRepoManager.getRepositoryBasePath(), repoName);
assert testRepoPath.exists();
assert testRepoPath.isDirectory();
assert Arrays.asList(testRepoPath.list()).contains(".git");
}
// cleanup (these are not handled by tearDown)
gitLabServerManager.deleteRepository(createRepositoryResponse.repositoryId);
await().until(() -> gitLabServerManager.getAdminGitLabApi().getProjectApi().getProjects().isEmpty());
// see GitLabServerManagerTest tearDown() for more info
User user = gitLabServerManager.getGitLabUser();
gitLabServerManager.getAdminGitLabApi().getUserApi().deleteUser(user.getId());
GitLabServerManagerTest.awaitUserDeleted(gitLabServerManager.getAdminGitLabApi().getUserApi(), user.getId());
}
use of org.gitlab4j.api.models.User in project catma by forTEXT.
the class GitMarkupCollectionHandlerTest method tearDown.
@After
public void tearDown() throws Exception {
if (this.directoriesToDeleteOnTearDown.size() > 0) {
for (File dir : this.directoriesToDeleteOnTearDown) {
FileUtils.deleteDirectory(dir);
}
this.directoriesToDeleteOnTearDown.clear();
}
if (this.markupCollectionReposToDeleteOnTearDown.size() > 0) {
for (String markupCollectionId : this.markupCollectionReposToDeleteOnTearDown) {
List<Project> projects = this.gitLabServerManager.getAdminGitLabApi().getProjectApi().getProjects(markupCollectionId);
// this getProjects overload does a search
for (Project project : projects) {
this.gitLabServerManager.deleteRepository(project.getId());
}
await().until(() -> this.gitLabServerManager.getAdminGitLabApi().getProjectApi().getProjects().isEmpty());
}
this.markupCollectionReposToDeleteOnTearDown.clear();
}
if (this.projectsToDeleteOnTearDown.size() > 0) {
GitProjectManager gitProjectHandler = new GitProjectManager(RepositoryPropertyKey.GitBasedRepositoryBasePath.getValue(), UserIdentification.userToMap(this.catmaUser.getIdentifier()));
for (String projectId : this.projectsToDeleteOnTearDown) {
gitProjectHandler.delete(projectId);
}
this.projectsToDeleteOnTearDown.clear();
}
// delete the GitLab user that the GitLabServerManager constructor in setUp would have
// created - see GitLabServerManagerTest tearDown() for more info
User user = this.gitLabServerManager.getGitLabUser();
this.gitLabServerManager.getAdminGitLabApi().getUserApi().deleteUser(user.getId());
GitLabServerManagerTest.awaitUserDeleted(this.gitLabServerManager.getAdminGitLabApi().getUserApi(), user.getId());
}
use of org.gitlab4j.api.models.User in project octane-gitlab-service by MicroFocus.
the class GitlabServices method stop.
@PreDestroy
private void stop() {
try {
log.info("Destroying GitLab webhooks ...");
List<Project> projects = isCurrentUserAdmin() ? gitLabApi.getProjectApi().getProjects() : gitLabApi.getProjectApi().getMemberProjects();
User currentUser = gitLabApi.getUserApi().getCurrentUser();
for (Project project : projects) {
if (gitLabApiWrapper.isUserHasPermissionForProject(project, currentUser)) {
deleteWebHooks(project.getId());
}
}
} catch (Exception e) {
log.warn("Failed to destroy GitLab webhooks", e);
}
}
use of org.gitlab4j.api.models.User in project catma by forTEXT.
the class GitLabServerManagerTest method testInstantiationCreatesGitLabUser.
@Test
public void testInstantiationCreatesGitLabUser() throws Exception {
UserApi userApi = gitlabManagerPrivileged.getGitLabApi().getUserApi();
List<User> users = userApi.getUsers();
// we should have an admin user, the "ghost" user & one representing the CATMA user
assertEquals(3, users.size());
// hamcrest's hasItem(T item) matcher is not behaving as documented and is expecting the
// users collection to contain *only* this.serverManager.getGitLabUser()
// assertThat(users, hasItem(this.serverManager.getGitLabUser()));
User matchedUser = null;
for (User user : users) {
if (user.getId().equals(gitlabManagerRestricted.getUser().getUserId())) {
matchedUser = user;
break;
}
}
assertNotNull(matchedUser);
assertEquals(gitlabManagerRestricted.getUser().getIdentifier(), matchedUser.getUsername());
assertEquals(gitlabManagerRestricted.getUser().getName(), matchedUser.getName());
// assert that the user has the expected impersonation token
List<PersonalAccessToken> impersonationTokens = userApi.getImpersonationTokens(gitlabManagerRestricted.getUser().getUserId());
assertEquals(1, impersonationTokens.size());
assertEquals(GitlabManagerPrivileged.GITLAB_DEFAULT_IMPERSONATION_TOKEN_NAME, impersonationTokens.get(0).getName());
}
use of org.gitlab4j.api.models.User in project catma by forTEXT.
the class CustomUserApiTest method createImpersonationToken.
@Test
public void createImpersonationToken() throws Exception {
// create a user
User user = new User();
user.setEmail("testuser@catma.de");
user.setUsername("testuser");
user.setName("Test User");
user = this.gitLabApi.getUserApi().createUser(user, "password", null);
this.usersToDeleteOnTearDown.add(user.getId());
// create an impersonation token for the user
PersonalAccessToken impersonationToken = this.customUserApi.createImpersonationToken(user.getId(), "test-token", null, null);
assertNotNull(impersonationToken);
assert impersonationToken.id > 0;
assertFalse(impersonationToken.revoked);
assertArrayEquals(new String[] { "api" }, impersonationToken.scopes);
assert impersonationToken.token.length() > 0;
assert impersonationToken.active;
assert impersonationToken.impersonation;
assertEquals("test-token", impersonationToken.name);
assert impersonationToken.createdAt.length() > 0;
assertNull(impersonationToken.expiresAt);
List<PersonalAccessToken> impersonationTokens = this.customUserApi.getImpersonationTokens(user.getId(), null);
assertEquals(1, impersonationTokens.size());
assertEquals(impersonationToken.id, impersonationTokens.get(0).id);
}
Aggregations