Skip to content

Commit 25eec38

Browse files
committed
initial commit
0 parents  commit 25eec38

23 files changed

+1138
-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:security@alpenlabs.io) 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: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
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+
- [ ] Security fix
21+
22+
## Notes to Reviewers
23+
24+
<!--
25+
Anything in particular you want to note that will help reviewers fulfill their role
26+
in reviewing this PR?
27+
-->
28+
29+
## Checklist
30+
31+
<!--
32+
Ensure all the following are checked:
33+
-->
34+
35+
- [ ] I have performed a self-review of my code.
36+
- [ ] I have commented my code where necessary.
37+
- [ ] I have updated the documentation if needed.
38+
- [ ] My changes do not introduce new warnings.
39+
- [ ] I have added tests that prove my changes are effective or that my feature works.
40+
- [ ] New and existing tests pass with my changes.
41+
42+
## Related Issues
43+
44+
<!--
45+
Link any related issues (e.g., `closes #123`, `fixes #456`).
46+
-->

.github/dependabot.yml

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
version: 2
2+
updates:
3+
# GitHub Actions dependencies
4+
- package-ecosystem: "github-actions"
5+
directory: "/"
6+
schedule:
7+
interval: "monthly"
8+
time: "00:00"
9+
# Group all updates into a single PR
10+
groups:
11+
all-dependencies:
12+
patterns:
13+
- "*"
14+
update-types:
15+
- "minor"
16+
- "patch"
17+
open-pull-requests-limit: 10
18+
commit-message:
19+
# Use conventional commit format as specified in user rules
20+
prefix: "chore(deps)"
21+
include: "scope"
22+
23+
# Rust/Cargo dependencies
24+
- package-ecosystem: "cargo"
25+
directory: "/"
26+
schedule:
27+
interval: "weekly"
28+
day: "monday"
29+
time: "00:00"
30+
# Group non-security updates
31+
groups:
32+
rust-dependencies:
33+
patterns:
34+
- "*"
35+
update-types:
36+
- "minor"
37+
- "patch"
38+
# Security updates remain ungrouped for urgent handling
39+
open-pull-requests-limit: 20
40+
commit-message:
41+
prefix: "chore(deps)"
42+
include: "scope"

.github/workflows/cron-zizmor.yml

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
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+
contents: read
16+
steps:
17+
- name: Checkout repository
18+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
19+
with:
20+
persist-credentials: false
21+
22+
- name: Install the latest version of uv
23+
uses: astral-sh/setup-uv@f0ec1fc3b38f5e7cd731bb6ce540c5af426746bb # v6.1.0
24+
25+
- name: Run zizmor 🌈
26+
run: uvx zizmor --format sarif . > results.sarif
27+
env:
28+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
29+
30+
- name: Upload SARIF file
31+
uses: github/codeql-action/upload-sarif@ff0a06e83cb2de871e5a09832bc6a81e7276941f # v3.28.18
32+
with:
33+
sarif_file: results.sarif
34+
category: zizmor

.github/workflows/docs.yml

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
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+
permissions:
20+
contents: read
21+
steps:
22+
- name: Checkout repository
23+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
24+
with:
25+
persist-credentials: false
26+
27+
- name: Install Rust toolchain
28+
uses: dtolnay/rust-toolchain@fcf085fcb4b4b8f63f96906cd713eb52181b5ea4 # stable
29+
30+
- name: Rust cache
31+
uses: Swatinem/rust-cache@9d47c6ad4b02e050fd481d890b2ea34778fd09d6 # v2
32+
with:
33+
cache-on-failure: true
34+
35+
- name: Check docs leaving the dependencies out
36+
env:
37+
RUSTDOCFLAGS: -A rustdoc::private-doc-tests -D warnings
38+
run: cargo doc --no-deps

.github/workflows/lint.yml

Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
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+
permissions:
20+
contents: read
21+
steps:
22+
- name: Checkout repository
23+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
24+
with:
25+
persist-credentials: false
26+
27+
- name: Install Rust toolchain
28+
uses: dtolnay/rust-toolchain@22a6a5b0f9f487c5f5587025ae9d4a1caf2a8a78 # clippy
29+
30+
- name: Rust cache
31+
uses: Swatinem/rust-cache@9d47c6ad4b02e050fd481d890b2ea34778fd09d6 # v2
32+
with:
33+
cache-on-failure: true
34+
35+
- name: Run clippy
36+
run: cargo clippy --workspace --examples --tests --benches --all-features --all-targets --locked
37+
env:
38+
RUSTFLAGS: -D warnings
39+
40+
fmt:
41+
name: Check code formatting
42+
runs-on: ubuntu-latest
43+
timeout-minutes: 30
44+
permissions:
45+
contents: read
46+
steps:
47+
- name: Checkout repository
48+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
49+
with:
50+
persist-credentials: false
51+
52+
- name: Install Rust toolchain
53+
uses: dtolnay/rust-toolchain@fcf085fcb4b4b8f63f96906cd713eb52181b5ea4 # stable
54+
with:
55+
components: rustfmt
56+
57+
- name: Check Rust formatting
58+
run: cargo fmt --all --check
59+
60+
taplo:
61+
name: Lint and check formatting of TOML files
62+
runs-on: ubuntu-latest
63+
timeout-minutes: 10
64+
permissions:
65+
contents: read
66+
steps:
67+
- name: Checkout repository
68+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
69+
with:
70+
persist-credentials: false
71+
72+
- name: Install latest taplo
73+
run: |
74+
curl -fsSL https://github.com/tamasfe/taplo/releases/latest/download/taplo-full-linux-x86_64.gz \
75+
| gzip -d - | install -m 755 /dev/stdin /usr/local/bin/taplo
76+
77+
- name: Run taplo lint
78+
run: |
79+
taplo lint
80+
81+
- name: Run taplo format check
82+
run: |
83+
taplo fmt --check
84+
85+
lint-success:
86+
name: Check that lints passed
87+
runs-on: ubuntu-latest
88+
if: always()
89+
needs:
90+
- clippy
91+
- fmt
92+
- taplo
93+
timeout-minutes: 30
94+
steps:
95+
- name: Decide whether the needed jobs succeeded or failed
96+
uses: re-actors/alls-green@05ac9388f0aebcb5727afa17fcccfecd6f8ec5fe # release/v1
97+
with:
98+
jobs: ${{ toJSON(needs) }}

.github/workflows/release.yml

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
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 repository
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+
permissions:
29+
contents: read
30+
steps:
31+
- name: Checkout repository
32+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
33+
with:
34+
persist-credentials: false
35+
36+
- name: Install Rust toolchain
37+
uses: dtolnay/rust-toolchain@fcf085fcb4b4b8f63f96906cd713eb52181b5ea4 # stable
38+
39+
- name: Publish to crates.io
40+
run: cargo publish
41+
env:
42+
CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}

0 commit comments

Comments
 (0)