class GitHubAppRsaCredentialImpl extends Object
A basic implementation of the GitHubAppRsaCredential. In general, a more secure credential implementation is suggested. For an example, see GitHubAppRsaCredential API documentation for examples.
To run this example, clone Jervis and execute ./gradlew console to bring up a Groovy Console with the classpath set up.
import net.gleske.jervis.remotes.creds.GitHubAppRsaCredentialImpl
GitHubAppRsaCredentialImpl rsaCred = new GitHubAppRsaCredentialImpl('123456', new File('github-app-private-key.pem').text)
// Update owner to query app installations
rsaCred.owner = 'samrocketman'
Type | Name and description |
---|---|
String |
owner When querying for App installations this is necessary to select the install for a user or organization where the GitHub App is installed. |
Closure |
resolvePrivateKey A custom closure meant for resolving the private key dynamically from a secured credential backend. |
Constructor and description |
---|
GitHubAppRsaCredentialImpl
(String github_app_id, String private_key, String api_uri = GitHubAppCredential.DEFAULT_GITHUB_API) Instantiates an RSA credential for a GitHub App used to generate API tokens. |
GitHubAppRsaCredentialImpl
(String github_app_id, Closure resolvePrivateKey, String api_uri = GitHubAppCredential.DEFAULT_GITHUB_API) Instantiates an RSA credential for a GitHub App used to generate API tokens. |
Type Params | Return Type | Name and description |
---|---|---|
|
String |
getApiUri() The GitHub API URL for querying GitHub App API in case of self-hosted GitHub Enterprise. |
|
String |
getAppID() The GitHub App ID for a GitHub credential. |
|
String |
getId() An ID unique to this credential. |
|
String |
getPrivateKey() A private key for a GitHub App necessary for signing JSON Web Tokens (JWT). |
|
void |
setOwner(String owner) Sets the owner. |
|
void |
setResolvePrivateKey(Closure resolvePrivateKey) Setter for custom closure meant for private key lookup. |
When querying for App installations this is necessary to select the install for a user or organization where the GitHub App is installed.
A custom closure meant for resolving the private key dynamically from a secured credential backend.
The following example illustrates Jenkins credentials backend. However, you can use any backend for the closure such as HashiCorp Vault.
import com.cloudbees.plugins.credentials.CredentialsProvider
import jenkins.model.Jenkins
import org.jenkinsci.plugins.github_branch_source.GitHubAppCredentials
import net.gleske.jervis.remotes.creds.GitHubAppRsaCredentialImpl
GitHubAppCredentials appCred = CredentialsProvider.lookupCredentials(GitHubAppCredentials, Jenkins.instance, Jenkins.instance.ACL.SYSTEM).find {
it.id == 'some-credential-id'
}
// Set the private key to an empty string because it is unused. Get all values
// from the backend Jenkins credential.
GitHubAppRsaCredentialImpl rsaCred = new GitHubAppRsaCredentialImpl(appCred.appID, '', appCred.apiUri)
rsaCred.resolvePrivateKey = {->
appCred.privateKey.plainText
}
// Update owner to query app installation
- See Also:
- https</code></pre>
- Default:
- null
Instantiates an RSA credential for a GitHub App used to generate API tokens.
github_app_id
- An app ID for a GitHub App.private_key
- An RSA private key associated with the github_app_id
used to generate API tokens. Format is PKCS1 or PKCS8
PEM RSA private key.api_url
- A custom URL to the GitHub API for GitHub Enterprise.Instantiates an RSA credential for a GitHub App used to generate API tokens.
github_app_id
- An app ID for a GitHub App.resolvePrivateKey
- A closure that returns a PKCS1 or PKCS8 PEM
formatted RSA private key as a String.
It is used to create a JSON Web Token (JWT) for
interacting with the GitHub API on behalf of the
GitHub App.api_url
- A custom URL to the GitHub API for GitHub Enterprise.The GitHub API URL for querying GitHub App API in case of self-hosted GitHub Enterprise.
The GitHub App ID for a GitHub credential.
An ID unique to this credential.
A private key for a GitHub App necessary for signing JSON Web Tokens (JWT).
Sets the owner.
owner
- An owner to query installation ID from a GitHub app.Setter for custom closure meant for private key lookup. This will recalculate getId().
resolvePrivateKey
- A closure that returns a PKCS1 or PKCS8 PEM
formatted RSA private key as a String.
It is used to create a JSON Web Token (JWT) for
interacting with the GitHub API on behalf of the
GitHub App.Jervis API documentation.