Skip to content

Commit 39db815

Browse files
committed
initial commit
0 parents  commit 39db815

Some content is hidden

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

41 files changed

+4291
-0
lines changed

.dockerignore

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# Git
2+
.git
3+
.gitignore
4+
5+
# Documentation
6+
*.md
7+
docs/
8+
9+
# CI/CD
10+
.github/
11+
12+
# IDE
13+
.vscode/
14+
.idea/
15+
16+
# Build artifacts
17+
target/
18+
Cargo.lock
19+
20+
# Local configs and data
21+
config.yaml
22+
cloned_repos/
23+
logs/
24+
25+
# OS specific
26+
.DS_Store
27+
Thumbs.db

.editorconfig

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# EditorConfig is awesome: https://EditorConfig.org
2+
3+
root = true
4+
5+
[*]
6+
indent_style = space
7+
indent_size = 4
8+
end_of_line = lf
9+
charset = utf-8
10+
trim_trailing_whitespace = true
11+
insert_final_newline = true
12+
13+
[*.rs]
14+
indent_size = 4
15+
indent_style = tab
16+
17+
[{*.yaml,*.yml}]
18+
indent_style = space
19+
indent_size = 2
20+
21+
[Makefile]
22+
indent_style = tab
23+
max_line_length = off
24+
trim_trailing_whitespace = false

.github/copilot-instructions.md

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
---
2+
applyTo: "**/*.rs"
3+
---
4+
5+
# Copilot Instructions for Rust Project
6+
7+
## Project Overview
8+
9+
Repos is a CLI tool to manage multiple GitHub repositories - clone them, run
10+
commands across all repositories, create pull requests, and more—all with
11+
colored output and comprehensive logging.
12+
13+
## Code Style & Standards
14+
15+
### **CORE PRINCIPLE: Absolute Minimal Changes**
16+
17+
- **ALWAYS prefer the smallest possible change that fixes the issue**
18+
- **Never refactor existing working code unless specifically requested**
19+
- **Only modify the exact lines/methods that need fixing**
20+
- **Preserve existing code style, naming, and patterns**
21+
- **Add code only when absolutely necessary to fix the specific issue**
22+
- **When fixing bugs, change only what's broken, not what could be improved**
23+
24+
## Documentation Standards
25+
26+
### Minimal Documentation Changes
27+
28+
- **Add documentation only when fixing documentation-related issues**
29+
- **Update only incorrect/outdated information**
30+
- **Don't add documentation to working undocumented code unless requested**
31+
32+
This project emphasizes making the smallest possible changes to achieve the
33+
desired fix, preserving existing working code and patterns wherever possible.

.github/dependabot.yml

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
# Configuration for Dependabot version updates
2+
# See: https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
3+
4+
version: 2
5+
updates:
6+
# Enable version updates for Cargo (Rust dependencies)
7+
- package-ecosystem: "cargo"
8+
directory: "/"
9+
schedule:
10+
interval: "weekly"
11+
day: "monday"
12+
time: "09:00"
13+
timezone: "Etc/UTC"
14+
open-pull-requests-limit: 10
15+
reviewers:
16+
- "codcod"
17+
assignees:
18+
- "codcod"
19+
commit-message:
20+
prefix: "deps"
21+
prefix-development: "deps-dev"
22+
include: "scope"
23+
labels:
24+
- "dependencies"
25+
- "rust"
26+
# Group minor and patch updates together to reduce PR noise
27+
groups:
28+
rust-dependencies:
29+
patterns:
30+
- "*"
31+
update-types:
32+
- "minor"
33+
- "patch"
34+
35+
# Enable version updates for GitHub Actions
36+
- package-ecosystem: "github-actions"
37+
directory: "/"
38+
schedule:
39+
interval: "weekly"
40+
day: "monday"
41+
time: "09:00"
42+
timezone: "Etc/UTC"
43+
open-pull-requests-limit: 5
44+
reviewers:
45+
- "codcod"
46+
assignees:
47+
- "codcod"
48+
commit-message:
49+
prefix: "ci"
50+
include: "scope"
51+
labels:
52+
- "dependencies"
53+
- "github-actions"
54+
- "ci"
55+
56+
# Enable version updates for Docker
57+
# - package-ecosystem: "docker"
58+
# directory: "/"
59+
# schedule:
60+
# interval: "weekly"
61+
# day: "monday"
62+
# time: "09:00"
63+
# timezone: "Etc/UTC"
64+
# open-pull-requests-limit: 3
65+
# reviewers:
66+
# - "codcod"
67+
# assignees:
68+
# - "codcod"
69+
# commit-message:
70+
# prefix: "docker"
71+
# include: "scope"
72+
# labels:
73+
# - "dependencies"
74+
# - "docker"

