Git Product home page Git Product logo

grok's People

Contributors

kfv avatar

Watchers

 avatar

grok's Issues

PoC: Git/SSH Proxy ("grok")

Summary / Definition of Done

A user with write access to bsdlabs/ports ("source") can submit a pull request that is automatically fetched, applied and merged to bsdlabs/freebsd-ports ("target") without manual intervention to which they have no access.

Create a software component that

  • Is deployable on third-party system
  • Takes (pull request) events (via webhooks) from GitHub
  • Takes the code from the pull request
  • Tests/Applies it to a source repository (bsdlabs/ports)
  • Tests/Merges it to a target 'repository' (bsdlabs/freebsd-ports)
    • Using an SSH key (allowed to write to target repository)

PoC Scope does not include

  • Error handling (failed merge)
  • Commenting, closing or otherwise taking any action on originating Pull Request

Notes

  1. source repository: bsdlabs/ports - should be a 'sparse' fork of official ports, only containing category/portname directories submitted to that repository
  2. target repository: bsdlabs/freebsd-ports - should be a fork/mirror of official ports (a full tree)

Create README

Summary

grok is a (g)it b(rok)er that responds to events (via webhooks) and groks (tests) the merge-ability of submitted code (Pull Requests) between an (source) repository on one side that anyone may submit to, and a closed (target) repository on the other, where access is limited and requires authentication (SSH keys).

Status

Status: proof-of-concept - validate the feasibility of, and the issues involved with, using a credential set to take privileged actions invoked by non-privileged actors, without comprising those credentials.

Roadmap

  • Add error handling (failed merge, sync failure, etc)
  • Take actions (comment, close, etc) on GitHub objects via API (pull requests)
  • Refactor merge method. Currently implemented std::process::Command. Rewrite using libgit2
  • Add logging
  • Add tests
  • Create mechanism to execute pre-push actions or steps (eg: CI, etc)
  • Document code and provide examples
  • Improve the README to cover:
    - Documentation
    - Installation
    - Configuration
    - Contributing

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.