Skip to content

Commit 25062b9

Browse files
committed
🎉initial commit
0 parents  commit 25062b9

File tree

373 files changed

+90930
-0
lines changed

Some content is hidden

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

373 files changed

+90930
-0
lines changed

.github/dependabot.yml

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# To get started with Dependabot version updates, you'll need to specify which
2+
# package ecosystems to update and where the package manifests are located.
3+
# Please see the documentation for all configuration options:
4+
# https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file
5+
6+
version: 2
7+
updates:
8+
# Go modules
9+
- package-ecosystem: "gomod"
10+
directory: "/"
11+
schedule:
12+
interval: "weekly"
13+
open-pull-requests-limit: 5
14+
15+
# Documentation (VitePress)
16+
- package-ecosystem: "npm"
17+
directory: "/docs"
18+
schedule:
19+
interval: "weekly"
20+
open-pull-requests-limit: 5
21+
ignore:
22+
# Ignore major version updates for stability
23+
- dependency-name: "vitepress"
24+
update-types: ["version-update:semver-major"]
25+
# Temporarily ignore esbuild until compatibility is resolved
26+
- dependency-name: "esbuild"
27+
versions: [">=0.25.0"]
28+
29+
# Root package.json (MCP inspector scripts only)
30+
# Note: This package.json only contains pnpm dlx scripts, not actual dependencies
31+
# Commenting out to avoid errors with @modelcontextprotocol/inspector
32+
# - package-ecosystem: "npm"
33+
# directory: "/"
34+
# schedule:
35+
# interval: "weekly"

.github/workflows/auto-merge.yml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
name: Auto-merge Dependabot PRs
2+
on:
3+
pull_request:
4+
types:
5+
- opened
6+
- synchronize
7+
8+
permissions:
9+
contents: write
10+
pull-requests: write
11+
12+
jobs:
13+
auto-merge:
14+
runs-on: ubuntu-latest
15+
steps:
16+
- name: Checkout code
17+
uses: actions/checkout@v3
18+
19+
- name: Auto-merge Dependabot PRs
20+
if: github.actor == 'dependabot[bot]'
21+
run: |
22+
gh pr merge ${{ github.event.pull_request.number }} --squash --auto --repo ${{ github.repository }}
23+
env:
24+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

.github/workflows/docs-deploy.yml

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
name: Deploy Documentation
2+
3+
on:
4+
push:
5+
branches:
6+
- develop
7+
paths:
8+
- "docs/**"
9+
- ".github/workflows/docs-deploy.yml"
10+
workflow_dispatch:
11+
12+
permissions:
13+
contents: write
14+
15+
concurrency:
16+
group: docs-deploy
17+
cancel-in-progress: true
18+
19+
jobs:
20+
build-and-deploy:
21+
runs-on: ubuntu-latest
22+
steps:
23+
- name: Checkout
24+
uses: actions/checkout@v4
25+
with:
26+
fetch-depth: 0
27+
28+
- name: Setup Bun
29+
uses: oven-sh/setup-bun@v2
30+
with:
31+
bun-version: latest
32+
33+
- name: Install dependencies
34+
working-directory: ./docs
35+
run: bun install --frozen-lockfile
36+
37+
- name: Build documentation
38+
working-directory: ./docs
39+
env:
40+
VITE_BASE: "/virga/"
41+
VITE_GA_ID: ${{ secrets.VITE_GA_ID }}
42+
VITE_COMMIT_HASH: ${{ github.sha }}
43+
run: |
44+
bun run docs:build
45+
46+
- name: Deploy to GitHub Pages
47+
uses: peaceiris/actions-gh-pages@v4
48+
with:
49+
github_token: ${{ secrets.GITHUB_TOKEN }}
50+
publish_dir: ./docs/.vitepress/dist

.github/workflows/docs-preview.yml

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
name: Deploy PR Preview
2+
3+
on:
4+
pull_request:
5+
types:
6+
- opened
7+
- reopened
8+
- synchronize
9+
- closed
10+
paths:
11+
- "docs/**"
12+
- ".github/workflows/docs-preview.yml"
13+
branches-ignore:
14+
- "dependabot/*"
15+
16+
concurrency:
17+
group: pr-preview-${{ github.event.number }}
18+
cancel-in-progress: true
19+
20+
jobs:
21+
build-and-deploy-preview:
22+
runs-on: ubuntu-latest
23+
permissions:
24+
contents: write
25+
pull-requests: write
26+
27+
steps:
28+
- name: Checkout
29+
uses: actions/checkout@v4
30+
31+
- name: Setup Bun
32+
if: github.event.action != 'closed'
33+
uses: oven-sh/setup-bun@v2
34+
with:
35+
bun-version: latest
36+
37+
- name: Install dependencies
38+
if: github.event.action != 'closed'
39+
working-directory: ./docs
40+
run: bun install --frozen-lockfile
41+
42+
- name: Build documentation
43+
if: github.event.action != 'closed'
44+
working-directory: ./docs
45+
run: |
46+
export VITE_BASE="/virga/pr-preview/pr-${{ github.event.number }}/"
47+
bun run docs:build
48+
49+
- name: Deploy PR preview
50+
uses: rossjrw/pr-preview-action@v1
51+
with:
52+
source-dir: ./docs/.vitepress/dist
53+
preview-branch: gh-pages
54+
umbrella-dir: pr-preview
55+
action: ${{ github.event.action == 'closed' && 'remove' || 'deploy' }}
56+
pages-base-url: "r74tech.github.io/virga"

