A Web App to copy GitHub
labels from one repo to another.
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
.
Any person
that uses GitHub
and has multiple repos
they want to keep labels
consistent across.
i.e: people that value their time! β°
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.
- Source repo name and owner.
- Target repo name and owner.
You can also copy labels again to previously synchronized repositories. If you need to make changes.
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.
To run the labels
app on your localhost
,
follow these steps:
git clone [email protected]:dwyl/labels.git && cd labels
mix setup
labels
useselixir-auth-github
for authentication, follow the instructions in: create-a-github-app-and-oauth2-credentials to get yourGitHub
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.
mix s
Now visit: localhost:4000 in your web browser.
You should see something similar to the following:
![labels-app-homepage](https://private-user-images.githubusercontent.com/194400/340132772-b05146a5-a01a-4fc9-b9df-0b0d66f4dd1d.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjM2NjczNjAsIm5iZiI6MTcyMzY2NzA2MCwicGF0aCI6Ii8xOTQ0MDAvMzQwMTMyNzcyLWIwNTE0NmE1LWEwMWEtNGZjOS1iOWRmLTBiMGQ2NmY0ZGQxZC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwODE0JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDgxNFQyMDI0MjBaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0zYmZjODJhMWRkMmQyNjM2ODQwYmY3MGUxZTQ0ZjJiZWZhN2RkODk0ODAyZDIxYTE0NmJmZDI2MzY5ODc4NzJmJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.W2d3VFlO14nCvFxp44j4k1icmvLcEmwduAaJITAxYnE)
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:
awaiting-review
#f39c12 - added to issue once a PR with its resolution has been assigned to a reviewer (replacesin-progress
)chore
#3A2716 - routine tasks that must be done for every project but require little active brain powerdiscuss
#60EEEE - invites discussion from contributorsdocumentation
#0075ca
- Improvements or additions to documentationepic
#000059 - big issues that span multiple days & need to be broken downexternal-dependency
#e6e6e6 - no further work can be carried out until a third party completes an action (specified in a comment in the issue)in-progress
#009688 - added when you start working on an issue (and have assigned it to yourself)in-review
#128A0C - added to PR by QA/reviewer to show a review is in progressmerge-conflicts
#E74C3C - added to a PR when it has merge conflicts that need to be fixed by the PR's creatorplease-test
#08E700 - added after PR is merged and the feature/fix/change has been deployed to somewhere the Product Owner can actually test it (assign issue to PO)priority-1
#0D47A1 - drop everything and work on this (used only when completely necessary)priority-2
#1976D2 - high priority issue (what needs doing now)priority-3
#42A5F5 - high priority (what needs doing next)priority-4
#8DC9F9 - low priority (to be upgraded later)priority-5
#C5DEF5 - lowest priority (non-urgent changes and backlog ideas)research
#82f2d6 - additional research required to make progress on a story/task. Be specific in the issue description/comment.starter
#27AE60 - issues that those with not much coding experience can contribute toT[x]d
#F06292 - estimated time in 'x' days the issue will take to resolveT[x]h
#F7C6C7 - estimated time in 'x' hours the issue will take to resolvetechnical
#D4C5F9 - technical tasks e.g. deploymenttech-debt
#FF3636 - A feature/requirement implemented in a sub-optimal way & must be re-written. see: What is Technical Debt?user-feedback
#E91E63 - requests or features that have been added to the backlog as a direct result of user testingva-task
#128214 - denotes administrative tasks that can be done by 'Virtual Assistants', usually for non-developers
Github also gives you a pre-populated list of labels with every repo:
bug
#EE0701 - report a bug, not to be confused with a request for additional changes to the codeduplicate
#CCCCCC - duplicate issue (link to duplicate in comments)enhancement
#84B6EB - improving existing codehelp-wanted
#128A0C - signals author of the issue is looking for help or expertise on a subject (NB. if you'd like to see where dwyl is in need of a helping hand, check out https://tudo-app.herokuapp.com/)invalid
#E6E6E6 - issue is not valid (not used in dwyl)question
#CC317C - for open questionswontfix
#ffffff - when an issue won't be addressed (add a comment to the issue as to why this is the case
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. π