Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ This action can be used in other repositories' workflows to clone multiple repos
with:
repo-list: "org/repo1 org/repo2"
git-pat: ${{ secrets.GIT_PAT }}
default-repo-ref: "main"
~~~

### Features
Expand Down
4 changes: 4 additions & 0 deletions git-clone/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,10 @@ inputs:
description: 'Git Personal Access Token for authentication'
default: ''
required: false
default-repo-ref:
description: 'Default Git reference to check out'
default: 'main'
required: false
runs:
using: "composite"
steps:
Expand Down
17 changes: 13 additions & 4 deletions scripts/git-clone-ref.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ def git_clone_repos(
paths: list[str],
repo_base_url_template: str,
git_pat: str,
default_repo_ref: str,
) -> None:
for repo_path in paths:
repo_name = os.path.basename(repo_path)
Expand All @@ -57,22 +58,30 @@ def git_clone_repos(
print(repo_url)

repo_ref_env = f"{repo_name}_REF".upper().replace("-", "_")
repo_ref = os.environ.get(repo_ref_env, "main")
repo_ref = os.environ.get(repo_ref_env, default_repo_ref)

active_ref = git_clone_repo(repo_url, repo_path, repo_ref)
logger.info(
f"cloned repo {repo_name!r} ref {active_ref!r} " f"in path {repo_path!r}"
f"cloned repo {repo_name!r} ref {active_ref!r} in path {repo_path!r}"
)


@app.command()
def main(
github_repos: list[str] = typer.Argument(..., help="GitHub repositories to clone"),
git_pat: str = typer.Option(default="", envvar="GIT_PAT", help="GitHub Personal Access Token"),
git_pat: str = typer.Option(
default="", envvar="GIT_PAT", help="GitHub Personal Access Token"
),
default_repo_ref: str = typer.Option(
default="main", help="Default Git reference to check out"
),
):
logging.basicConfig(level=logging.INFO)
git_clone_repos(
github_repos, "https://{credentials}github.com/{repo_org}/{repo_name}.git", git_pat
github_repos,
"https://{credentials}github.com/{repo_org}/{repo_name}.git",
git_pat,
default_repo_ref,
)


Expand Down