Skip to content

Commit ccede67

Browse files
committed
feat: Initial release of git-workers - Interactive Git worktree manager
0 parents  commit ccede67

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

57 files changed

+9973
-0
lines changed

.github/FUNDING.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# These are supported funding model platforms
2+
3+
github: wasabeef
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
---
2+
name: Bug report
3+
about: Create a report to help us improve
4+
title: '[BUG] '
5+
labels: 'bug'
6+
assignees: ''
7+
---
8+
9+
## Describe the bug
10+
11+
A clear and concise description of what the bug is.
12+
13+
## To Reproduce
14+
15+
Steps to reproduce the behavior:
16+
1. Run command '...'
17+
2. Select option '...'
18+
3. See error
19+
20+
## Expected behavior
21+
22+
A clear and concise description of what you expected to happen.
23+
24+
## Actual behavior
25+
26+
What actually happened.
27+
28+
## Environment
29+
30+
- Git Workers version: [e.g. 0.1.0] (run `gw --version`)
31+
- OS: [e.g. macOS 14.0, Ubuntu 22.04]
32+
- Git version: [e.g. 2.42.0] (run `git --version`)
33+
- Shell: [e.g. bash 5.2, zsh 5.9]
34+
35+
## Additional context
36+
37+
Add any other context about the problem here.
38+
39+
## Error messages
40+
41+
```
42+
Paste any error messages here
43+
```
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
---
2+
name: Feature request
3+
about: Suggest an idea for this project
4+
title: '[FEATURE] '
5+
labels: 'enhancement'
6+
assignees: ''
7+
---
8+
9+
## Is your feature request related to a problem? Please describe.
10+
11+
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
12+
13+
## Describe the solution you'd like
14+
15+
A clear and concise description of what you want to happen.
16+
17+
## Describe alternatives you've considered
18+
19+
A clear and concise description of any alternative solutions or features you've considered.
20+
21+
## Additional context
22+
23+
Add any other context or screenshots about the feature request here.
24+
25+
## Implementation suggestions
26+
27+
If you have ideas about how this could be implemented, please share them here.

.github/cliff.toml

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
# git-cliff configuration file
2+
# https://git-cliff.org/docs/configuration
3+
4+
[changelog]
5+
# changelog header
6+
header = """
7+
# Changelog\n
8+
All notable changes to this project will be documented in this file.\n
9+
"""
10+
# template for the changelog body
11+
body = """
12+
{% if version %}\
13+
## [{{ version | trim_start_matches(pat="v") }}] - {{ timestamp | date(format="%Y-%m-%d") }}
14+
{% else %}\
15+
## [unreleased]
16+
{% endif %}\
17+
{% for group, commits in commits | group_by(attribute="group") %}
18+
### {{ group | upper_first }}
19+
{% for commit in commits %}
20+
- {% if commit.breaking %}[**breaking**] {% endif %}{{ commit.message | upper_first }} ([{{ commit.id | truncate(length=7, end="") }}](https://github.com/wasabeef/git-workers/commit/{{ commit.id }}))
21+
{%- endfor %}
22+
{% endfor %}\n
23+
"""
24+
# template for the changelog footer
25+
footer = """
26+
<!-- generated by git-cliff -->
27+
"""
28+
# remove the leading and trailing whitespace from the templates
29+
trim = true
30+
31+
[git]
32+
# parse the commits based on https://www.conventionalcommits.org
33+
conventional_commits = true
34+
# filter out the commits that are not conventional
35+
filter_unconventional = true
36+
# process each line of a commit as an individual commit
37+
split_commits = false
38+
# regex for preprocessing the commit messages
39+
commit_preprocessors = [
40+
{ pattern = '\((\w+\s)?#([0-9]+)\)', replace = "([#${2}](https://github.com/wasabeef/git-workers/issues/${2}))" },
41+
]
42+
# regex for parsing and grouping commits
43+
commit_parsers = [
44+
{ message = "^feat", group = "Features" },
45+
{ message = "^fix", group = "Bug Fixes" },
46+
{ message = "^doc", group = "Documentation" },
47+
{ message = "^perf", group = "Performance" },
48+
{ message = "^refactor", group = "Refactor" },
49+
{ message = "^style", group = "Styling" },
50+
{ message = "^test", group = "Testing" },
51+
{ message = "^chore\\(release\\): prepare for", skip = true },
52+
{ message = "^chore\\(deps\\)", skip = true },
53+
{ message = "^chore\\(pr\\)", skip = true },
54+
{ message = "^chore\\(pull\\)", skip = true },
55+
{ message = "^chore|ci", group = "Miscellaneous Tasks" },
56+
{ body = ".*security", group = "Security" },
57+
{ message = "^revert", group = "Revert" },
58+
]
59+
# protect against committing breaking changes
60+
protect_breaking_commits = false
61+
# filter out the commits that are not matched by commit parsers
62+
filter_commits = false
63+
# sort the tags topologically
64+
topo_order = false
65+
# sort the commits inside sections by oldest/newest order
66+
sort_commits = "oldest"

