Git Product home page Git Product logo

autopr's Introduction

๐ŸŒณ AutoPR ๐ŸŒณ

Discord Docs

Breathe life into your codebase, configurably

๐ŸŒŸ Features

๐Ÿ“„ Summarize changes by adding a "summarize" label to a PR
๐ŸŒณ Living summaries of your code in nested READMEs

... more coming soon!

๐Ÿš€ Getting Started

Please see the installation guide.

๐Ÿž Known Bugs

We're pre-alpha, so expect bugs. Here are some known ones:

  • Caching is not working properly, so living summaries get regenerated on every push.

See below for an example of AutoPR's README summary:

๐ŸŒณ Living Summary

This folder contains files related to an automated workflow system. It includes a Dockerfile for setting up a Docker image, a Makefile for defining tasks and configurations, an action.yml file for configuring an Automatic Pull Request workflow, and several other files for managing the workflow, defining models and services, and configuring triggers. The code is well-documented and follows a modular and object-oriented design, making it easy to understand and extend. The folder also contains YAML files that define workflows for various tasks, which can be executed as standalone programs or used as reusable tasks in larger automation processes.

Dockerfile

๐Ÿ”ง Sets up a Docker image based on duffn/python-poetry:3.9-bullseye ๐Ÿ“ฆ Installs git from the bullseye-backports repository ๐Ÿ“ Copies the entrypoint.sh script and makes it executable ๐Ÿ“ Copies pyproject.toml and poetry.lock files ๐Ÿ”ง Installs project dependencies using Poetry in a virtual environment ๐Ÿ“‚ Sets the working directory to /app and copies all files ๐Ÿ”ง Installs the app using Poetry ๐Ÿš€ Executes the entrypoint.sh script as the default command when the container starts

LICENSE.md

๐Ÿ“„ This file contains the MIT License.
๐Ÿ“ It grants permission to use, modify, and distribute the software.
๐Ÿ‘ค The license is issued by Raphael Francis Ltd.
๐Ÿ“œ The license requires the inclusion of the copyright notice.
๐Ÿ’ผ It allows the software to be used for any purpose, with no warranty.
๐Ÿ’ฐ Selling copies of the software is permitted.
๐Ÿ”’ The license does not hold the authors or copyright holders liable.
๐Ÿ”ง The software is provided "as is" and without warranty.
๐Ÿ“ This license applies to all copies or substantial portions of the software.
๐Ÿ“ The license is effective from 2023.

Makefile

๐Ÿ“ This file defines a set of tasks and configurations for a Python project.
๐Ÿ”ง It uses pyright for static type checking.
๐Ÿงช It runs pytest for running tests in the autopr/tests directory.
๐Ÿ“„ It runs python -m autopr.models.config.entrypoints for generating a schema.
๐Ÿ”€ The all task includes running type checking, tests, and generating the schema.

action.yml

๐Ÿ“‹ This file is a configuration file for an Automatic Pull Request workflow. ๐Ÿ”ง It is used to automatically generate pull requests on GitHub. ๐Ÿณ The workflow runs using Docker. ๐ŸŽจ It includes branding information such as an icon and color. ๐Ÿ”‘ It requires a GitHub token as an input. ๐ŸŒ It allows customization of the base branch, loading GIF URL, target branch name template, and whether to overwrite existing branches and pull requests. ๐Ÿ’ก The default values are provided for some of the inputs.

autopr

This folder contains various files and folders related to an automated workflow system. It includes files for defining actions and utilities, configuring logging, coordinating and executing the workflow, defining models and services, managing triggers and workflows, and defining automated tasks. The code is well-documented and follows a modular and object-oriented design, making it easy to understand and extend. The folder also contains YAML files that define workflows for various tasks, which can be executed as standalone programs or used as reusable tasks in larger automation processes.

entrypoint.sh

๐Ÿ“ The file is a shell script. ๐Ÿ”ง It configures Git with a safe directory and sets the user's email and name. ๐Ÿ”Œ It activates a virtual environment. ๐Ÿ It runs a Python module named autopr.gh_actions_entrypoint.

