dwyl / labels

🏷 Sync GitHub Labels from any Source to Target Repositories for Consistency across all your projects!
https://labels.fly.dev/
138 stars 11 forks source link
# 🏷 Labels ![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/dwyl/labels/ci.yml?label=build&style=flat-square&branch=main) [![codecov.io](https://img.shields.io/codecov/c/github/dwyl/labels/main.svg?style=flat-square)](http://codecov.io/github/dwyl/labels?branch=main) [![contributions welcome](https://img.shields.io/badge/feedback-welcome-brightgreen.svg?style=flat-square)](https://github.com/dwyl/labels/issues) [![HitCount](https://hits.dwyl.com/dwyl/labels.svg?style=flat-square)](https://hits.dwyl.com/dwyl/labels) _Try_ it: [**labels**.fly.dev](https://labels.fly.dev/)

What? πŸ’­

A Web App to copy GitHub labels from one repo to another.

Why? πŸ€·β€β™€οΈ

Having a standard list of labels across all of your projects means you can move between repositories quickly and effectively. However, manually adding labels to a new GitHub repository can become old, fast.
This app saves you time by automating the addition of labels to a new project, copying from a selected repo and creating them on the target repo.

Our main criteria is that the tool must be faster than manually adding labels. We offer a hosted version of the app if you don't want to configure/run the app yourself.

At dwyl we use labels a lot on issues and pull requests to communicate about the status of the work on a project. We work remotely and the labels allow us to quickly know what is going on. For example we can quickly see from the list of issues on a repository if someone is working on a specific issue (in-progress label), if a task is finished but awaiting-review or in-review.

See the complete list of labels and their description below.

This process streamlines communication and allows us to focus on developing features instead of spending time on "chat" explaining the status of an issue. It also allows us to communicate quickly with our clients & stakeholders as they know when to test and approve/reject a feature with the label please-test.

Who?

Any person that uses GitHub and has multiple repos they want to keep labels consistent across. i.e: people that value their time! ⏰

How?

A simple and intuitive UI authenticated with GitHub using elixir-auth-github and make requests to the GitHub API on your behalf.

After authentication via GitHub login simply have to submit a form with the following fields.

You can also copy labels again to previously synchronized repositories. If you need to make changes.

What happens to existing labels in target repo? πŸ€”

labels is non-destructive. If there are existing labels with the same name but a different colour, the colour will change to match the source repo. Other than this, it will simply add any labels that don't already exist and won't touch the existing ones.

Run the App! πŸƒβ€β™€οΈ

To run the labels app on your localhost, follow these steps:

1. Clone the project ⬇️

git clone git@github.com:dwyl/labels.git && cd labels

2. Install dependencies ⏳

mix setup

3. Configure Environment Variables πŸ“

labels uses elixir-auth-github for authentication, follow the instructions in: create-a-github-app-and-oauth2-credentials to get your GitHub Auth keys.

Create an .env file root or project with the two variables:

GITHUB_CLIENT_ID=<your-client-id>
GITHUB_CLIENT_SECRET=<your-client-secret>

Once you've added the environment variables to the .env file and saved the file, run the command:

source .env

That will make your environment variables available to the App.

4. Run the App πŸš€

mix s

Now visit: localhost:4000 in your web browser.

You should see something similar to the following:

labels-app-homepage


## _Our_ List Of Labels πŸ“œ 🏷️

This repository is our "single source of truth" of labels used across all @dwyl projects, see: github.com/dwyl/labels/labels

An explanation of each can be found below, starting with the custom dwyl labels, which we use in conjunction with our contributing process/guidelines.

Clicking on a label will take you to an issue with further discussion on its existence and meaning:

Github also gives you a pre-populated list of labels with every repo:

Feedback / Questions / Suggestions πŸ™

We hope you find the application useful! We really want to make the process of setting up a repo as fast as possible so hope this helps.

If you need something cleared up, have any requests or want to offer any improvements then please create an issue. We love hearing your thoughts. 😊