.github/pull_request_template.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
## Description
2+
3+
Brief description of changes
4+
5+
## Type of Change
6+
7+
- [ ] Bug fix (non-breaking change which fixes an issue)
8+
- [ ] New feature (non-breaking change which adds functionality)
9+
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
10+
- [ ] Documentation update
11+
12+
## Testing
13+
14+
- [ ] Tests pass locally with `cargo test`
15+
- [ ] Added new tests for new functionality
16+
- [ ] Manual testing completed
17+
18+
## Checklist
19+
20+
- [ ] My code follows the style guidelines (`cargo fmt`)
21+
- [ ] I have performed a self-review of my own code
22+
- [ ] I have commented my code, particularly in hard-to-understand areas
23+
- [ ] I have made corresponding changes to the documentation
24+
- [ ] My changes generate no new warnings (`cargo clippy`)
25+
- [ ] Any dependent changes have been merged and published
26+
27+
## Screenshots (if applicable)
28+
29+
Please add screenshots to help explain your changes.

.github/workflows/ci.yml

Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,120 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [ main ]
6+
pull_request:
7+
branches: [ main ]
8+
9+
env:
10+
CARGO_TERM_COLOR: always
11+
12+
jobs:
13+
check:
14+
name: Check
15+
runs-on: ${{ matrix.os }}
16+
strategy:
17+
matrix:
18+
os: [ubuntu-latest, macos-latest]
19+
rust: [stable]
20+
steps:
21+
- uses: actions/checkout@v4
22+
23+
- name: Install Rust
24+
uses: dtolnay/rust-toolchain@stable
25+
with:
26+
toolchain: ${{ matrix.rust }}
27+
components: rustfmt, clippy
28+
29+
- name: Cache cargo
30+
uses: actions/cache@v4
31+
with:
32+
path: |
33+
~/.cargo/bin/
34+
~/.cargo/registry/index/
35+
~/.cargo/registry/cache/
36+
~/.cargo/git/db/
37+
target/
38+
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
39+
40+
- name: Check
41+
run: cargo check --all-features
42+
43+
- name: Format
44+
run: cargo fmt -- --check
45+
46+
- name: Clippy
47+
run: cargo clippy --all-features -- -D warnings
48+
49+
test:
50+
name: Test
51+
runs-on: ${{ matrix.os }}
52+
strategy:
53+
matrix:
54+
os: [ubuntu-latest, macos-latest]
55+
rust: [stable]
56+
steps:
57+
- uses: actions/checkout@v4
58+
59+
- name: Install Rust
60+
uses: dtolnay/rust-toolchain@stable
61+
with:
62+
toolchain: ${{ matrix.rust }}
63+
64+
- name: Cache cargo
65+
uses: actions/cache@v4
66+
with:
67+
path: |
68+
~/.cargo/bin/
69+
~/.cargo/registry/index/
70+
~/.cargo/registry/cache/
71+
~/.cargo/git/db/
72+
target/
73+
key: ${{ runner.os }}-cargo-test-${{ hashFiles('**/Cargo.lock') }}
74+
75+
- name: Configure git
76+
run: |
77+
git config --global user.name "Test User"
78+
git config --global user.email "[email protected]"
79+
80+
- name: Test
81+
run: cargo test --all-features -- --test-threads=1
82+
env:
83+
RUST_BACKTRACE: 1
84+
CI: true
85+
86+
build:
87+
name: Build
88+
runs-on: ${{ matrix.os }}
89+
strategy:
90+
matrix:
91+
os: [ubuntu-latest, macos-latest]
92+
rust: [stable]
93+
steps:
94+
- uses: actions/checkout@v4
95+
96+
- name: Install Rust
97+
uses: dtolnay/rust-toolchain@stable
98+
with:
99+
toolchain: ${{ matrix.rust }}
100+
101+
- name: Cache cargo
102+
uses: actions/cache@v4
103+
with:
104+
path: |
105+
~/.cargo/bin/
106+
~/.cargo/registry/index/
107+
~/.cargo/registry/cache/
108+
~/.cargo/git/db/
109+
target/
110+
key: ${{ runner.os }}-cargo-build-${{ hashFiles('**/Cargo.lock') }}
111+
112+
- name: Build
113+
run: cargo build --release --all-features
114+
115+
- name: Upload artifacts
116+
uses: actions/upload-artifact@v4
117+
with:
118+
name: gw-${{ matrix.os }}
119+
path: |
120+
target/release/gw

0 commit comments

Comments
 (0)