Skip to content

Commit b9055ea

Browse files
committed
initial commit
0 parents  commit b9055ea

26 files changed

+5479
-0
lines changed

.github/ISSUE_TEMPLATE/bug.yml

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
name: Bug Report
2+
description: Create a bug report
3+
labels: ["bug"]
4+
body:
5+
- type: markdown
6+
attributes:
7+
value: |
8+
Thanks for taking the time to fill out this bug report! Please provide as much detail as possible.
9+
10+
If you believe you have found a vulnerability, please provide details [here](mailto:[email protected]) instead.
11+
- type: textarea
12+
id: what-happened
13+
attributes:
14+
label: Describe the bug
15+
description: |
16+
A clear and concise description of what the bug is.
17+
18+
If the bug is in a crate you are using please mention that as well.
19+
validations:
20+
required: true
21+
- type: textarea
22+
id: reproduction-steps
23+
attributes:
24+
label: Steps to reproduce
25+
description: Please provide any steps you think might be relevant to reproduce the bug.
26+
placeholder: |
27+
Steps to reproduce:
28+
29+
1. Start '...'
30+
2. Then '...'
31+
3. Check '...'
32+
4. See error
33+
validations:
34+
required: true
35+
- type: dropdown
36+
id: platform
37+
attributes:
38+
label: Platform(s)
39+
description: If the issue is with the full node, what platform(s) did this occur on?
40+
multiple: true
41+
options:
42+
- Linux (x86)
43+
- Linux (ARM)
44+
- Mac (Intel)
45+
- Mac (Apple Silicon)
46+
- Windows (x86)
47+
- Windows (ARM)
48+
validations:
49+
required: false
50+
- type: checkboxes
51+
id: terms
52+
attributes:
53+
label: Code of Conduct
54+
description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/alpenlabs/bitcoind-async-client/blob/main/CONTRIBUTING.md#code-of-conduct)
55+
options:
56+
- label: I agree to follow the Code of Conduct
57+
required: true

.github/ISSUE_TEMPLATE/feature.yml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
name: Feature request
2+
description: Suggest a feature
3+
labels: ["enhancement"]
4+
body:
5+
- type: markdown
6+
attributes:
7+
value: |
8+
Please ensure that the feature has not already been requested in the issue tracker.
9+
- type: textarea
10+
attributes:
11+
label: Describe the feature
12+
description: |
13+
Please describe the feature and what it is aiming to solve, if relevant.
14+
15+
If the feature is for a crate, please include a proposed API surface.
16+
validations:
17+
required: true
18+
- type: textarea
19+
attributes:
20+
label: Additional context
21+
description: Add any other context to the feature (like screenshots, resources)

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
## Description
2+
3+
<!--
4+
Provide a brief summary of the changes and the motivation behind them.
5+
-->
6+
7+
### Type of Change
8+
9+
<!--
10+
Select the type of change your PR introduces (put an `x` in all that apply):
11+
-->
12+
13+
- [ ] Bug fix (non-breaking change which fixes an issue)
14+
- [ ] New feature/Enhancement (non-breaking change which adds functionality or enhances an existing one)
15+
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
16+
- [ ] Documentation update
17+
- [ ] Refactor
18+
- [ ] New or updated tests
19+
- [ ] Dependency Update
20+
21+
## Notes to Reviewers
22+
23+
<!--
24+
Anything in particular you want to note that will help reviewers fulfill their role
25+
in reviewing this PR?
26+
-->
27+
28+
## Checklist
29+
30+
<!--
31+
Ensure all the following are checked:
32+
-->
33+
34+
- [ ] I have performed a self-review of my code.
35+
- [ ] I have commented my code where necessary.
36+
- [ ] I have updated the documentation if needed.
37+
- [ ] My changes do not introduce new warnings.
38+
- [ ] I have added tests that prove my changes are effective or that my feature works.
39+
- [ ] New and existing tests pass with my changes.
40+
41+
## Related Issues
42+
43+
<!--
44+
Link any related issues (e.g., `closes #123`, `fixes #456`).
45+
-->

.github/dependabot.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
version: 2
2+
updates:
3+
- package-ecosystem: "github-actions"
4+
directory: "/"
5+
schedule:
6+
interval: "monthly"
7+
- package-ecosystem: "cargo"
8+
directory: "/"
9+
schedule:
10+
interval: "monthly"

.github/workflows/cron-zizmor.yml

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
name: Automated GitHub Actions Security Analysis with zizmor 🌈
2+
3+
on:
4+
schedule:
5+
- cron: "0 0 * * *" # Run every day at midnight
6+
7+
permissions: {}
8+
9+
jobs:
10+
zizmor:
11+
name: zizmor latest via PyPI
12+
runs-on: ubuntu-latest
13+
permissions:
14+
security-events: write
15+
steps:
16+
- name: Checkout repository
17+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
18+
with:
19+
persist-credentials: false
20+
21+
- name: Install the latest version of uv
22+
uses: astral-sh/setup-uv@6b9c6063abd6010835644d4c2e1bef4cf5cd0fca # v6.0.1
23+
24+
- name: Run zizmor 🌈
25+
run: uvx zizmor --format sarif . > results.sarif
26+
env:
27+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
28+
29+
- name: Upload SARIF file
30+
uses: github/codeql-action/upload-sarif@28deaeda66b76a05916b6923827895f2b14ab387 # v3
31+
with:
32+
sarif_file: results.sarif
33+
category: zizmor