poetry.lock

๐Ÿ“„ This file serves as an executive summary.
๐Ÿ“ It provides a concise overview of a document or project.
๐Ÿ” It highlights the main points and purpose of the file.
๐Ÿ‘€ Useful for someone seeing the document for the first time.
๐Ÿ“‘ It may include key findings, recommendations, or summaries.
๐Ÿ“Š Can be used as a standalone document or as an introduction.
๐Ÿ“Œ Focuses on important details to give a quick understanding.
๐Ÿ“ Should be clear, concise, and easy to read.
๐Ÿ–Š๏ธ Avoids unnecessary technical jargon or complex explanations.
๐Ÿ“‹ Provides a high-level view of the contents of the file.

pyproject.toml

๐Ÿ“ This file is a configuration file for the "autopr" project.
๐Ÿ“ฆ It manages project dependencies using Poetry.
๐Ÿ”ง It specifies the required Python version and other dependencies.
๐Ÿ”‘ It includes the author's information and the project's license.
๐Ÿ“„ It specifies the README file.
๐Ÿ“ฆ It defines the packages to be included in the project.
๐Ÿงช It specifies test dependencies and tools.
๐Ÿ› ๏ธ It defines the build system for the project.
๐Ÿ” It configures Pyright, a static type checker, for the project.

strict_workflow_schema.json

๐Ÿ“‹ This file is a JSON schema for defining a strict workflow model. ๐Ÿ“ It allows you to define a workflow with different types of actions and their properties. ๐Ÿ”— The schema includes definitions for various types of actions such as commenting, setting issue titles, crawling folders, executing bash commands, committing and pushing changes, writing into files, and more. ๐Ÿ“‚ Each action has its own set of inputs and outputs. ๐Ÿ”€ The workflow can include conditional branching using if statements and lambdas. ๐Ÿ”„ Actions can be executed iteratively using the iterate property. ๐Ÿงฉ The schema also includes definitions for parameters, templates, variables, constants, and lambda expressions. ๐Ÿ“œ The workflow can be defined as a series of steps, each consisting of an action or a set of actions. โœจ The goal of this schema is to provide a standardized way of defining and executing workflows in a strict manner.

trigger_schema.json

๐Ÿ“„ This file is a JSON schema definition. ๐Ÿ” It defines a data structure for a trigger configuration model. ๐Ÿš€ The trigger configuration model is used to configure triggers for a workflow. ๐Ÿ“‹ Triggers can include actions such as commenting, setting issue titles, crawling folders, running bash commands, committing and pushing changes, and more. ๐Ÿ“‚ Each action has its own model and set of inputs and outputs. ๐Ÿ”€ The trigger configuration model can include multiple triggers, such as label triggers, comment triggers, and push triggers. ๐Ÿ”ง The configuration allows for specifying parameters and branch names for push triggers. ๐Ÿ’ก The purpose of this file is to provide a structured way to define and configure triggers for a workflow.

workflow_schema.json

๐Ÿ“‹ This file is a JSON schema that defines the structure of a workflow definition. ๐Ÿ”ข It contains definitions for various types of actions that can be performed in the workflow. ๐Ÿ“ Each action has specific inputs and outputs defined. ๐Ÿ”€ The workflow definition can include steps that consist of actions, conditionals, and other workflow invocations. ๐Ÿ” The schema also defines various types of declarations, such as templates, variables, constants, and lambdas. ๐Ÿ“‚ Some of the actions defined include commenting on an issue, crawling a folder, executing a bash command, and committing and pushing changes to a repository. ๐Ÿ”€ Conditionals can be defined using Python lambda expressions or by checking the existence of certain variables or context values. ๐Ÿ”„ The workflow definition can be iterated over using the "iterate" property in certain actions. ๐Ÿ”ง It also allows for setting variables and invoking other workflows as part of the overall workflow execution.

autopr's People

Contributors

irgolic avatar garrettapproachablegeek avatar philipad avatar caffeinum avatar eltociear avatar konard avatar mkrupczak3 avatar tjazerzen avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.