Skip to main content

A simple Python package to automate Git push operations

Project description

GitPushAgent

A simple Python package that automates Git push operations with a single function call. Perfect for automating Git workflows and CI/CD pipelines.

Features

  • Simple one-function interface
  • Automatic Git configuration
  • Branch management (create/switch)
  • Repository initialization
  • Error handling
  • Local Git config management

Installation

You can install GitPushAgent using pip:

pip install gitpushagent

Usage

Basic Usage

from gitpushagent import push

# Push to main branch
push(
    username="your-username",
    email="your.email@example.com",
    repo_url="https://github.com/username/repo.git",
    local_path="/path/to/your/local/directory",
    commit_message="Your commit message"
)

Using a Different Branch

from gitpushagent import push

# Push to a specific branch
push(
    username="your-username",
    email="your.email@example.com",
    repo_url="https://github.com/username/repo.git",
    local_path="/path/to/your/local/directory",
    commit_message="Your commit message",
    branch_name="feature-branch"  # Optional, defaults to "main"
)

Error Handling

from gitpushagent import push, GitPushError

try:
    push(
        username="your-username",
        email="your.email@example.com",
        repo_url="https://github.com/username/repo.git",
        local_path="/path/to/your/local/directory",
        commit_message="Your commit message"
    )
except GitPushError as e:
    print(f"An error occurred: {e}")
except ValueError as e:
    print(f"Invalid input: {e}")

Parameters

  • username (str): Your Git username
  • email (str): Your Git email
  • repo_url (str): URL of the public repository
  • local_path (str): Path to the local directory you want to push
  • commit_message (str): Your commit message
  • branch_name (str, optional): Branch name to push to (defaults to "main")

Features in Detail

  1. Automatic Git Configuration: Sets up Git user name and email locally for the operation
  2. Repository Management:
    • Initializes Git repository if not already initialized
    • Adds remote origin if not present
  3. Branch Handling:
    • Creates new branch if it doesn't exist
    • Switches to existing branch if it exists
  4. Smart Push:
    • Only commits if there are changes
    • Pushes to the specified branch
  5. Error Handling:
    • Validates all inputs
    • Provides clear error messages
    • Cleans up local Git config after operation

Requirements

  • Python 3.7 or higher
  • Git installed on your system

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gitpushagent-0.1.1.tar.gz (4.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gitpushagent-0.1.1-py3-none-any.whl (5.2 kB view details)

Uploaded Python 3

File details

Details for the file gitpushagent-0.1.1.tar.gz.

File metadata

  • Download URL: gitpushagent-0.1.1.tar.gz
  • Upload date:
  • Size: 4.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.2

File hashes

Hashes for gitpushagent-0.1.1.tar.gz
Algorithm Hash digest
SHA256 24331babb3137a6d381ebe3203340ab9d37cb783b0ab1e17f6c99756147d96aa
MD5 344b871235f06b257c87b76d6cc5a99f
BLAKE2b-256 1556a76314e457ee2c71108d07f853707168afd81a35125f7ae57bcae4b26f4a

See more details on using hashes here.

File details

Details for the file gitpushagent-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: gitpushagent-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 5.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.2

File hashes

Hashes for gitpushagent-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 1b0b369e4a0ac6c5514e750532d4d73f048b597928eb55cb4770d51fc87c3c97
MD5 178bbf031cd7ee51975afce04f83b727
BLAKE2b-256 834c2d0503aebe2877fac1b8a01c601394e789e6c92ed3eddc69b555aaea67b5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page