Skip to content

Commit 5c97c2e

Browse files
committed
Add release distribution and repo governance
1 parent 8c39575 commit 5c97c2e

16 files changed

Lines changed: 685 additions & 29 deletions

.editorconfig

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
root = true
2+
3+
[*]
4+
charset = utf-8
5+
end_of_line = lf
6+
insert_final_newline = true
7+
indent_style = space
8+
indent_size = 2
9+
trim_trailing_whitespace = true
10+
11+
[*.rs]
12+
indent_size = 4
13+
14+
[Makefile]
15+
indent_style = tab
Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
name: Bug report
2+
description: Report a reproducible Jira CLI problem
3+
title: "bug: "
4+
labels:
5+
- bug
6+
body:
7+
- type: markdown
8+
attributes:
9+
value: |
10+
Thanks for reporting a bug. Do not paste Jira API tokens, OAuth secrets, cookies, or private issue data.
11+
- type: textarea
12+
id: summary
13+
attributes:
14+
label: Summary
15+
description: What happened?
16+
placeholder: The command failed when...
17+
validations:
18+
required: true
19+
- type: textarea
20+
id: command
21+
attributes:
22+
label: Command
23+
description: Paste the exact command and redact project keys or issue keys only if needed.
24+
render: bash
25+
placeholder: jira issue view ENG-123 --output json
26+
validations:
27+
required: true
28+
- type: textarea
29+
id: expected
30+
attributes:
31+
label: Expected behavior
32+
description: What should have happened?
33+
validations:
34+
required: true
35+
- type: textarea
36+
id: actual
37+
attributes:
38+
label: Actual behavior
39+
description: Include stderr/stdout with secrets redacted.
40+
render: text
41+
validations:
42+
required: true
43+
- type: textarea
44+
id: reproduce
45+
attributes:
46+
label: Reproduction steps
47+
description: Provide the smallest set of steps that reproduces the issue.
48+
placeholder: |
49+
1. Configure profile with ...
50+
2. Run ...
51+
3. Observe ...
52+
validations:
53+
required: true
54+
- type: dropdown
55+
id: auth
56+
attributes:
57+
label: Auth method
58+
options:
59+
- API token
60+
- OAuth 3LO
61+
- Environment variables
62+
- Unknown
63+
validations:
64+
required: true
65+
- type: input
66+
id: version
67+
attributes:
68+
label: jira version
69+
description: Run `jira --version`.
70+
placeholder: jira 0.1.0 (abcdef0)
71+
validations:
72+
required: true
73+
- type: input
74+
id: os
75+
attributes:
76+
label: Operating system
77+
placeholder: macOS 15.5 arm64, Ubuntu 24.04 x86_64, Windows 11
78+
validations:
79+
required: true
80+
- type: textarea
81+
id: diagnostics
82+
attributes:
83+
label: Diagnostics
84+
description: Include relevant `jira auth doctor --output json`, `jira config show --output json`, or `RUST_LOG=jira_cli=debug` output with secrets redacted.
85+
render: json
86+
- type: checkboxes
87+
id: checklist
88+
attributes:
89+
label: Checklist
90+
options:
91+
- label: I have removed API tokens, OAuth secrets, and private issue data.
92+
required: true
93+
- label: I have checked the latest release and main branch behavior where practical.
94+
required: false
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
name: Command request
2+
description: Propose a new Jira command, flag, output field, or workflow
3+
title: "command: "
4+
labels:
5+
- enhancement
6+
- command
7+
body:
8+
- type: textarea
9+
id: workflow
10+
attributes:
11+
label: Workflow
12+
description: What are you trying to automate or make easier?
13+
placeholder: As a release manager, I need to...
14+
validations:
15+
required: true
16+
- type: textarea
17+
id: proposed_command
18+
attributes:
19+
label: Proposed CLI shape
20+
description: Show the command, flags, and expected output mode.
21+
render: bash
22+
placeholder: jira version release ENG 1.2.3 --dry-run --output json
23+
validations:
24+
required: true
25+
- type: textarea
26+
id: jira_api
27+
attributes:
28+
label: Jira API surface
29+
description: If known, list the Jira REST API endpoints or permissions involved.
30+
placeholder: /rest/api/3/...
31+
- type: textarea
32+
id: output
33+
attributes:
34+
label: Expected structured output
35+
description: Include JSON fields if this command will be used by agents or CI.
36+
render: json
37+
- type: checkboxes
38+
id: requirements
39+
attributes:
40+
label: Requirements
41+
options:
42+
- label: The command should support `--dry-run` if it mutates Jira data.
43+
- label: The command should work with `--output json`.
44+
- label: The command should be safe with `--no-input`.
45+
- label: The command should update README/docs/man page examples.

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
blank_issues_enabled: false
2+
contact_links:
3+
- name: Security vulnerability
4+
url: mailto:security@osodevops.io
5+
about: Please report security issues privately instead of opening a public issue.
6+
- name: Questions and usage support
7+
url: https://github.com/osodevops/jira-cli/discussions
8+
about: Use discussions for setup questions, workflow ideas, and non-bug troubleshooting.
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
name: Feature request
2+
description: Suggest a product, documentation, packaging, or integration improvement
3+
title: "feat: "
4+
labels:
5+
- enhancement
6+
body:
7+
- type: textarea
8+
id: problem
9+
attributes:
10+
label: Problem
11+
description: What gap or friction are you seeing?
12+
validations:
13+
required: true
14+
- type: textarea
15+
id: proposal
16+
attributes:
17+
label: Proposal
18+
description: What should change?
19+
validations:
20+
required: true
21+
- type: textarea
22+
id: alternatives
23+
attributes:
24+
label: Alternatives considered
25+
description: What workarounds or designs did you consider?
26+
- type: textarea
27+
id: examples
28+
attributes:
29+
label: Examples
30+
description: Include commands, scripts, JSON output, or links to related CLI behavior.
31+
render: bash
32+
- type: checkboxes
33+
id: scope
34+
attributes:
35+
label: Scope
36+
options:
37+
- label: This affects scripting or machine-readable output.
38+
- label: This affects authentication or token handling.
39+
- label: This affects release packaging or installation.
40+
- label: This affects documentation or examples.

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
## Summary
2+
3+
Explain the change, motivation, and user impact.
4+
5+
## Changes
6+
7+
-
8+
9+
## Verification
10+
11+
- [ ] `cargo fmt --all -- --check`
12+
- [ ] `cargo clippy --all-targets --all-features -- -D warnings`
13+
- [ ] `cargo test --all-targets --all-features`
14+
- [ ] `cargo audit`
15+
- [ ] `cargo build --release`
16+
- [ ] `./target/release/jira --help >/dev/null`
17+
- [ ] `./target/release/jira completions man --dir /tmp/jira-man`
18+
19+
## Release impact
20+
21+
- [ ] No release impact
22+
- [ ] User-facing behavior changed
23+
- [ ] New command, flag, output field, or exit code
24+
- [ ] Docs, README, examples, completions, or man pages updated
25+
- [ ] Packaging, Homebrew, Scoop, or GitHub Actions changed
26+
27+
## Safety
28+
29+
- [ ] No secrets, tokens, private Jira data, or debug credentials are committed.
30+
- [ ] Mutating commands support confirmation, `--no-input`, or `--dry-run` where appropriate.
31+
- [ ] Machine-readable output remains stable or the change is documented.

