Skip to main content

GOC

This script, goc.py, is a utility tool that leverages the OpenAI GPT-3.5 Turbo model to generate Markdown documentation for Git diffs and commits. It can be used to automatically generate a markdown document based on the output of git diff:

Prerequisites

You will need an OpenAI API key, configure it to the environment variable like below:

export OPENAI_API_KEY=<your_key_here>

You will need a python version higher than 3.8

Installation

You can either install from Pypi (https://pypi.org/project/goc/)

pip install goc

Or you can download this repository and run

poetry install

Usage

To execute the script, run the following command:

goc [mode] [arguments]

Replace [mode] with one of the following options:

diff: Generate documentation for the git diff between commits or files. commit: Generate a commit message for the current git diff. Replace [arguments] based on the mode selected:

For the diff mode, provide the arguments to specify the commits or files to compare. For the commit mode, no additional arguments are needed.

  • Generate documentation for the diff between two commits:

    goc diff [commit_a] [commit_b]
    
  • Document Comparison vs Current Commit:

    goc diff [commit_hash]
    
  • Document Comparison of a single commit:

    goc diff [commit_hash]^!
    
  • Document Staged Changes:

    goc diff --staged
    
  • Automatically generate commit message and commit:

    goc commit
    

Output

The script generates Markdown documentation by utilizing the OpenAI GPT-3.5 Turbo model. The resulting documentation will be displayed in the console output.

Examples

$ goc diff a0f72101be85667a362425c2cdc30ef794e2a738
## Commit Details

- **Commit Type:** Code update
- **Commit Scope:** goc.py, pyproject.toml
- **Commit Description:**

### goc.py
1. Removed the `document_comparison_vs_current_commit` and `document_comparison_of_2_commits` functions as they were not being used.
2. Created a new function `document_git_diff_wrap` that takes command line arguments and runs the `git diff` command with those arguments. This allows for easy comparison of commits by passing the commit hashes or branches directly as arguments.
3. Modified the `goc` function to handle different scenarios based on the number of command line arguments passed. If no arguments are provided, it compares the latest two commits. If one or more arguments are provided, it passes them directly to `document_git_diff_wrap` for comparison.
4. updated the `parse_gpt_resp` function to return the content of the last choice/message in the response, as the final generated markdown content is usually the last choice.

### pyproject.toml
1. Updated the version to `"0.2.0"`.

Please review and merge these changes.
$ goc commit
Committing with message: "Update git diff handling, handle case when no diff is found"

Note

Make sure you have the necessary permissions and access to the Git repository you intend to analyze. Also, ensure that the repository is properly cloned on your local machine.

Disclaimer

This tool relies on the OpenAI GPT-3.5 Turbo model for generating documentation. The accuracy and quality of the generated content depend on the model's training data and the provided input. Please review and validate the generated documentation before using it in your projects.

Metadata

Release files for goc 0.6.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for goc 0.6.2
File Size Uploaded
goc-0.6.2.tar.gz 4.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for goc 0.6.2
File Interpreter ABI Platform
goc-0.6.2-py3-none-any.whl Python 3 none any Details

Total release size: 9.7 kB

Release files / goc-0.6.2.tar.gz

Download URL goc-0.6.2.tar.gz
Size 4.5 kB
Tags Source
SHA-256 checksum
How to use checksums
66da37ee5e2bd555f620b8976f3b0d3fd9b96cf0754abd622b2fc7346f71fb43
BLAKE2b-256 checksum
How to use checksums
92909ab6ad3b506c2755e7a6f933e5f3732746de6388f445441302d96019c240
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.5.1 CPython/3.11.4 Darwin/22.3.0

Release files / goc-0.6.2-py3-none-any.whl

Download URL goc-0.6.2-py3-none-any.whl
Size 5.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d5837c34387d05174fe40ae02169d443ccfadee520c48d7dafc9362a5894dfcb
BLAKE2b-256 checksum
How to use checksums
0e9bc05f5fec4a9cdd92d75ec2079e6e910c369a6c3d2f46402b6e908adb4879
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.5.1 CPython/3.11.4 Darwin/22.3.0

Release history Release notifications | RSS feed

This release

0.6.2 This release

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.4

2 release files

0.5.3

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page