9 Commits
0.0.1 ... 0.0.4

Author SHA1 Message Date
888acd355f Update version number to 0.0.4
- Changed version in `VERSION` file from `0.0.3` to `0.0.4`
- Ensured no newline at end of file remains consistent
2024-08-19 19:11:25 +02:00
92b4d3872f Add fallback config file search feature
- Added a section on fallback configuration file search in `README.md`
- Explained searching for configuration files in the user's home directory under `~\.ait\*`
- Mentioned the option to provide a user-wide configuration file in the `~\.ait\` directory
2024-08-19 19:11:25 +02:00
b4702c1a72 Update config path resolution logic
- Modify `resolve_config_path` to check for `.json` files.
- First check in the current directory.
- Then check in `.ait` directory in the user's home directory.
- Return filename even if non-existent for later failure handling.
2024-08-19 19:11:25 +02:00
aec4c78c6a Update version number to 0.0.3
- Changed version in `VERSION` file from `0.0.2` to `0.0.3`
2024-08-19 18:51:01 +02:00
59ac01451f Add newline characters around generated text
- Added `\n` before and after `generated_text` in the print statement
2024-08-19 18:50:42 +02:00
c9386f8b32 Update version number to 0.0.2
- Updated version in `VERSION` file from 0.0.1 to 0.0.2
2024-08-19 17:40:26 +02:00
fbcb87152f Add Create Release GitHub Action
- **CreateRelease.yml**:
  - Created a workflow triggered by pushes to `main` branch and manual dispatch.
  - Configured jobs to run on `windows-latest`.
  - Steps include:
    - Checking out the code.
    - Setting up Python with version 3.x.
    - Installing dependencies `pip`, `pyinstaller`, and `openai`.
    - Extracting the version from `VERSION` file.
    - Building executable using `pyinstaller`.
    - Fetching previous release tag.
    - Generating release notes.
    - Creating a new git tag and pushing it.
    - Publishing the release on GitHub with release notes and the built executable.
2024-08-19 17:40:12 +02:00
e054eaa9f1 Add VERSION file
- Created a new VERSION file
- Set initial version to 0.0.1
2024-08-19 17:39:58 +02:00
e62b947471 Update .gitignore for test specs and build outputs
- Added `*.spec` to ignore test specification files
- Added `build/` directory to ignore build outputs
2024-08-19 17:39:45 +02:00
5 changed files with 115 additions and 4 deletions

85
.github/workflows/CreateRelease.yml vendored Normal file
View File

@@ -0,0 +1,85 @@
name: Create Release
on:
push:
branches:
- main
paths:
- "VERSION"
workflow_dispatch:
jobs:
build:
runs-on: windows-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Set up Python
uses: actions/setup-python@v3
with:
python-version: "3.x"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install pyinstaller openai
- name: Get the version
id: get_version
shell: pwsh
run: |
$VERSION = (Get-Content -Path "./VERSION" -Raw).Trim()
echo "VERSION=$VERSION" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8NoBOM -Append
- name: Run auto-py-to-exe
run: |
pyinstaller --noconfirm --onefile --console --name "ait-v${{ env.VERSION }}-winx64" --clean "./ait.py"
- name: Get previous release tag
id: get_previous_release
shell: pwsh
run: |
Write-Host "Fetching previous release tag..."
$previous_tag = git describe --tags --abbrev=0 HEAD^ 2>$null
if (-not $previous_tag) {
Write-Host "No previous tag found, using initial commit."
$previous_tag = git rev-list --max-parents=0 HEAD
}
Write-Host "Previous tag: $previous_tag"
echo "PREVIOUS_TAG=$previous_tag" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
- name: Generate release notes
id: generate_notes
shell: pwsh
run: |
Write-Host "Generating release notes from $env:PREVIOUS_TAG to HEAD..."
$repo_url = git config --get remote.origin.url
$notes = git log "$env:PREVIOUS_TAG..HEAD" --pretty=format:"- [`%h`]($repo_url/commit/%H): %s"
Write-Host "Release notes:"
Write-Host "$notes"
"### Changes in this release" | Out-File -FilePath release_notes.md -Encoding utf8
$notes | Out-File -FilePath release_notes.md -Encoding utf8 -Append
- name: Create Tag
id: create_tag
shell: pwsh
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
git tag $env:VERSION
git push origin $env:VERSION
- name: Release
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ env.VERSION }}
name: Release ${{ env.VERSION }}
body_path: release_notes.md
files: |
./dist/ait-v${{ env.VERSION }}-winx64.exe
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

2
.gitignore vendored
View File

@@ -3,3 +3,5 @@ ait.*.config.json
!ait.sample.config.json
!ait.*.sample.config.json
dist/
*.spec
build/

View File

@@ -60,6 +60,12 @@ python ait.py --config custom
This command will look for a configuration file named `ait.custom.config`.
### Fallback Configuration File search
As a fallback, if no configuration file is found, the script will search for it in the user's home directory under `~\.ait\*`.
You can also provide a user wide configuration file by placing it in the `~\.ait\` directory.
### Command-Line Options
- `--config`: Path to a JSON config file or a keyword to identify a specific config (`ait.<KEYWORD>.config`). Default is `ait.config.json`.

1
VERSION Normal file
View File

@@ -0,0 +1 @@
0.0.4

25
ait.py
View File

@@ -22,7 +22,8 @@ def load_config(config_path):
def resolve_config_path(config_input):
"""
Resolves the configuration file path. If a single word is provided,
it looks for a file named 'ait.WORD.config' in the current directory.
it looks for a file named 'ait.WORD.config.json' in the current directory first,
then in a '.ait' directory in the user's home directory.
Parameters:
- config_input (str): The input provided via the command-line argument.
@@ -30,9 +31,24 @@ def resolve_config_path(config_input):
Returns:
- str: The resolved path to the configuration file.
"""
# If it's a keyword, construct the potential filenames
if not config_input.endswith(".json"):
config_input = f"ait.{config_input}.config.json"
return config_input
config_filename = f"ait.{config_input}.config.json"
else:
config_filename = config_input
# Check in the current directory
if os.path.exists(config_filename):
return config_filename
# Check in the user's home directory under .ait/
home_directory = os.path.expanduser("~")
user_config_path = os.path.join(home_directory, ".ait", config_filename)
if os.path.exists(user_config_path):
return user_config_path
# If nothing found, return the filename (it will fail later if non-existent)
return config_filename
def run_git_commands(diff_expression, log_expression):
"""
@@ -146,4 +162,5 @@ if __name__ == "__main__":
)
# Output the generated text
print(generated_text)
print("\n" + generated_text + "\n")