Iceberg performs two kinds of operations that normally require authentication:
- Git operations, such as clone, checkout, and push.
- Extra API operations, such as accept or reject a Pull Request via GitHub Plugin (which uses their REST API).
The git operation will be authenticated depending on the chosen protocol (SSH or HTTPS). For SSH, only SSH credentials can be used, but for HTTPS, you have two options: Plain-Text and Token Credentials.
The Extra API operations can't be authenticated with SSH credentials. You need Plain-Text and Token Credentials for these.
When authentication fails in an operation, Iceberg shows a dialog asking for Plain Text Credential, which consists on username and password. But that may not be the credential you need. For example, you may need a Token Credentials, explained below.
Personal access tokens are an alternative to using passwords for authentication. This is important for GitHub users, since using passwords on API calls is not supported anymore. Following, we describe the steps to register for token in Iceberg.
First, create a Personal Access Token in your GitHub account. You can follow this guide to do it. Include all "repo" and "user" permissions (scopes). You won't be able to read the token after the webpage is closed, to paste it in a safe place.
Second, go to your Pharo image and open Iceberg -> Settings -> Edit credentials -> Add Token, as shown in the screenshot below. Normally, you should fill the 'Username' field with your email. Fill the Host field with 'github.com' to use the token for that server.
This wasn't tested on other servers, but it may work for git operations:
Alternatively, you can register your credential without using the GUI:
IceCredentialStore current
storeCredential: (IceTokenCredentials new
username: '[email protected]';
token: '4a01...e072';
yourself)
forHostname: 'github.com'.
For troubleshooting, please refer to the README's F.A.Q. section, which is the curret source to handle several issues with authentication.