Exemple #1
0
def new_label(
    repo: Repository,
    label_color: str,) -> Label:
    """Get the Label object or create it with given features."""
    try:
        label_to_add = repo.get_label('hacktoberfest')
    except UnknownObjectException:
        label_to_add = repo.create_label(
            name='hacktoberfest',
            color=label_color,
            description="Issues for contributing during the period of hacktoberfest")
    return label_to_add
Exemple #2
0
def _label_sync(repo: Repository):
    """
    Sync labels to settings in config file.

    :param repo: Github repository object to sync labels
    :returns: None
    """
    config = _load_config(repo=repo.name)
    base_labels = [x for x in config['labels']]
    repo_labels = [{'name': x.name, 'color': x.color, 'description': x.description} for x in repo.get_labels()]

    #: smart sync only changes that are necessary (add or delete)
    for diff in list(filterfalse(lambda x: x in base_labels, repo_labels)) + list(
        filterfalse(lambda x: x in repo_labels, base_labels)
    ):
        try:
            repo.get_label(name=diff['name']).delete()
        except Exception:
            print(json.dumps(diff))
        finally:
            repo.create_label(name=diff['name'], color=diff['color'], description=diff['description'])
Exemple #3
0
def get_or_create_label(
    repo: Repository,
    edit_label: str,
    edit_label_color: str,
    edit_label_description: str,
) -> Label:
    """Get the Label object or create it with given features."""
    try:
        label_to_add = repo.get_label(edit_label)
    except UnknownObjectException:
        label_to_add = repo.create_label(
            name=edit_label,
            color=edit_label_color,
            description=edit_label_description,
        )
    return label_to_add
Exemple #4
0
def _get_label_by_name(repository: Repository, label: str) -> Optional[Label]:
    try:
        return repository.get_label(label)
    except UnknownObjectException:
        return None
Exemple #5
0
def _has_in_labels(repo: ghr.Repository, lname: str) -> bool:
    try:
        repo.get_label(lname)
        return True
    except github.UnknownObjectException:
        return False