Skip to content

Commit 334f532

Browse files
authored
Merge pull request #2 from hostwithquantum/token
feat: support api key
2 parents 10a6270 + bd66e0b commit 334f532

2 files changed

Lines changed: 65 additions & 18 deletions

File tree

README.md

Lines changed: 28 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -20,25 +20,39 @@ A GitHub Action to install and configure [`quantum-cli`](https://cli.planetary-q
2020

2121
## Inputs
2222

23-
| Input | Required | Description |
24-
|-------|----------|-------------|
25-
| `username` | Yes | Your Quantum username |
26-
| `password` | Yes | Your Quantum password |
23+
You must provide **either** `api-key` **or** both `username` and `password`. You cannot use both methods together.
24+
25+
| Input | Description |
26+
|-------|-------------|
27+
| `api-key` | Your Quantum API key (recommended) |
28+
| `username` | Your Quantum username (**deprecated**, use `api-key` instead) |
29+
| `password` | Your Quantum password (**deprecated**, use `api-key` instead) |
2730

2831
## Usage
2932

3033
For detailed documentation on the `quantum-cli`, please refer to our [docs](https://docs.planetary-quantum.com/).
3134

32-
### Basic example
35+
### Using API key (recommended)
36+
37+
```yaml
38+
steps:
39+
- uses: hostwithquantum/setup-quantum-cli@main
40+
with:
41+
api-key: ${{ secrets.QUANTUM_API_KEY }}
42+
- run: quantum-cli auth status
43+
```
44+
45+
### Using username/password (deprecated)
46+
47+
> **Warning**: username/password authentication is deprecated. Please migrate to `api-key`.
3348

3449
```yaml
3550
steps:
3651
- uses: hostwithquantum/setup-quantum-cli@main
3752
with:
3853
username: ${{ secrets.QUANTUM_USERNAME }}
3954
password: ${{ secrets.QUANTUM_PASSWORD }}
40-
41-
- run: quantum-cli validate
55+
- run: quantum-cli auth status
4256
```
4357

4458
### Full workflow example
@@ -57,13 +71,12 @@ jobs:
5771
- uses: actions/checkout@v6
5872
- uses: hostwithquantum/setup-quantum-cli@main
5973
with:
60-
username: ${{ secrets.QUANTUM_USERNAME }}
61-
password: ${{ secrets.QUANTUM_PASSWORD }}
74+
api-key: ${{ secrets.QUANTUM_API_KEY }}
6275
- run: quantum-cli auth status
6376
- run: quantum-cli stack deploy
6477
env:
6578
QUANTUM_ENDPOINT: my-cluster
66-
QUANTUM_SATCK: my-app
79+
QUANTUM_STACK: my-app
6780
```
6881

6982
### Windows example
@@ -76,15 +89,18 @@ jobs:
7689
- uses: actions/checkout@v6
7790
- uses: hostwithquantum/setup-quantum-cli@main
7891
with:
79-
username: ${{ secrets.QUANTUM_USERNAME }}
80-
password: ${{ secrets.QUANTUM_PASSWORD }}
92+
api-key: ${{ secrets.QUANTUM_API_KEY }}
8193
- run: quantum-cli.exe auth status
8294
```
8395

8496
## Environment variables
8597

8698
The action sets the following environment variables for subsequent steps:
8799

100+
When using API key:
101+
- `QUANTUM_API_KEY` — your API key
102+
103+
When using username/password (deprecated):
88104
- `QUANTUM_USER` — your username
89105
- `QUANTUM_PASSWORD` — your password
90106

action.yml

Lines changed: 37 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,39 @@ branding:
55
color: 'red'
66
inputs:
77
username:
8-
required: true
9-
description: username
8+
required: false
9+
description: Your Quantum username (required if not using api-key)
1010
password:
11-
required: true
12-
description: password
11+
required: false
12+
description: Your Quantum password (required if not using api-key)
13+
api-key:
14+
required: false
15+
description: Your Quantum API key (alternative to username/password)
1316
runs:
1417
using: "composite"
1518
steps:
19+
- name: validate inputs
20+
run: |
21+
HAS_USERNAME="${{ inputs.username != '' }}"
22+
HAS_PASSWORD="${{ inputs.password != '' }}"
23+
HAS_API_KEY="${{ inputs.api-key != '' }}"
24+
25+
if [ "$HAS_API_KEY" = "true" ]; then
26+
if [ "$HAS_USERNAME" = "true" ] || [ "$HAS_PASSWORD" = "true" ]; then
27+
echo "::error title=Invalid inputs::Cannot use api-key together with username/password. Use either api-key OR username+password."
28+
exit 1
29+
fi
30+
else
31+
if [ "$HAS_USERNAME" != "true" ] || [ "$HAS_PASSWORD" != "true" ]; then
32+
echo "::error title=Missing credentials::Must provide either api-key OR both username and password."
33+
exit 1
34+
fi
35+
fi
36+
shell: bash
37+
- name: deprecation warning (username/password)
38+
if: inputs.api-key == ''
39+
run: echo "::warning title=Deprecated::username/password authentication is deprecated. Please migrate to api-key."
40+
shell: bash
1641
- name: install quantum-cli (Linux)
1742
if: runner.os == 'Linux'
1843
run: |
@@ -68,7 +93,13 @@ runs:
6893
if: runner.os == 'Windows'
6994
run: quantum-cli.exe -v
7095
shell: pwsh
71-
- run: echo "QUANTUM_USER=${{ inputs.username }}" >> "$GITHUB_ENV"
96+
- name: set credentials (username/password)
97+
if: inputs.api-key == ''
98+
run: |
99+
echo "QUANTUM_USER=${{ inputs.username }}" >> "$GITHUB_ENV"
100+
echo "QUANTUM_PASSWORD=${{ inputs.password }}" >> "$GITHUB_ENV"
72101
shell: bash
73-
- run: echo "QUANTUM_PASSWORD=${{ inputs.password }}" >> "$GITHUB_ENV"
102+
- name: set credentials (api-key)
103+
if: inputs.api-key != ''
104+
run: echo "QUANTUM_API_KEY=${{ inputs.api-key }}" >> "$GITHUB_ENV"
74105
shell: bash

0 commit comments

Comments
 (0)