Search in sources :

Example 11 with User

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());
}
Also used : User(org.gitlab4j.api.models.User) ILocalGitRepositoryManager(de.catma.repository.git.interfaces.ILocalGitRepositoryManager) File(java.io.File) IRemoteGitServerManager(de.catma.repository.git.interfaces.IRemoteGitServerManager) Test(org.junit.Test)

Example 12 with User

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());
}
Also used : Project(org.gitlab4j.api.models.Project) User(org.gitlab4j.api.models.User) File(java.io.File) After(org.junit.After)

Example 13 with User

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);
    }
}
Also used : Project(org.gitlab4j.api.models.Project) User(org.gitlab4j.api.models.User) MalformedURLException(java.net.MalformedURLException) GitLabApiException(org.gitlab4j.api.GitLabApiException) PreDestroy(javax.annotation.PreDestroy)

Example 14 with User

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());
}
Also used : User(org.gitlab4j.api.models.User) PersonalAccessToken(org.gitlab4j.api.models.PersonalAccessToken) UserApi(org.gitlab4j.api.UserApi) Test(org.junit.jupiter.api.Test)

Example 15 with User

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);
}
Also used : User(org.gitlab4j.api.models.User) PersonalAccessToken(de.catma.repository.git.managers.gitlab4j_api_custom.models.PersonalAccessToken) GitLabServerManagerTest(de.catma.repository.git.managers.GitLabServerManagerTest) Test(org.junit.Test)

Aggregations

User (org.gitlab4j.api.models.User)29 Response (javax.ws.rs.core.Response)9 GitLabApiException (org.gitlab4j.api.GitLabApiException)8 GenericType (javax.ws.rs.core.GenericType)6 UserApi (org.gitlab4j.api.UserApi)6 Test (org.junit.Test)6 GitUser (de.catma.repository.git.GitUser)5 File (java.io.File)5 Project (org.gitlab4j.api.models.Project)4 IOException (java.io.IOException)3 CustomAttribute (org.gitlab4j.api.models.CustomAttribute)3 PersonalAccessToken (org.gitlab4j.api.models.PersonalAccessToken)3 ILocalGitRepositoryManager (de.catma.repository.git.interfaces.ILocalGitRepositoryManager)2 IRemoteGitServerManager (de.catma.repository.git.interfaces.IRemoteGitServerManager)2 GitLabServerManagerTest (de.catma.repository.git.managers.GitLabServerManagerTest)2 PersonalAccessToken (de.catma.repository.git.managers.gitlab4j_api_custom.models.PersonalAccessToken)2 Pair (de.catma.util.Pair)2 SecureRandom (java.security.SecureRandom)2 List (java.util.List)2 Form (javax.ws.rs.core.Form)2