Git Product home page Git Product logo

changepack's Introduction

CI Maintainability Test Coverage

Every week, Changepack delivers a brief update to you or your company, highlighting the progress your team achieved in the past week, all powered by ChatGPT. It’s a great way to keep folks informed about new changes and features, ensuring everyone stays connected and up-to-date!

Deploy to Heroku Deploy to Render

Features

  • Weekly summaries. Each week, Changepack handpicks the most notable updates and emails you a release note. We leverage OpenAI’s ChatGPT to publish your content in seconds.
  • Pull commits from GitHub and issues from Linear. You can link Changepack with your GitHub activity, making it easy to track progress. We can also connect to project management tools like Linear, allowing ChatGPT to stay informed about your current tasks. (Support for other tools coming soon.)

Use cases

  • As a manager, I can receive weekly email updates on my team’s progress from GitHub, eliminating the need to constantly ask them for status updates.
  • As a programmer, I can receive a summary of my work from the previous week and share it in my team’s status update channel on Slack, so everyone is informed about what I’ve shipped.

Build and run locally

git clone https://github.com/changepack/changepack.git
cd changepack
bin/setup

Use tmuxinator or foreman to run backgrounds processes like guard, a cypress server, or a tailwindcss watcher.

Contributors 🎉

Looking to contribute? Please refer to our CONTRIBUTING.md file.

changepack's People

Contributors

dependabot[bot] avatar nicieja avatar sweep-ai[bot] avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

changepack's Issues

Sweep: Write tests for the Pullable concern

Pullable is located in app/controllers/concerns/pullable.rb. It is included in controllers like app/controllers/repositories_controller.rb and app/controllers/teams_controller.rb.

Sweep: Add a unprocessable_entity test case.

app/controllers/api/v1/images_controller.rb is tested in spec/requests/api/v1/images_controller_spec.rb. Add a second test case that tests whether render status: :unprocessable_entity is rendered.

Sweep: Create a new bounded context called broadcast

Changepack incorporates a concept from Domain-Driven Design called Bounded Context.

Bounded Context is a principle where a large system is divided into smaller, more manageable contexts, each with a clearly defined boundary and responsibility. These contexts encapsulate specific areas of the domain and help maintain a clear separation of concerns.

In the case of Changepack, we divided the app into several contexts such as platform, connect, write, and so on. Within each context, we place relevant models, events, handlers and so on. This encapsulates common business logic within a single context. Each bounded context has a README, too.

Please have a look at paths such as /platform, /write, or /connect and based on that template create a new /broadcast context which will deal with broadcasting new posts to channels such as email, Slack, or Intercom. For now we’re going to need:

  • A basic README
  • write/lib/post.rb: the Post model needs to send an event like Post::Published whenever it is transitioned to published state. You can have a look at Post#publish from write/lib/post/publish.rb.
  • To see how events are structured, you can review an example from write/lib/summary/events.rb.
  • In the new broadcast context, we need an event handler that will react to Post::Published and for now just return an ID of the newly published post.
  • To see how event handlers are structured, you can review an example from write/lib/summary/on_requested.rb.

Sweep: Write tests for the Footer component

Footer is located in app/views/components/i/footer.rb

Testing Phlex views in Rails

When you include Phlex::Testing::Rails::ViewHelper, views rendered in the test will have a view context, so they can use Rails helpers.

Here’s an example of a test in Minitest:

require "phlex/testing/view_helper"

class TestHello < Minitest::Test
	include Phlex::Testing::ViewHelper

	def test_hello_output_includes_name
		output = render Hello.new("Joel")
		assert_equal "<h1>Hello Joel</h1>", output
	end
end

Please remember that I want you to use RSpec.

Sweep: Redesign OmniAuth links in the registration form

In app/views/devise/shared/_links.html.slim, there’s an option to sign in with multiple OmniAuth providers. (Currently we support GitHub and Linear.) Right now the links will be positioned centrally, but each link will repeat "Sign in with…" and be a separate block, meaning that multiple providers will create a long list of links. I want you to rework the layout of that section so that each link is sequenced in an inline position, similar to "Sign in with GitHub • Linear • (and so on, and so on…)"

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.