.gitignore

Lines changed: 184 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,184 @@
1+
# Created by https://www.toptal.com/developers/gitignore/api/go,node
2+
# Edit at https://www.toptal.com/developers/gitignore?templates=go,node
3+
4+
### Go ###
5+
# If you prefer the allow list template instead of the deny list, see community template:
6+
# https://github.com/github/gitignore/blob/main/community/Golang/Go.AllowList.gitignore
7+
#
8+
# Binaries for programs and plugins
9+
bin/
10+
dist/
11+
*.exe
12+
*.exe~
13+
*.dll
14+
*.so
15+
*.dylib
16+
17+
# Test binary, built with `go test -c`
18+
*.test
19+
20+
# Output of the go coverage tool, specifically when used with LiteIDE
21+
*.out
22+
23+
# Dependency directories
24+
vendor/
25+
26+
# Data directories
27+
data/
28+
logs/
29+
30+
# IDE-specific files
31+
.idea/
32+
.vscode/
33+
*.swp
34+
*.swo
35+
*~
36+
37+
# Go workspace file
38+
go.work
39+
40+
# OS-specific files
41+
.DS_Store
42+
Thumbs.db
43+
44+
### Node ###
45+
# Logs
46+
logs
47+
*.log
48+
npm-debug.log*
49+
yarn-debug.log*
50+
yarn-error.log*
51+
lerna-debug.log*
52+
.pnpm-debug.log*
53+
54+
# Diagnostic reports (https://nodejs.org/api/report.html)
55+
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
56+
57+
# Runtime data
58+
pids
59+
*.pid
60+
*.seed
61+
*.pid.lock
62+
63+
# Directory for instrumented libs generated by jscoverage/JSCover
64+
lib-cov
65+
66+
# Coverage directory used by tools like istanbul
67+
coverage
68+
*.lcov
69+
70+
# nyc test coverage
71+
.nyc_output
72+
73+
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
74+
.grunt
75+
76+
# Bower dependency directory (https://bower.io/)
77+
bower_components
78+
79+
# node-waf configuration
80+
.lock-wscript
81+
82+
# Compiled binary addons (https://nodejs.org/api/addons.html)
83+
build/Release
84+
85+
# Dependency directories
86+
node_modules/
87+
jspm_packages/
88+
89+
# Snowpack dependency directory (https://snowpack.dev/)
90+
web_modules/
91+
92+
# TypeScript cache
93+
*.tsbuildinfo
94+
95+
# Optional npm cache directory
96+
.npm
97+
98+
# Optional eslint cache
99+
.eslintcache
100+
101+
# Optional stylelint cache
102+
.stylelintcache
103+
104+
# Microbundle cache
105+
.rpt2_cache/
106+
.rts2_cache_cjs/
107+
.rts2_cache_es/
108+
.rts2_cache_umd/
109+
110+
# Optional REPL history
111+
.node_repl_history
112+
113+
# Output of 'npm pack'
114+
*.tgz
115+
116+
# Yarn Integrity file
117+
.yarn-integrity
118+
119+
# dotenv environment variable files
120+
.env
121+
.env.development.local
122+
.env.test.local
123+
.env.production.local
124+
.env.local
125+
126+
# parcel-bundler cache (https://parceljs.org/)
127+
.cache
128+
.parcel-cache
129+
130+
# Next.js build output
131+
.next
132+
out
133+
134+
# Nuxt.js build / generate output
135+
.nuxt
136+
dist
137+
138+
# Gatsby files
139+
.cache/
140+
# Comment in the public line in if your project uses Gatsby and not Next.js
141+
# https://nextjs.org/blog/next-9-1#public-directory-support
142+
# public
143+
144+
# vuepress build output
145+
.vuepress/dist
146+
147+
# vuepress v2.x temp and cache directory
148+
.tmp
149+
150+
# Docusaurus cache and generated files
151+
.docusaurus
152+
153+
# Serverless directories
154+
.serverless/
155+
156+
# FuseBox cache
157+
.fusebox/
158+
159+
# DynamoDB Local files
160+
.dynamodb/
161+
162+
# TernJS port file
163+
.tern-port
164+
165+
# Stores VSCode versions used for testing VSCode extensions
166+
.vscode-test
167+
168+
# yarn v2
169+
.yarn/cache
170+
.yarn/unplugged
171+
.yarn/build-state.yml
172+
.yarn/install-state.gz
173+
.pnp.*
174+
175+
### Node Patch ###
176+
# Serverless Webpack directories
177+
.webpack/
178+
179+
# Optional stylelint cache
180+
181+
# SvelteKit build / generate output
182+
.svelte-kit
183+
184+
# End of https://www.toptal.com/developers/gitignore/api/go,node

.golangci.yml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# golangci-lint configuration for Virga
2+
version: "2"
3+
4+
run:
5+
timeout: 5m
6+
7+
linters:
8+
enable:
9+
- govet
10+
- staticcheck
11+
- ineffassign
12+
- unused
13+
- errcheck

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2025 r74tech
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

0 commit comments

Comments
 (0)