.github/workflows/docs.yml

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
name: Docs
2+
3+
on:
4+
pull_request:
5+
merge_group:
6+
push:
7+
branches: [main]
8+
9+
env:
10+
CARGO_TERM_COLOR: always
11+
12+
permissions: {}
13+
14+
jobs:
15+
docs:
16+
name: Generate docs
17+
runs-on: ubuntu-latest
18+
timeout-minutes: 60
19+
steps:
20+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
21+
with:
22+
persist-credentials: false
23+
- uses: dtolnay/rust-toolchain@fcf085fcb4b4b8f63f96906cd713eb52181b5ea4 # stable
24+
25+
- uses: Swatinem/rust-cache@9d47c6ad4b02e050fd481d890b2ea34778fd09d6 # v2
26+
with:
27+
cache-on-failure: true
28+
29+
- name: Check docs leaving the dependencies out
30+
env:
31+
RUSTDOCFLAGS: -A rustdoc::private-doc-tests -D warnings
32+
run: cargo doc --no-deps

.github/workflows/lint.yml

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
name: Lint
2+
3+
on:
4+
pull_request:
5+
merge_group:
6+
push:
7+
branches: [main]
8+
9+
env:
10+
CARGO_TERM_COLOR: always
11+
12+
permissions: {}
13+
14+
jobs:
15+
clippy:
16+
name: Run clippy on crates
17+
runs-on: ubuntu-latest
18+
timeout-minutes: 60
19+
steps:
20+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
21+
with:
22+
persist-credentials: false
23+
- uses: dtolnay/rust-toolchain@22a6a5b0f9f487c5f5587025ae9d4a1caf2a8a78 # clippy
24+
- uses: Swatinem/rust-cache@9d47c6ad4b02e050fd481d890b2ea34778fd09d6 # v2
25+
with:
26+
cache-on-failure: true
27+
- run: cargo clippy --examples --tests --benches --all-features --all-targets --locked
28+
env:
29+
RUSTFLAGS: -D warnings
30+
31+
fmt:
32+
name: Check code formatting
33+
runs-on: ubuntu-latest
34+
timeout-minutes: 30
35+
steps:
36+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
37+
with:
38+
persist-credentials: false
39+
- uses: dtolnay/rust-toolchain@fcf085fcb4b4b8f63f96906cd713eb52181b5ea4 # stable
40+
with:
41+
components: rustfmt
42+
- run: cargo fmt --all --check
43+
44+
taplo:
45+
name: Lint and check formatting of TOML files
46+
runs-on: ubuntu-latest
47+
timeout-minutes: 10
48+
steps:
49+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
50+
with:
51+
persist-credentials: false
52+
- name: Install taplo
53+
run: |
54+
curl -fsSL https://github.com/tamasfe/taplo/releases/latest/download/taplo-full-linux-x86_64.gz \
55+
| gzip -d - | install -m 755 /dev/stdin /usr/local/bin/taplo
56+
- name: Run taplo lint
57+
run: |
58+
taplo lint
59+
- name: Run taplo format check
60+
run: |
61+
taplo fmt --check
62+
63+
lint-success:
64+
name: Check that lints passed
65+
runs-on: ubuntu-latest
66+
if: always()
67+
needs:
68+
- clippy
69+
- fmt
70+
- taplo
71+
timeout-minutes: 30
72+
steps:
73+
- name: Decide whether the needed jobs succeeded or failed
74+
uses: re-actors/alls-green@05ac9388f0aebcb5727afa17fcccfecd6f8ec5fe # release/v1
75+
with:
76+
jobs: ${{ toJSON(needs) }}

.github/workflows/release.yml

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
name: Build and upload binaries to release
2+
3+
on:
4+
push:
5+
tags:
6+
- "v*"
7+
8+
permissions: {}
9+
10+
jobs:
11+
github:
12+
name: Publish Release on GitHub
13+
runs-on: ubuntu-latest
14+
permissions:
15+
contents: write
16+
steps:
17+
- name: Checkout code
18+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
19+
with:
20+
persist-credentials: false
21+
22+
- name: Upload binary to release
23+
uses: ncipollo/release-action@440c8c1cb0ed28b9f43e4d1d670870f059653174 # v1
24+
25+
cratesio:
26+
name: Publish Release to Crates.io
27+
runs-on: ubuntu-latest
28+
steps:
29+
- name: Checkout code
30+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
31+
with:
32+
persist-credentials: false
33+
34+
- name: Setup Rust
35+
uses: dtolnay/rust-toolchain@fcf085fcb4b4b8f63f96906cd713eb52181b5ea4 # stable
36+
37+
- name: Publish to Crates.io - Library
38+
run: cargo publish -p bitcoind-async-client
39+
env:
40+
CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}

.github/workflows/security.yml

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
name: Security
2+
3+
on:
4+
pull_request:
5+
merge_group:
6+
push:
7+
branches: [main]
8+
9+
env:
10+
CARGO_TERM_COLOR: always
11+
12+
permissions: {}
13+
14+
jobs:
15+
supply-chain:
16+
name: Run `cargo-audit`
17+
runs-on: ubuntu-latest
18+
timeout-minutes: 30
19+
steps:
20+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
21+
with:
22+
persist-credentials: false
23+
24+
- uses: dtolnay/rust-toolchain@22a6a5b0f9f487c5f5587025ae9d4a1caf2a8a78 # clippy
25+
26+
- uses: Swatinem/rust-cache@9d47c6ad4b02e050fd481d890b2ea34778fd09d6 # v2
27+
with:
28+
cache-on-failure: true
29+
30+
- name: Install cargo-audit
31+
run: cargo install cargo-audit --force --locked
32+
33+
- name: Check for audit warnings
34+
run: cargo audit -D warnings
35+
continue-on-error: true
36+
37+
- name: Check for vulnerabilities
38+
run: cargo audit

0 commit comments

Comments
 (0)