Add GitLab source for gitlab.com and self-hosted instances (Salsa)
This commit is contained in:
@@ -10,6 +10,7 @@ from datetime import UTC, datetime
|
||||
from weekly_activity.model import last_week_window
|
||||
from weekly_activity.report import format_report
|
||||
from weekly_activity.sources.github import GitHubSource
|
||||
from weekly_activity.sources.gitlab import GitLabSource
|
||||
from weekly_activity.sources.launchpad import LaunchpadSource
|
||||
|
||||
|
||||
@@ -48,6 +49,25 @@ def parse_args(argv: Sequence[str] | None = None) -> argparse.Namespace:
|
||||
gh.add_argument("username", help="GitHub username.")
|
||||
gh.add_argument("--token", default=None, help="GitHub token (or set GITHUB_TOKEN env var).")
|
||||
|
||||
gl = subparsers.add_parser(
|
||||
"gitlab",
|
||||
parents=[base],
|
||||
help="GitLab activity (gitlab.com or any self-hosted instance, e.g. Debian Salsa).",
|
||||
)
|
||||
gl.add_argument("username", help="GitLab username.")
|
||||
gl.add_argument(
|
||||
"--url",
|
||||
default="https://gitlab.com",
|
||||
help="Base URL of the GitLab instance (default: https://gitlab.com).",
|
||||
)
|
||||
gl.add_argument("--token", default=None, help="API token (overrides env discovery).")
|
||||
gl.add_argument(
|
||||
"--token-env",
|
||||
default=None,
|
||||
metavar="VAR",
|
||||
help="Env var holding the API token (see README for discovery order).",
|
||||
)
|
||||
|
||||
return parser.parse_args(argv)
|
||||
|
||||
|
||||
@@ -84,6 +104,8 @@ def main() -> None:
|
||||
)
|
||||
elif args.source == "github":
|
||||
source = GitHubSource(token=args.token)
|
||||
elif args.source == "gitlab":
|
||||
source = GitLabSource(url=args.url, token=args.token, token_env=args.token_env)
|
||||
else:
|
||||
raise SystemExit(f"error: unknown source {args.source!r}")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user