.github/dependabot.yml

Lines changed: 28 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,32 @@
11
version: 2
22
updates:
3-
- package-ecosystem: cargo
4-
directory: /
3+
- package-ecosystem: "cargo"
4+
directory: "/"
55
schedule:
6-
interval: weekly
7-
- package-ecosystem: github-actions
8-
directory: /
6+
interval: "weekly"
7+
day: "monday"
8+
open-pull-requests-limit: 10
9+
labels:
10+
- "dependencies"
11+
- "rust"
12+
commit-message:
13+
prefix: "deps"
14+
groups:
15+
rust-minor:
16+
patterns:
17+
- "*"
18+
update-types:
19+
- "minor"
20+
- "patch"
21+
22+
- package-ecosystem: "github-actions"
23+
directory: "/"
924
schedule:
10-
interval: weekly
25+
interval: "weekly"
26+
day: "monday"
27+
open-pull-requests-limit: 5
28+
labels:
29+
- "dependencies"
30+
- "ci"
31+
commit-message:
32+
prefix: "ci"

.github/workflows/ci.yml

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ jobs:
2323
name: Workflow Lint
2424
runs-on: ubuntu-latest
2525
steps:
26-
- uses: actions/checkout@v4
26+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
2727
- name: Run actionlint
2828
uses: docker://rhysd/actionlint:1.7.7
2929
with:
@@ -33,7 +33,7 @@ jobs:
3333
name: Format
3434
runs-on: ubuntu-latest
3535
steps:
36-
- uses: actions/checkout@v4
36+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
3737
- uses: dtolnay/rust-toolchain@3c5f7ea28cd621ae0bf5283f0e981fb97b8a7af9 # stable
3838
with:
3939
toolchain: stable
@@ -44,12 +44,12 @@ jobs:
4444
name: Clippy
4545
runs-on: ubuntu-latest
4646
steps:
47-
- uses: actions/checkout@v4
47+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
4848
- uses: dtolnay/rust-toolchain@3c5f7ea28cd621ae0bf5283f0e981fb97b8a7af9 # stable
4949
with:
5050
toolchain: stable
5151
components: clippy
52-
- uses: actions/cache@v4
52+
- uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5
5353
with:
5454
path: |
5555
~/.cargo/registry
@@ -68,11 +68,11 @@ jobs:
6868
matrix:
6969
os: [ubuntu-latest, macos-latest, windows-latest]
7070
steps:
71-
- uses: actions/checkout@v4
71+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
7272
- uses: dtolnay/rust-toolchain@3c5f7ea28cd621ae0bf5283f0e981fb97b8a7af9 # stable
7373
with:
7474
toolchain: stable
75-
- uses: actions/cache@v4
75+
- uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5
7676
with:
7777
path: |
7878
~/.cargo/registry
@@ -87,11 +87,11 @@ jobs:
8787
runs-on: ubuntu-latest
8888
needs: [fmt, clippy]
8989
steps:
90-
- uses: actions/checkout@v4
90+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
9191
- uses: dtolnay/rust-toolchain@3c5f7ea28cd621ae0bf5283f0e981fb97b8a7af9 # stable
9292
with:
9393
toolchain: stable
94-
- uses: actions/cache@v4
94+
- uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5
9595
with:
9696
path: |
9797
~/.cargo/registry
@@ -112,11 +112,11 @@ jobs:
112112
name: Security Audit
113113
runs-on: ubuntu-latest
114114
steps:
115-
- uses: actions/checkout@v4
115+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
116116
- uses: dtolnay/rust-toolchain@3c5f7ea28cd621ae0bf5283f0e981fb97b8a7af9 # stable
117117
with:
118118
toolchain: stable
119-
- uses: actions/cache@v4
119+
- uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5
120120
with:
121121
path: |
122122
~/.cargo/registry

.github/workflows/jira-cloud-smoke.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,11 @@ jobs:
2626
name: Jira Cloud Sandbox Smoke
2727
runs-on: ubuntu-latest
2828
steps:
29-
- uses: actions/checkout@v4
29+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
3030
- uses: dtolnay/rust-toolchain@3c5f7ea28cd621ae0bf5283f0e981fb97b8a7af9 # stable
3131
with:
3232
toolchain: stable
33-
- uses: actions/cache@v4
33+
- uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5
3434
with:
3535
path: |
3636
~/.cargo/registry

0 commit comments

Comments
 (0)