Unverified Commit bdc1f6d3 authored by Gautier de Saint Martin Lacaze's avatar Gautier de Saint Martin Lacaze Committed by GitHub
Browse files

Merge pull request #814 from dren-dk/implement-keys-api

Implement keys api
parents 116a2f5f 55a9fb46
...@@ -96,6 +96,7 @@ public class GitLabApi implements AutoCloseable { ...@@ -96,6 +96,7 @@ public class GitLabApi implements AutoCloseable {
private TodosApi todosApi; private TodosApi todosApi;
private UserApi userApi; private UserApi userApi;
private WikisApi wikisApi; private WikisApi wikisApi;
private KeysApi keysApi;
/** /**
* Get the GitLab4J shared Logger instance. * Get the GitLab4J shared Logger instance.
...@@ -1683,6 +1684,21 @@ public class GitLabApi implements AutoCloseable { ...@@ -1683,6 +1684,21 @@ public class GitLabApi implements AutoCloseable {
return wikisApi; return wikisApi;
} }
/**
* Gets the KeysApi instance owned by this GitLabApi instance. The KeysApi is used to look up users by their ssh key signatures
*
* @return the KeysApi instance owned by this GitLabApi instance
*/
public KeysApi getKeysAPI() {
synchronized (this) {
if (keysApi == null) {
keysApi = new KeysApi(this);
}
}
return keysApi;
}
/** /**
* Create and return an Optional instance associated with a GitLabApiException. * Create and return an Optional instance associated with a GitLabApiException.
* *
......
package org.gitlab4j.api;
import org.gitlab4j.api.models.Key;
import javax.ws.rs.core.MultivaluedHashMap;
import javax.ws.rs.core.MultivaluedMap;
import javax.ws.rs.core.Response;
import java.util.Collections;
/**
* See:
* https://docs.gitlab.com/ee/api/keys.html#get-user-by-fingerprint-of-ssh-key
*/
public class KeysApi extends AbstractApi {
public KeysApi(GitLabApi gitLabApi) {
super(gitLabApi);
}
/**
* @param fingerprint The md5 hash of a ssh public key with : separating the bytes Or SHA256:$base64hash
* @return The Key which includes the user who owns the key
* @throws GitLabApiException If anything goes wrong
*/
public Key getUserBySSHKeyFingerprint(String fingerprint) throws GitLabApiException {
MultivaluedMap<String, String> queryParams = new MultivaluedHashMap<>();
queryParams.put("fingerprint", Collections.singletonList(fingerprint));
Response response = get(Response.Status.OK, queryParams, "keys");
return response.readEntity(Key.class);
}
}
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment