Skip to content

Commit 7723088

Browse files
authored
Merge pull request #29 from jacobsee/enable-deploy-key-on-project-creation
First stab at automatically enabling the deploy key after creating a project
2 parents 34f7566 + cc3bdec commit 7723088

File tree

5 files changed

+26
-2
lines changed

5 files changed

+26
-2
lines changed

src/main/java/com/redhat/labs/omp/resources/ProjectsResource.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,9 @@ public class ProjectsResource {
2525
@ConfigProperty(name = "residenciesParentRepositoryId", defaultValue = "6284")
2626
protected Integer residenciesParentRepositoryId;
2727

28+
@ConfigProperty(name = "deployKey")
29+
protected Integer deployKey;
30+
2831
@GET
2932
public String listAllProjects() {
3033
return gitLabService.getProjects().readEntity(String.class);
@@ -41,6 +44,8 @@ public GitLabCreateProjectResponse createNewProject(CreateProjectRequest request
4144
GitLabCreateProjectRequest gitLabRequest = new GitLabCreateProjectRequest();
4245
gitLabRequest.name = request.projectName;
4346
gitLabRequest.namespace_id = residenciesRepoId;
44-
return gitLabService.createNewProject(gitLabRequest);
47+
GitLabCreateProjectResponse gitLabProject = gitLabService.createNewProject(gitLabRequest);
48+
gitLabService.enableDeployKey(gitLabProject.id, deployKey);
49+
return gitLabProject;
4550
}
4651
}

src/main/java/com/redhat/labs/omp/services/GitLabService.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,12 @@ public interface GitLabService {
3939
@Produces("application/json")
4040
GitLabCreateProjectResponse createNewProject(GitLabCreateProjectRequest request);
4141

42+
// reference: https://docs.gitlab.com/ce/api/deploy_keys.html#enable-a-deploy-key
43+
@POST
44+
@Path("/projects/{id}/deploy_keys/{deploy_key}/enable")
45+
@Produces("application/json")
46+
Response enableDeployKey(@PathParam("id") @Encoded Integer projectId, @PathParam("deploy_key") @Encoded Integer deployKey);
47+
4248
// reference: https://docs.gitlab.com/ee/api/repository_files.html#create-new-file-in-repository
4349
@POST
4450
@Path("/projects/{id}/repository/files/{file_path}")

src/main/resources/application.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,5 +34,5 @@ file_branch=master
3434
templateRepositoryId=${TEMPLATE_REPOSITORY_ID:1}
3535
residenciesParentRepositoryId=${RESIDENCIES_PARENT_REPOSITORIES_ID:2}
3636
gitlab.api/mp-rest/url=${GITLAB_API_URL:https://acmegit.com}
37-
37+
deployKey=${DEPLOY_KEY:0}
3838

src/test/java/com/redhat/labs/omp/mocks/MockGitLabService.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,10 @@
66
import com.redhat.labs.utils.ResourceLoader;
77
import io.quarkus.test.Mock;
88
import org.eclipse.microprofile.rest.client.inject.RestClient;
9+
import org.jboss.resteasy.annotations.jaxrs.PathParam;
910

1011
import javax.enterprise.context.ApplicationScoped;
12+
import javax.ws.rs.Encoded;
1113
import javax.ws.rs.core.Response;
1214
import java.nio.charset.StandardCharsets;
1315
import java.util.Base64;
@@ -40,6 +42,11 @@ public GitLabCreateProjectResponse createNewProject(GitLabCreateProjectRequest r
4042
return response;
4143
}
4244

45+
@Override
46+
public Response enableDeployKey(Integer projectId, Integer deployKey){
47+
return Response.status(Response.Status.OK).entity(ResourceLoader.load("enableDeployKey-001-response.json")).build();
48+
}
49+
4350
@Override
4451
public Response createFileInRepository(String projectId, String filePath, GitLabCreateFileInRepositoryRequest request) {
4552
return Response.status(Response.Status.OK).entity(ResourceLoader.load("createFile-001-response.json")).build();
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"key" : "ssh-rsa AAAAATHISISAKEYAAAAA",
3+
"id" : 12,
4+
"title" : "My deploy key",
5+
"created_at" : "2015-08-29T12:44:31.550Z"
6+
}

0 commit comments

Comments
 (0)