Add files
This commit is contained in:
parent
251d38d411
commit
bd9329a9ed
23
roles/home/aichat/config.yaml
Normal file
23
roles/home/aichat/config.yaml
Normal file
@ -0,0 +1,23 @@
|
||||
clients:
|
||||
- type: ollama
|
||||
api_base: https://ollama.giugl.io
|
||||
models:
|
||||
- name: mistral:7b-instruct-v0.3-fp16
|
||||
max_input_tokens: 32000
|
||||
max_output_tokens: 8192
|
||||
|
||||
- name: llama3:8b-instruct-fp16
|
||||
max_input_tokens: 8192
|
||||
max_output_tokens: 8192
|
||||
|
||||
- name: phi3:14b-medium-4k-instruct-q8_0
|
||||
max_input_tokens: 128000
|
||||
max_output_tokens: 8192
|
||||
|
||||
- name: pino-coder
|
||||
max_input_tokens: 8192
|
||||
max_output_tokens: 8192
|
||||
|
||||
- type: openai
|
||||
api_key: null
|
||||
api_base: https://api.openai.com/v1
|
175
roles/home/aichat/roles/commitmessage.md
Normal file
175
roles/home/aichat/roles/commitmessage.md
Normal file
@ -0,0 +1,175 @@
|
||||
---
|
||||
model: ollama:pino-coder
|
||||
temperature: 0
|
||||
---
|
||||
|
||||
Your task is to generate a commit message for a given git diff. The commit message should follow the Conventional Commits specification, which includes a type, optional scope, and a brief description. The message should be concise, unambiguous, and capture the technical details of the changes made.
|
||||
|
||||
Commit Convention Format:
|
||||
<type>(<scope>): <description>
|
||||
|
||||
[optional body]
|
||||
|
||||
[optional footer(s)]
|
||||
|
||||
Common types include:
|
||||
- feat: A new feature
|
||||
- fix: A bug fix
|
||||
- docs: Documentation changes
|
||||
- style: Code style/formatting changes (not affecting code logic)
|
||||
- refactor: Code changes that neither fix a bug nor add a feature
|
||||
- test: Adding or modifying tests
|
||||
- chore: Changes to build process or auxiliary tools
|
||||
- perf: Performance improvements
|
||||
|
||||
Here are some examples of well-formatted commit messages:
|
||||
|
||||
### INPUT:
|
||||
|
||||
diff --git a/src/utils/date-formatter.js b/src/utils/date-formatter.js
|
||||
index 2345678..3456789 100644
|
||||
--- a/src/utils/date-formatter.js
|
||||
+++ b/src/utils/date-formatter.js
|
||||
@@ -5,7 +5,7 @@ export function formatDate(date) {
|
||||
const month = String(date.getMonth() + 1).padStart(2, '0');
|
||||
const day = String(date.getDate()).padStart(2, '0');
|
||||
- return `$${year}-$${month}-$${day}`;
|
||||
+ return `$${year}/$${month}/$${day}`;
|
||||
}
|
||||
|
||||
### OUTPUT:
|
||||
|
||||
fix(date-formatter): modified `formatDate()` to use '/' instead of '-' as the separator
|
||||
|
||||
### INPUT:
|
||||
|
||||
diff --git a/src/app.js b/src/app.js
|
||||
index 83d2e7a..b6a1c3f 100644
|
||||
--- a/src/app.js
|
||||
+++ b/src/app.js
|
||||
@@ -10,6 +10,10 @@ function initialize() {
|
||||
setupEventListeners();
|
||||
}
|
||||
|
||||
+// TODO: add other listeners
|
||||
+// https://github.com/user/project/issue/123
|
||||
+function setupEventListeners() {
|
||||
+ document.getElementById('submit').addEventListener('click', handleSubmit);
|
||||
+ document.getElementById('reset').addEventListener('click', handleReset);
|
||||
+}
|
||||
+
|
||||
function handleSubmit(event) {
|
||||
event.preventDefault();
|
||||
const data = new FormData(event.target);
|
||||
@@ -20,6 +24,10 @@ function handleSubmit(event) {
|
||||
|
||||
console.log('Form submitted:', data);
|
||||
}
|
||||
|
||||
+function handleReset(event) {
|
||||
+ event.preventDefault();
|
||||
+ event.target.form.reset();
|
||||
+ console.log('Form reset');
|
||||
}
|
||||
|
||||
### OUTPUT:
|
||||
|
||||
feat(app): implement form event listeners
|
||||
|
||||
- Added `setupEventListeners()` to handle form interactions
|
||||
- Implemented `handleReset()` for form reset functionality
|
||||
- Added event listeners for submit and reset buttons
|
||||
- Track TODO comment for future listener additions (https://github.com/user/project/issue/123)
|
||||
|
||||
### INPUT:
|
||||
|
||||
diff --git a/pkg/database/client.go b/pkg/database/client.go
|
||||
index 003740f..6fc4861 100644
|
||||
--- a/pkg/database/client.go
|
||||
+++ b/pkg/database/client.go
|
||||
@@ -24,9 +24,12 @@ var ErrNilDatabaseClient = errors.New("database client is nil after setup")
|
||||
|
||||
// InitDB initializes the database with the given application name and optional dbpath for SQLite.
|
||||
func InitDB(appName string, dbpath ...string) error {
|
||||
- cfg := config.New()
|
||||
+ var (
|
||||
+ psqlReadReplica string
|
||||
+ err error
|
||||
+ )
|
||||
|
||||
- var err error
|
||||
+ cfg := config.New()
|
||||
|
||||
// Set up a new logger with your required configuration.
|
||||
newLogger := logger.New(
|
||||
@@ -38,9 +41,8 @@ func InitDB(appName string, dbpath ...string) error {
|
||||
},
|
||||
)
|
||||
|
||||
- // Load PostgreSQL configurations
|
||||
- var psqlReadReplica string
|
||||
psqlSource, err := cfg.Load(config.PSQL.String())
|
||||
+
|
||||
if err != nil {
|
||||
log.Println("PSQL not set, using SQLite instead.")
|
||||
} else {
|
||||
|
||||
### OUTPUT:
|
||||
|
||||
style(database/client): group together `psqlReadReplica` and `err` in function's prologue
|
||||
|
||||
### INPUT:
|
||||
|
||||
diff --git a/pkg/khttp/client.go b/pkg/khttp/client.go
|
||||
index a53064c..3aff938 100644
|
||||
--- a/pkg/khttp/client.go
|
||||
+++ b/pkg/khttp/client.go
|
||||
@@ -11,14 +11,17 @@ import (
|
||||
"github.pie.apple.com/kerosene/Core/structs"
|
||||
)
|
||||
|
||||
+// TODO: https://github.pie.apple.com/Kerosene/Core/issues/43
|
||||
+// feat: Centralise and remove over use of os.Environment
|
||||
const (
|
||||
- // Environment variables and file names.
|
||||
authFilesDirEnvVar = "WHISPER_AUTH_FILES_DIR"
|
||||
keyName = "decrypted_key.pem"
|
||||
certName = "cert.pem"
|
||||
)
|
||||
|
||||
// Error for missing environment variable.
|
||||
+// TODO: refactor: move errors into centralized errors.go files
|
||||
+// https://github.pie.apple.com/Kerosene/Core/issues/57
|
||||
var errMissingEnvironmentVariable = fmt.Errorf("%s environment variable is not set", authFilesDirEnvVar)
|
||||
|
||||
// AuthConfig holds authentication file paths.
|
||||
@@ -31,9 +34,11 @@ type AuthConfig struct {
|
||||
// NewAuthConfig creates an AuthConfig from environment variables.
|
||||
func NewAuthConfig() (*AuthConfig, error) {
|
||||
dir := os.Getenv(authFilesDirEnvVar)
|
||||
+
|
||||
if dir == "" {
|
||||
return nil, errMissingEnvironmentVariable
|
||||
}
|
||||
+
|
||||
return &AuthConfig{
|
||||
Dir: dir,
|
||||
CertFile: filepath.Join(dir, certName),
|
||||
@@ -211,7 +216,7 @@ func setupMTLSOnlyTransport(certData string, keyData string) (*http.Transport, e
|
||||
|
||||
// Make scheme and Auth Type separate and load from DB.
|
||||
func parseProxyURL(scheme string, routing structs.Routing) (*url.URL, error) {
|
||||
- return url.Parse(fmt.Sprintf("%s://%s:%s", scheme, routing.Proxy, routing.Port))
|
||||
+ return url.Parse(fmt.Sprintf("%s://%s:%d", scheme, routing.Proxy, routing.Port))
|
||||
}
|
||||
|
||||
// loadX509KeyPair loads an X509 key pair from the specified cert and key files.
|
||||
|
||||
### OUTPUT:
|
||||
|
||||
fix/refactor(khttp/client): use correct format specifier for and add TODOs
|
||||
|
||||
- Parsed proxy URL using `fmt.Sprintf()` with correct format specifier for port
|
||||
- Added TODOs to centralize errors and remove overuse of `os.Environment` (#43, #57)
|
||||
|
||||
|
8
roles/home/aichat/roles/createpr.md
Normal file
8
roles/home/aichat/roles/createpr.md
Normal file
@ -0,0 +1,8 @@
|
||||
---
|
||||
model: ollama:pino-coder
|
||||
temperature: 0
|
||||
---
|
||||
|
||||
Create a concise and informative PR message for a given code diff using the Conventional Commits format.
|
||||
Include all significant changes, such as new environment variables, refactored functions, and added or removed TODOs.
|
||||
Mention specific issue numbers for better trackability.
|
124
roles/home/scripts/commits.sh
Normal file
124
roles/home/scripts/commits.sh
Normal file
@ -0,0 +1,124 @@
|
||||
create_pr_from_files() {
|
||||
local origin_branch="development"
|
||||
local current_branch=$(git rev-parse --abbrev-ref HEAD)
|
||||
local files=()
|
||||
|
||||
# Parse arguments
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case $1 in
|
||||
-b | --base)
|
||||
origin_branch="$2"
|
||||
shift 2
|
||||
;;
|
||||
*)
|
||||
files+=("$1")
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ ${#files[@]} -eq 0 ]; then
|
||||
echo "Usage: create_pr_from_files <file1> [<file2> ...] [-b <base-branch>]"
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Checkout to the new branch and add the specified files
|
||||
local commit_message=""
|
||||
local new_branch="pr-$(date +%Y%m%d%H%M%S)"
|
||||
|
||||
git checkout -b "$new_branch"
|
||||
git add "${files[@]}"
|
||||
|
||||
# Generate commit message using aichat
|
||||
echo "Generating commit message..."
|
||||
commit_message=$(git diff --staged | aichat -m ollama:pino-coder -r commitmessage)
|
||||
|
||||
if [ -z "$commit_message" ]; then
|
||||
echo "Failed to generate commit message. Cleaning up."
|
||||
git checkout -
|
||||
git branch -D "$new_branch"
|
||||
if $has_changes; then
|
||||
echo "Restoring stashed changes..."
|
||||
git stash pop
|
||||
fi
|
||||
git checkout "${current_branch}"
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Extract title and body from the generated commit message
|
||||
local commit_subject=$(echo "$commit_message" | head -n 1)
|
||||
local commit_body=$(echo "$commit_message" | tail -n +2)
|
||||
|
||||
if ! git commit -m "$commit_subject"$'\n\n'"$commit_body"; then
|
||||
echo "Committing changes failed. Cleaning up."
|
||||
git checkout -
|
||||
git branch -D "$new_branch"
|
||||
if $has_changes; then
|
||||
echo "Restoring stashed changes..."
|
||||
git stash pop
|
||||
fi
|
||||
|
||||
git checkout "${current_branch}"
|
||||
|
||||
return 1
|
||||
fi
|
||||
|
||||
git push origin "$new_branch"
|
||||
|
||||
gh pr create --base "$origin_branch" --head "$new_branch" --title "$commit_subject" --body "$commit_body"
|
||||
|
||||
echo "Pull request created successfully."
|
||||
|
||||
git checkout "${current_branch}"
|
||||
}
|
||||
|
||||
create_pr_from_commit() {
|
||||
local commit_hash="$1"
|
||||
local base_branch="${2:-development}"
|
||||
|
||||
if [ -z "$commit_hash" ]; then
|
||||
echo "Usage: create_pr_from_commit <commit-hash> [<base-branch>]"
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Check for uncommitted changes and stash them if any
|
||||
local has_changes=false
|
||||
if ! git diff --quiet || ! git diff --cached --quiet; then
|
||||
echo "Stashing uncommitted changes..."
|
||||
git stash push -u
|
||||
has_changes=true
|
||||
fi
|
||||
|
||||
# Create a new branch name based on the commit hash
|
||||
local new_branch="pr-${commit_hash}"
|
||||
|
||||
# Checkout to the new branch and cherry-pick the commit
|
||||
git checkout "$base_branch" && git checkout -b "$new_branch"
|
||||
if ! git cherry-pick "$commit_hash"; then
|
||||
echo "Cherry-picking failed. Cleaning up."
|
||||
git checkout -
|
||||
git branch -D "$new_branch"
|
||||
if $has_changes; then
|
||||
echo "Restoring stashed changes..."
|
||||
git stash pop
|
||||
fi
|
||||
return 1
|
||||
fi
|
||||
|
||||
git push origin "$new_branch"
|
||||
|
||||
local commit_message=$(git show -s --format=%B "$commit_hash")
|
||||
local commit_subject=$(echo "$commit_message" | head -n 1)
|
||||
local commit_body=$(echo "$commit_message" | tail -n +2)
|
||||
|
||||
gh pr create --base "$base_branch" --head "$new_branch" --title "$commit_subject" --body "$commit_body"
|
||||
|
||||
echo "Pull request created successfully."
|
||||
|
||||
if $has_changes; then
|
||||
echo "Restoring stashed changes..."
|
||||
git stash pop
|
||||
fi
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user