jira-cli-rs 0.3.9__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- jira_cli_rs-0.3.9/.github/workflows/ci.yml +69 -0
- jira_cli_rs-0.3.9/.github/workflows/release.yml +244 -0
- jira_cli_rs-0.3.9/.gitignore +5 -0
- jira_cli_rs-0.3.9/CHANGELOG.md +96 -0
- jira_cli_rs-0.3.9/Cargo.lock +2228 -0
- jira_cli_rs-0.3.9/Cargo.toml +34 -0
- jira_cli_rs-0.3.9/Makefile +77 -0
- jira_cli_rs-0.3.9/PKG-INFO +7 -0
- jira_cli_rs-0.3.9/README.md +325 -0
- jira_cli_rs-0.3.9/docker/docker-compose.yml +35 -0
- jira_cli_rs-0.3.9/docker/wait-for-jira.sh +24 -0
- jira_cli_rs-0.3.9/prek.toml +36 -0
- jira_cli_rs-0.3.9/pyproject.toml +16 -0
- jira_cli_rs-0.3.9/src/api/client.rs +902 -0
- jira_cli_rs-0.3.9/src/api/mod.rs +150 -0
- jira_cli_rs-0.3.9/src/api/types.rs +495 -0
- jira_cli_rs-0.3.9/src/commands/boards.rs +32 -0
- jira_cli_rs-0.3.9/src/commands/fields.rs +50 -0
- jira_cli_rs-0.3.9/src/commands/issues.rs +1157 -0
- jira_cli_rs-0.3.9/src/commands/mod.rs +8 -0
- jira_cli_rs-0.3.9/src/commands/myself.rs +20 -0
- jira_cli_rs-0.3.9/src/commands/projects.rs +96 -0
- jira_cli_rs-0.3.9/src/commands/search.rs +65 -0
- jira_cli_rs-0.3.9/src/commands/sprints.rs +90 -0
- jira_cli_rs-0.3.9/src/commands/users.rs +33 -0
- jira_cli_rs-0.3.9/src/config.rs +1490 -0
- jira_cli_rs-0.3.9/src/lib.rs +6 -0
- jira_cli_rs-0.3.9/src/main.rs +1283 -0
- jira_cli_rs-0.3.9/src/output.rs +210 -0
- jira_cli_rs-0.3.9/src/test_support.rs +123 -0
- jira_cli_rs-0.3.9/tests/cli.rs +149 -0
- jira_cli_rs-0.3.9/tests/e2e.rs +351 -0
- jira_cli_rs-0.3.9/tests/integration.rs +3349 -0
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
pull_request:
|
|
7
|
+
workflow_dispatch:
|
|
8
|
+
|
|
9
|
+
concurrency:
|
|
10
|
+
group: ${{ github.workflow }}-${{ github.ref }}
|
|
11
|
+
cancel-in-progress: true
|
|
12
|
+
|
|
13
|
+
jobs:
|
|
14
|
+
lint:
|
|
15
|
+
name: Lint
|
|
16
|
+
runs-on: ubuntu-latest
|
|
17
|
+
steps:
|
|
18
|
+
- uses: actions/checkout@v4
|
|
19
|
+
|
|
20
|
+
- uses: dtolnay/rust-toolchain@stable
|
|
21
|
+
with:
|
|
22
|
+
components: rustfmt, clippy
|
|
23
|
+
|
|
24
|
+
- name: Run linting
|
|
25
|
+
run: make lint
|
|
26
|
+
|
|
27
|
+
test:
|
|
28
|
+
name: Test
|
|
29
|
+
runs-on: ubuntu-latest
|
|
30
|
+
steps:
|
|
31
|
+
- uses: actions/checkout@v4
|
|
32
|
+
|
|
33
|
+
- uses: dtolnay/rust-toolchain@stable
|
|
34
|
+
|
|
35
|
+
- uses: taiki-e/install-action@v2
|
|
36
|
+
with:
|
|
37
|
+
tool: nextest
|
|
38
|
+
|
|
39
|
+
- name: Run tests
|
|
40
|
+
run: make test
|
|
41
|
+
|
|
42
|
+
coverage:
|
|
43
|
+
name: Coverage
|
|
44
|
+
runs-on: ubuntu-latest
|
|
45
|
+
steps:
|
|
46
|
+
- uses: actions/checkout@v4
|
|
47
|
+
- uses: dtolnay/rust-toolchain@stable
|
|
48
|
+
- uses: taiki-e/install-action@cargo-tarpaulin
|
|
49
|
+
- name: Generate coverage
|
|
50
|
+
run: cargo tarpaulin --out xml
|
|
51
|
+
- name: Upload to Codecov
|
|
52
|
+
uses: codecov/codecov-action@v5
|
|
53
|
+
with:
|
|
54
|
+
files: cobertura.xml
|
|
55
|
+
token: ${{ secrets.CODECOV_TOKEN }}
|
|
56
|
+
|
|
57
|
+
all-checks-passed:
|
|
58
|
+
name: All checks passed
|
|
59
|
+
runs-on: ubuntu-latest
|
|
60
|
+
needs: [lint, test]
|
|
61
|
+
if: always()
|
|
62
|
+
steps:
|
|
63
|
+
- name: Verify all checks passed
|
|
64
|
+
run: |
|
|
65
|
+
if [ "${{ contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled') }}" == "true" ]; then
|
|
66
|
+
echo "Some checks failed or were cancelled"
|
|
67
|
+
exit 1
|
|
68
|
+
fi
|
|
69
|
+
echo "All checks passed"
|
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
name: Release
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
tags:
|
|
6
|
+
- "v[0-9]*.[0-9]*.[0-9]*"
|
|
7
|
+
workflow_dispatch:
|
|
8
|
+
inputs:
|
|
9
|
+
dry_run:
|
|
10
|
+
description: 'Dry run (skip publishing)'
|
|
11
|
+
required: false
|
|
12
|
+
default: true
|
|
13
|
+
type: boolean
|
|
14
|
+
skip_crates_io:
|
|
15
|
+
description: 'Skip crates.io publish'
|
|
16
|
+
required: false
|
|
17
|
+
default: false
|
|
18
|
+
type: boolean
|
|
19
|
+
skip_pypi:
|
|
20
|
+
description: 'Skip PyPI publish'
|
|
21
|
+
required: false
|
|
22
|
+
default: false
|
|
23
|
+
type: boolean
|
|
24
|
+
|
|
25
|
+
permissions:
|
|
26
|
+
contents: write
|
|
27
|
+
|
|
28
|
+
jobs:
|
|
29
|
+
test:
|
|
30
|
+
runs-on: ubuntu-latest
|
|
31
|
+
steps:
|
|
32
|
+
- uses: actions/checkout@v4
|
|
33
|
+
- uses: dtolnay/rust-toolchain@stable
|
|
34
|
+
- uses: taiki-e/install-action@v2
|
|
35
|
+
with:
|
|
36
|
+
tool: nextest
|
|
37
|
+
- run: cargo check --locked
|
|
38
|
+
- run: make test
|
|
39
|
+
|
|
40
|
+
build:
|
|
41
|
+
needs: test
|
|
42
|
+
strategy:
|
|
43
|
+
matrix:
|
|
44
|
+
include:
|
|
45
|
+
- target: x86_64-unknown-linux-gnu
|
|
46
|
+
os: ubuntu-latest
|
|
47
|
+
- target: aarch64-unknown-linux-gnu
|
|
48
|
+
os: ubuntu-latest
|
|
49
|
+
- target: x86_64-apple-darwin
|
|
50
|
+
os: macos-latest
|
|
51
|
+
- target: aarch64-apple-darwin
|
|
52
|
+
os: macos-latest
|
|
53
|
+
runs-on: ${{ matrix.os }}
|
|
54
|
+
steps:
|
|
55
|
+
- uses: actions/checkout@v4
|
|
56
|
+
- uses: dtolnay/rust-toolchain@stable
|
|
57
|
+
with:
|
|
58
|
+
targets: ${{ matrix.target }}
|
|
59
|
+
- name: Install cross-compilation tools
|
|
60
|
+
if: matrix.target == 'aarch64-unknown-linux-gnu'
|
|
61
|
+
run: |
|
|
62
|
+
sudo apt-get update
|
|
63
|
+
sudo apt-get install -y gcc-aarch64-linux-gnu
|
|
64
|
+
- name: Install maturin and zig
|
|
65
|
+
run: pip install maturin ziglang
|
|
66
|
+
- name: Build wheel
|
|
67
|
+
shell: bash
|
|
68
|
+
run: |
|
|
69
|
+
case "${{ matrix.target }}" in
|
|
70
|
+
*-gnu)
|
|
71
|
+
maturin build --release --target ${{ matrix.target }} --zig
|
|
72
|
+
;;
|
|
73
|
+
*)
|
|
74
|
+
maturin build --release --target ${{ matrix.target }}
|
|
75
|
+
;;
|
|
76
|
+
esac
|
|
77
|
+
- name: Build binary
|
|
78
|
+
run: cargo build --release --target ${{ matrix.target }}
|
|
79
|
+
env:
|
|
80
|
+
CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER: aarch64-linux-gnu-gcc
|
|
81
|
+
- name: Verify binary
|
|
82
|
+
if: ${{ !contains(matrix.target, 'aarch64-unknown-linux') }}
|
|
83
|
+
run: ./target/${{ matrix.target }}/release/jira --version
|
|
84
|
+
- name: Package binary
|
|
85
|
+
run: |
|
|
86
|
+
ARCHIVE_NAME="jira-cli-${{ github.ref_name }}-${{ matrix.target }}"
|
|
87
|
+
mkdir -p "${ARCHIVE_NAME}"
|
|
88
|
+
cp "target/${{ matrix.target }}/release/jira" "${ARCHIVE_NAME}/"
|
|
89
|
+
tar czf "${ARCHIVE_NAME}.tar.gz" "${ARCHIVE_NAME}"
|
|
90
|
+
shasum -a 256 "${ARCHIVE_NAME}.tar.gz" > "${ARCHIVE_NAME}.tar.gz.sha256"
|
|
91
|
+
- uses: actions/upload-artifact@v4
|
|
92
|
+
with:
|
|
93
|
+
name: release-${{ matrix.target }}
|
|
94
|
+
path: |
|
|
95
|
+
jira-cli-*.tar.gz
|
|
96
|
+
jira-cli-*.tar.gz.sha256
|
|
97
|
+
target/wheels/*.whl
|
|
98
|
+
|
|
99
|
+
sdist:
|
|
100
|
+
needs: test
|
|
101
|
+
runs-on: ubuntu-latest
|
|
102
|
+
steps:
|
|
103
|
+
- uses: actions/checkout@v4
|
|
104
|
+
- name: Install maturin
|
|
105
|
+
run: pip install maturin
|
|
106
|
+
- name: Build sdist
|
|
107
|
+
run: maturin sdist
|
|
108
|
+
- uses: actions/upload-artifact@v4
|
|
109
|
+
with:
|
|
110
|
+
name: sdist
|
|
111
|
+
path: target/wheels/*.tar.gz
|
|
112
|
+
|
|
113
|
+
release:
|
|
114
|
+
needs: [build, sdist]
|
|
115
|
+
runs-on: ubuntu-latest
|
|
116
|
+
steps:
|
|
117
|
+
- uses: actions/checkout@v4
|
|
118
|
+
- uses: actions/download-artifact@v4
|
|
119
|
+
with:
|
|
120
|
+
path: /tmp/artifacts
|
|
121
|
+
- uses: dtolnay/rust-toolchain@stable
|
|
122
|
+
|
|
123
|
+
- name: Publish to crates.io
|
|
124
|
+
if: ${{ !inputs.dry_run && !inputs.skip_crates_io }}
|
|
125
|
+
run: cargo publish --locked
|
|
126
|
+
env:
|
|
127
|
+
CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}
|
|
128
|
+
|
|
129
|
+
- name: Test crates.io publish (dry run)
|
|
130
|
+
if: ${{ inputs.dry_run == true && inputs.skip_crates_io != true }}
|
|
131
|
+
run: |
|
|
132
|
+
echo "DRY RUN: Would publish to crates.io"
|
|
133
|
+
cargo publish --dry-run --locked
|
|
134
|
+
|
|
135
|
+
- name: Skip crates.io publishing
|
|
136
|
+
if: ${{ inputs.skip_crates_io == true }}
|
|
137
|
+
run: echo "Skipping crates.io publishing as requested"
|
|
138
|
+
|
|
139
|
+
- name: Install uv
|
|
140
|
+
uses: astral-sh/setup-uv@v6
|
|
141
|
+
|
|
142
|
+
- name: Publish to PyPI
|
|
143
|
+
if: ${{ !inputs.dry_run && !inputs.skip_pypi }}
|
|
144
|
+
run: uv publish /tmp/artifacts/release-*/*.whl /tmp/artifacts/sdist/*.tar.gz
|
|
145
|
+
env:
|
|
146
|
+
UV_PUBLISH_TOKEN: ${{ secrets.PYPI_API_TOKEN }}
|
|
147
|
+
|
|
148
|
+
- name: Create GitHub Release
|
|
149
|
+
if: ${{ !inputs.dry_run }}
|
|
150
|
+
run: |
|
|
151
|
+
gh release create ${{ github.ref_name }} \
|
|
152
|
+
--title "${{ github.ref_name }}" \
|
|
153
|
+
--generate-notes \
|
|
154
|
+
/tmp/artifacts/release-*/*.tar.gz \
|
|
155
|
+
/tmp/artifacts/release-*/*.sha256
|
|
156
|
+
env:
|
|
157
|
+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
158
|
+
|
|
159
|
+
- name: Dry Run Summary
|
|
160
|
+
if: ${{ inputs.dry_run == true }}
|
|
161
|
+
run: |
|
|
162
|
+
echo "Dry run complete. Artifacts built but nothing published."
|
|
163
|
+
echo "Archives:"
|
|
164
|
+
find /tmp/artifacts/release-* -type f | sort
|
|
165
|
+
|
|
166
|
+
update-homebrew:
|
|
167
|
+
needs: release
|
|
168
|
+
if: ${{ inputs.dry_run != true }}
|
|
169
|
+
runs-on: ubuntu-latest
|
|
170
|
+
steps:
|
|
171
|
+
- uses: actions/download-artifact@v4
|
|
172
|
+
with:
|
|
173
|
+
path: /tmp/artifacts
|
|
174
|
+
|
|
175
|
+
- name: Compute SHA256 hashes
|
|
176
|
+
id: hashes
|
|
177
|
+
run: |
|
|
178
|
+
for target in x86_64-apple-darwin aarch64-apple-darwin x86_64-unknown-linux-gnu aarch64-unknown-linux-gnu; do
|
|
179
|
+
sha=$(cat /tmp/artifacts/release-${target}/jira-cli-${{ github.ref_name }}-${target}.tar.gz.sha256 | awk '{print $1}')
|
|
180
|
+
key=$(echo "${target}" | tr '-' '_')
|
|
181
|
+
echo "${key}=${sha}" >> "$GITHUB_OUTPUT"
|
|
182
|
+
done
|
|
183
|
+
|
|
184
|
+
- name: Update Homebrew formula
|
|
185
|
+
env:
|
|
186
|
+
GH_TOKEN: ${{ secrets.HOMEBREW_TAP_TOKEN }}
|
|
187
|
+
run: |
|
|
188
|
+
VERSION="${{ github.ref_name }}"
|
|
189
|
+
VERSION_NUM="${VERSION#v}"
|
|
190
|
+
|
|
191
|
+
cat > /tmp/jira-cli.rb << 'FORMULA'
|
|
192
|
+
class JiraCli < Formula
|
|
193
|
+
desc "CLI for Jira"
|
|
194
|
+
homepage "https://github.com/rvben/jira-cli"
|
|
195
|
+
version "VERSION_NUM"
|
|
196
|
+
license "MIT"
|
|
197
|
+
|
|
198
|
+
on_macos do
|
|
199
|
+
if Hardware::CPU.arm?
|
|
200
|
+
url "https://github.com/rvben/jira-cli/releases/download/VERSION/jira-cli-VERSION-aarch64-apple-darwin.tar.gz"
|
|
201
|
+
sha256 "SHA_AARCH64_APPLE_DARWIN"
|
|
202
|
+
else
|
|
203
|
+
url "https://github.com/rvben/jira-cli/releases/download/VERSION/jira-cli-VERSION-x86_64-apple-darwin.tar.gz"
|
|
204
|
+
sha256 "SHA_X86_64_APPLE_DARWIN"
|
|
205
|
+
end
|
|
206
|
+
end
|
|
207
|
+
|
|
208
|
+
on_linux do
|
|
209
|
+
if Hardware::CPU.arm?
|
|
210
|
+
url "https://github.com/rvben/jira-cli/releases/download/VERSION/jira-cli-VERSION-aarch64-unknown-linux-gnu.tar.gz"
|
|
211
|
+
sha256 "SHA_AARCH64_UNKNOWN_LINUX_GNU"
|
|
212
|
+
else
|
|
213
|
+
url "https://github.com/rvben/jira-cli/releases/download/VERSION/jira-cli-VERSION-x86_64-unknown-linux-gnu.tar.gz"
|
|
214
|
+
sha256 "SHA_X86_64_UNKNOWN_LINUX_GNU"
|
|
215
|
+
end
|
|
216
|
+
end
|
|
217
|
+
|
|
218
|
+
def install
|
|
219
|
+
bin.install "jira"
|
|
220
|
+
end
|
|
221
|
+
|
|
222
|
+
test do
|
|
223
|
+
system "#{bin}/jira", "--version"
|
|
224
|
+
end
|
|
225
|
+
end
|
|
226
|
+
FORMULA
|
|
227
|
+
|
|
228
|
+
sed -i "s/VERSION_NUM/${VERSION_NUM}/g" /tmp/jira-cli.rb
|
|
229
|
+
sed -i "s/VERSION/${VERSION}/g" /tmp/jira-cli.rb
|
|
230
|
+
sed -i "s/SHA_AARCH64_APPLE_DARWIN/${{ steps.hashes.outputs.aarch64_apple_darwin }}/g" /tmp/jira-cli.rb
|
|
231
|
+
sed -i "s/SHA_X86_64_APPLE_DARWIN/${{ steps.hashes.outputs.x86_64_apple_darwin }}/g" /tmp/jira-cli.rb
|
|
232
|
+
sed -i "s/SHA_AARCH64_UNKNOWN_LINUX_GNU/${{ steps.hashes.outputs.aarch64_unknown_linux_gnu }}/g" /tmp/jira-cli.rb
|
|
233
|
+
sed -i "s/SHA_X86_64_UNKNOWN_LINUX_GNU/${{ steps.hashes.outputs.x86_64_unknown_linux_gnu }}/g" /tmp/jira-cli.rb
|
|
234
|
+
|
|
235
|
+
# Clone tap repo, update formula, push
|
|
236
|
+
git clone https://x-access-token:${GH_TOKEN}@github.com/rvben/homebrew-tap.git /tmp/tap
|
|
237
|
+
mkdir -p /tmp/tap/Formula
|
|
238
|
+
cp /tmp/jira-cli.rb /tmp/tap/Formula/jira-cli.rb
|
|
239
|
+
cd /tmp/tap
|
|
240
|
+
git config user.name "github-actions[bot]"
|
|
241
|
+
git config user.email "github-actions[bot]@users.noreply.github.com"
|
|
242
|
+
git add Formula/jira-cli.rb
|
|
243
|
+
git diff --cached --quiet || git commit -m "Update jira-cli to ${VERSION}"
|
|
244
|
+
git push
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/).
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
## [0.3.9](https://github.com/rvben/jira-cli/compare/v0.3.8...v0.3.9) - 2026-04-08
|
|
20
|
+
|
|
21
|
+
### Added
|
|
22
|
+
|
|
23
|
+
- publish to PyPI as jira-cli-rs ([8f5370a](https://github.com/rvben/jira-cli/commit/8f5370a26bd9b162be95c7f5e78a47a6771fd9a8))
|
|
24
|
+
|
|
25
|
+
## [0.3.8](https://github.com/rvben/jira-cli/compare/v0.3.7...v0.3.8) - 2026-04-07
|
|
26
|
+
|
|
27
|
+
### Added
|
|
28
|
+
|
|
29
|
+
- `jira issue PROJ-123` falls through to `issues show` ([3764b1f](https://github.com/rvben/jira-cli/commit/3764b1f746a60bd853677b7d38a32d014002c5fe))
|
|
30
|
+
- add singular aliases for all subcommand groups ([2d05eea](https://github.com/rvben/jira-cli/commit/2d05eea6fa74ae5ee1ddadf169a54afa43d1490d))
|
|
31
|
+
|
|
32
|
+
### Fixed
|
|
33
|
+
|
|
34
|
+
- schema tests acquire env lock to prevent XDG_CONFIG_HOME leakage ([204b794](https://github.com/rvben/jira-cli/commit/204b79422741328a81be0b70744a8a9078e8eb4b))
|
|
35
|
+
|
|
36
|
+
## [0.3.7](https://github.com/rvben/jira-cli/compare/v0.3.6...v0.3.7) - 2026-04-03
|
|
37
|
+
|
|
38
|
+
### Added
|
|
39
|
+
|
|
40
|
+
- add top-level `issue` command as shortcut for `issues show` ([788bcc4](https://github.com/rvben/jira-cli/commit/788bcc4722b5a23d1fb11d08fdfabf814e2c53f5))
|
|
41
|
+
|
|
42
|
+
## [0.3.6](https://github.com/rvben/jira-cli/compare/v0.3.5...v0.3.6) - 2026-04-03
|
|
43
|
+
|
|
44
|
+
## [0.3.5](https://github.com/rvben/jira-cli/compare/v0.3.4...v0.3.5) - 2026-04-03
|
|
45
|
+
|
|
46
|
+
## [0.3.4](https://github.com/rvben/jira-cli/compare/v0.3.3...v0.3.4) - 2026-04-01
|
|
47
|
+
|
|
48
|
+
### Added
|
|
49
|
+
|
|
50
|
+
- add read-only mode via JIRA_READ_ONLY env var and config field ([68e15a3](https://github.com/rvben/jira-cli/commit/68e15a353c5000488516ccc929597c6da5df7929))
|
|
51
|
+
|
|
52
|
+
## [0.3.3](https://github.com/rvben/jira-cli/compare/v0.3.2...v0.3.3) - 2026-03-31
|
|
53
|
+
|
|
54
|
+
### Fixed
|
|
55
|
+
|
|
56
|
+
- **config**: show token in plain text during init ([fd62572](https://github.com/rvben/jira-cli/commit/fd6257201119664fa280e0d3b8d30983450cac23))
|
|
57
|
+
|
|
58
|
+
## [0.3.2](https://github.com/rvben/jira-cli/compare/v0.3.1...v0.3.2) - 2026-03-31
|
|
59
|
+
|
|
60
|
+
### Added
|
|
61
|
+
|
|
62
|
+
- **config**: interactive init wizard and profile removal ([1db53db](https://github.com/rvben/jira-cli/commit/1db53dbaf75c65d0d0ae3fcde9de6e3b878ed8a8))
|
|
63
|
+
|
|
64
|
+
## [0.3.1](https://github.com/rvben/jira-cli/compare/v0.3.0...v0.3.1) - 2026-03-30
|
|
65
|
+
|
|
66
|
+
### Fixed
|
|
67
|
+
|
|
68
|
+
- simplify mount_board_and_sprints to async fn per clippy lint ([37e094b](https://github.com/rvben/jira-cli/commit/37e094b6fe2c1c6f8602c3faccaea1d8adcfbb73))
|
|
69
|
+
|
|
70
|
+
## [0.3.0](https://github.com/rvben/jira-cli/compare/v0.2.0...v0.3.0) - 2026-03-30
|
|
71
|
+
|
|
72
|
+
### Added
|
|
73
|
+
|
|
74
|
+
- **issues**: add worklog, bulk ops, and subtask support ([5383672](https://github.com/rvben/jira-cli/commit/53836728887f079934ed793a7be96665e9b152be))
|
|
75
|
+
|
|
76
|
+
## [0.2.0](https://github.com/rvben/jira-cli/compare/v0.1.0...v0.2.0) - 2026-03-30
|
|
77
|
+
|
|
78
|
+
### Added
|
|
79
|
+
|
|
80
|
+
- **issues**: add --all pagination, issues mine, and issues comments ([725def7](https://github.com/rvben/jira-cli/commit/725def78a7580e43a27473951ece76024050b82a))
|
|
81
|
+
- add users, boards, sprints, fields, issue links, and sprint assignment ([639fb26](https://github.com/rvben/jira-cli/commit/639fb2641a6ab744c66204f1b305c6e7b402b65d))
|
|
82
|
+
- improve config init output with DC/Server PAT instructions ([0193584](https://github.com/rvben/jira-cli/commit/01935847c8e02c50fba48864af9cc6edb554b2ce))
|
|
83
|
+
- add Jira Data Center / Server support ([f654ef3](https://github.com/rvben/jira-cli/commit/f654ef3c399f54b326ee0cdafe085caafd4b8327))
|
|
84
|
+
|
|
85
|
+
## [0.1.0](https://github.com/rvben/jira-cli/compare/v0.0.2...v0.1.0) - 2026-03-30
|
|
86
|
+
|
|
87
|
+
## [0.0.2] - 2026-03-30
|
|
88
|
+
|
|
89
|
+
### Added
|
|
90
|
+
|
|
91
|
+
- initial release of jira CLI ([e5f730b](https://github.com/rvben/jira-cli/commit/e5f730ba424a2b753d333fa389f0c3491d6f6402))
|
|
92
|
+
|
|
93
|
+
### Fixed
|
|
94
|
+
|
|
95
|
+
- align config bootstrap and schema contract ([a316125](https://github.com/rvben/jira-cli/commit/a316125cb243e209ecacf59af96980fbb4eace21))
|
|
96
|
+
- harden jira api behavior and pagination ([64956bf](https://github.com/rvben/jira-cli/commit/64956bfe702f094002d65cf476ddc01175283245))
|