def delete_branches()

in jobs/looker-utils/looker_utils/main.py [0:0]


def delete_branches(ctx, project, inactive_days, exclude):
    sdk = ctx.obj["SDK"]
    date_cutoff = datetime.now().replace(tzinfo=timezone.utc) - timedelta(
        days=inactive_days
    )

    # switch to dev mode
    sdk.update_session(models.WriteApiSession(workspace_id="dev"))

    for lookml_project in project:
        branches = sdk.all_git_branches(project_id=lookml_project)

        for branch in branches:
            commit_date = datetime.fromtimestamp(branch.commit_at, timezone.utc)

            if (
                commit_date < date_cutoff
                and not branch.name.startswith("dev")
                and branch.name not in exclude
            ):
                print(
                    f"{branch.name} in {lookml_project}, last commit on {commit_date}"
                )
                
                sdk.delete_git_branch(
                    project_id=lookml_project, branch_name=branch.name
                )