.github/workflows/ci.yml

Lines changed: 147 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,147 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
pull_request:
6+
7+
env:
8+
CARGO_TERM_COLOR: always
9+
10+
jobs:
11+
test:
12+
name: Test
13+
runs-on: ubuntu-latest
14+
strategy:
15+
matrix:
16+
rust:
17+
- stable
18+
- beta
19+
- nightly
20+
21+
steps:
22+
- name: Checkout code
23+
uses: actions/checkout@v4
24+
25+
- name: Install Rust
26+
uses: dtolnay/rust-toolchain@master
27+
with:
28+
toolchain: ${{ matrix.rust }}
29+
30+
- name: Cache dependencies
31+
uses: actions/cache@v4
32+
with:
33+
path: |
34+
~/.cargo/bin/
35+
~/.cargo/registry/index/
36+
~/.cargo/registry/cache/
37+
~/.cargo/git/db/
38+
target/
39+
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
40+
41+
- name: Check formatting
42+
run: cargo fmt --all -- --check
43+
if: matrix.rust == 'stable'
44+
45+
- name: Run clippy
46+
run: cargo clippy --all-targets --all-features -- -D warnings
47+
if: matrix.rust == 'stable'
48+
49+
- name: Run tests
50+
run: cargo test --verbose
51+
52+
- name: Build
53+
run: cargo build --verbose --release
54+
55+
security_audit:
56+
name: Security Audit
57+
runs-on: ubuntu-latest
58+
steps:
59+
- name: Checkout code
60+
uses: actions/checkout@v4
61+
62+
- name: Install Rust
63+
uses: dtolnay/rust-toolchain@stable
64+
65+
- name: Cache dependencies
66+
uses: actions/cache@v4
67+
with:
68+
path: |
69+
~/.cargo/bin/
70+
~/.cargo/registry/index/
71+
~/.cargo/registry/cache/
72+
~/.cargo/git/db/
73+
target/
74+
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
75+
76+
- name: Install cargo-audit
77+
run: cargo install cargo-audit
78+
79+
- name: Run security audit
80+
run: cargo audit
81+
82+
# coverage:
83+
# name: Code Coverage
84+
# runs-on: ubuntu-latest
85+
# steps:
86+
# - name: Checkout code
87+
# uses: actions/checkout@v4
88+
89+
# - name: Install Rust
90+
# uses: dtolnay/rust-toolchain@stable
91+
# with:
92+
# components: llvm-tools-preview
93+
94+
# - name: Cache dependencies
95+
# uses: actions/cache@v4
96+
# with:
97+
# path: |
98+
# ~/.cargo/bin/
99+
# ~/.cargo/registry/index/
100+
# ~/.cargo/registry/cache/
101+
# ~/.cargo/git/db/
102+
# target/
103+
# key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
104+
105+
# - name: Install cargo-llvm-cov
106+
# uses: taiki-e/install-action@cargo-llvm-cov
107+
108+
# - name: Generate code coverage
109+
# run: cargo llvm-cov --all-features --workspace --lcov --output-path lcov.info
110+
111+
# - name: Upload coverage to Codecov
112+
# uses: codecov/codecov-action@v4
113+
# with:
114+
# token: ${{ secrets.CODECOV_TOKEN }}
115+
# files: lcov.info
116+
# fail_ci_if_error: true
117+
118+
cross_platform:
119+
name: Cross Platform Build
120+
runs-on: ${{ matrix.os }}
121+
strategy:
122+
matrix:
123+
os: [ubuntu-latest, macos-latest]
124+
125+
steps:
126+
- name: Checkout code
127+
uses: actions/checkout@v4
128+
129+
- name: Install Rust
130+
uses: dtolnay/rust-toolchain@stable
131+
132+
- name: Cache dependencies
133+
uses: actions/cache@v4
134+
with:
135+
path: |
136+
~/.cargo/bin/
137+
~/.cargo/registry/index/
138+
~/.cargo/registry/cache/
139+
~/.cargo/git/db/
140+
target/
141+
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
142+
143+
- name: Build
144+
run: cargo build --verbose --release
145+
146+
- name: Test
147+
run: cargo test --verbose

0 commit comments

Comments
 (0)