CI and environment variables
In CI there is no browser to log in with. Give the login with environment variables instead.
A refresh token instead of the file
Section titled “A refresh token instead of the file”When TWINFIELD_REFRESH_TOKEN is set, Credentials::default() uses it instead of the credentials file. It also needs the client the refresh token belongs to:
TWINFIELD_CONNECT_CLIENT_IDandTWINFIELD_CONNECT_CLIENT_SECRETfor a login through Twinfield Connect, orTWINFIELD_CLIENT_IDandTWINFIELD_CLIENT_SECRETfor your own Twinfield client.
You find these values in credentials.json after a twf login on your own machine. Store them as secrets in your CI.
Tokens from environment variables are not written back to a file.
Variables
Section titled “Variables”| Variable | Use |
|---|---|
TWINFIELD_REFRESH_TOKEN |
The refresh token. |
TWINFIELD_CONNECT_CLIENT_ID, TWINFIELD_CONNECT_CLIENT_SECRET |
The Twinfield Connect client, see credentials.json. |
TWINFIELD_CLIENT_ID, TWINFIELD_CLIENT_SECRET |
Or your own Twinfield client. |
TWINFIELD_CONNECT_URL |
Only for a Twinfield Connect you run yourself. |
TWINFIELD_REDIRECT_URI |
Only when your client does not use http://localhost:8765/callback. |
TWINFIELD_PROFILE |
The profile to use instead of default. |
TWINFIELD_CONFIG_DIR |
The directory of credentials.json. |
Example: GitHub Actions
Section titled “Example: GitHub Actions”- run: composer phpunit env: TWINFIELD_REFRESH_TOKEN: ${{ secrets.TWINFIELD_REFRESH_TOKEN }} TWINFIELD_CONNECT_CLIENT_ID: ${{ secrets.TWINFIELD_CONNECT_CLIENT_ID }} TWINFIELD_CONNECT_CLIENT_SECRET: ${{ secrets.TWINFIELD_CONNECT_CLIENT_SECRET }}Twinfield and Wolters Kluwer are trademarks of Wolters Kluwer. Their names and logos are used only to refer to their products.