Skip to content

Conversation

@mickgmdb
Copy link
Collaborator

  • Removed the --bitbucket-username, --bitbucket-token, and --bitbucket-oauth-token flags in favour of KF_BITBUCKET_* environment variables when authenticating to Bitbucket.
  • Added provider-specific kingfisher scan subcommands (for example kingfisher scan github …) that translate into the legacy flags under the hood. The new layout keeps backwards compatibility while removing the wall of provider options from kingfisher scan --help.
  • Updated the README so every provider example (GitHub, GitLab, Bitbucket, Azure Repos, Gitea, Hugging Face, Slack, Jira, Confluence, S3, GCS, Docker) uses the new subcommand style.
  • Legacy provider flags (for example --github-user, --gitlab-group, --bitbucket-workspace, --s3-bucket) still work but now emit a deprecation warning to encourage migration to the new kingfisher scan <provider> flow.
  • Kept the direct kingfisher scan /path/to/dir flow for local filesystem / local git repo scans while adding a --list-only switch to each provider subcommand so repository enumeration no longer requires the standalone github repos, gitlab repos, etc. commands.
  • Removed the legacy top-level provider commands (kingfisher github, kingfisher gitlab, kingfisher gitea, kingfisher bitbucket, kingfisher azure, kingfisher huggingface) now that enumeration lives under kingfisher scan <provider> --list-only.

amone-bit and others added 6 commits October 21, 2025 16:36
update: just sort and dedup once
…ngfisher scan github …) that translate into the legacy flags under the hood. The new layout keeps backwards compatibility while removing the wall of provider options from kingfisher scan --help.

- Updated the README so every provider example (GitHub, GitLab, Bitbucket, Azure Repos, Gitea, Hugging Face, Slack, Jira, Confluence, S3, GCS, Docker) uses the new subcommand style.
- Restored the direct kingfisher scan /path/to/dir flow for local filesystem scans while adding a --list-only switch to each provider subcommand so repository enumeration no longer requires the standalone github repos, gitlab repos, etc. commands.
- Removed the legacy top-level provider commands (kingfisher github, kingfisher gitlab, kingfisher gitea, kingfisher bitbucket, kingfisher azure, kingfisher huggingface) now that enumeration lives under kingfisher scan <provider> --list-only.
- Fixed kingfisher scan github … (and other provider-specific subcommands) so they no longer demand placeholder path arguments before the CLI accepts the request.
- Removed the --bitbucket-username, --bitbucket-token, and --bitbucket-oauth-token flags in favour of KF_BITBUCKET_* environment variables when authenticating to Bitbucket.
…ngfisher scan github …) that translate into the legacy flags under the hood. The new layout keeps backwards compatibility while removing the wall of provider options from kingfisher scan --help.

- Updated the README so every provider example (GitHub, GitLab, Bitbucket, Azure Repos, Gitea, Hugging Face, Slack, Jira, Confluence, S3, GCS, Docker) uses the new subcommand style.
- Restored the direct kingfisher scan /path/to/dir flow for local filesystem scans while adding a --list-only switch to each provider subcommand so repository enumeration no longer requires the standalone github repos, gitlab repos, etc. commands.
- Removed the legacy top-level provider commands (kingfisher github, kingfisher gitlab, kingfisher gitea, kingfisher bitbucket, kingfisher azure, kingfisher huggingface) now that enumeration lives under kingfisher scan <provider> --list-only.
- Fixed kingfisher scan github … (and other provider-specific subcommands) so they no longer demand placeholder path arguments before the CLI accepts the request.
- Removed the --bitbucket-username, --bitbucket-token, and --bitbucket-oauth-token flags in favour of KF_BITBUCKET_* environment variables when authenticating to Bitbucket.
…ngfisher scan github …) that translate into the legacy flags under the hood. The new layout keeps backwards compatibility while removing the wall of provider options from kingfisher scan --help.

- Updated the README so every provider example (GitHub, GitLab, Bitbucket, Azure Repos, Gitea, Hugging Face, Slack, Jira, Confluence, S3, GCS, Docker) uses the new subcommand style.
- Restored the direct kingfisher scan /path/to/dir flow for local filesystem scans while adding a --list-only switch to each provider subcommand so repository enumeration no longer requires the standalone github repos, gitlab repos, etc. commands.
- Removed the legacy top-level provider commands (kingfisher github, kingfisher gitlab, kingfisher gitea, kingfisher bitbucket, kingfisher azure, kingfisher huggingface) now that enumeration lives under kingfisher scan <provider> --list-only.
- Fixed kingfisher scan github … (and other provider-specific subcommands) so they no longer demand placeholder path arguments before the CLI accepts the request.
- Removed the --bitbucket-username, --bitbucket-token, and --bitbucket-oauth-token flags in favour of KF_BITBUCKET_* environment variables when authenticating to Bitbucket.
…ngfisher scan github …) that translate into the legacy flags under the hood. The new layout keeps backwards compatibility while removing the wall of provider options from kingfisher scan --help.

- Updated the README so every provider example (GitHub, GitLab, Bitbucket, Azure Repos, Gitea, Hugging Face, Slack, Jira, Confluence, S3, GCS, Docker) uses the new subcommand style.
- Restored the direct kingfisher scan /path/to/dir flow for local filesystem scans while adding a --list-only switch to each provider subcommand so repository enumeration no longer requires the standalone github repos, gitlab repos, etc. commands.
- Removed the legacy top-level provider commands (kingfisher github, kingfisher gitlab, kingfisher gitea, kingfisher bitbucket, kingfisher azure, kingfisher huggingface) now that enumeration lives under kingfisher scan <provider> --list-only.
- Fixed kingfisher scan github … (and other provider-specific subcommands) so they no longer demand placeholder path arguments before the CLI accepts the request.
- Removed the --bitbucket-username, --bitbucket-token, and --bitbucket-oauth-token flags in favour of KF_BITBUCKET_* environment variables when authenticating to Bitbucket.
Copilot AI review requested due to automatic review settings October 22, 2025 23:36
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR migrates Kingfisher's CLI to a cleaner provider-specific subcommand structure while maintaining backward compatibility with legacy flags.

  • Introduces kingfisher scan <provider> subcommands (github, gitlab, bitbucket, azure, gitea, huggingface, slack, jira, confluence, s3, gcs, docker) to replace top-level provider commands
  • Moves repository enumeration into scan subcommands via --list-only flags
  • Changes Bitbucket authentication to exclusively use environment variables (KF_BITBUCKET_*)

Reviewed Changes

Copilot reviewed 14 out of 14 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
src/scanner/runner.rs Moved sort/dedup operations and switched to environment-based Bitbucket auth
src/scanner/repos.rs Updated to use environment-based Bitbucket auth
src/main.rs Refactored command routing to support new scan subcommands and list operations
src/lib.rs Fixed git repo opening to support worktree roots
src/cli/global.rs Removed legacy top-level provider command enums
src/cli/commands/scan.rs Added new scan subcommand infrastructure and provider-specific scan args
src/cli/commands/inputs.rs Hidden legacy flags and added deprecation warning system
src/cli/commands/bitbucket.rs Removed CLI flags in favor of environment-only auth
src/bitbucket.rs Added from_env() convenience method
data/rules/prefect.yml Updated API endpoint
data/rules/maxmind.yml Enhanced validation with account ID dependency
README.md Updated all examples to use new subcommand syntax
Cargo.toml Version bump to 1.60.0
CHANGELOG.md Documented v1.60.0 changes

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

long,
value_name = "GIT-REF",
help_heading = "Git Options",
alias = "ref",
Copy link

Copilot AI Oct 22, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The alias and visible_alias attributes are set to the same value \"ref\". The alias attribute creates a hidden alias, while visible_alias creates a visible one. Having both set to the same value is redundant. Remove the alias line or change one to a different value.

Suggested change
alias = "ref",

Copilot uses AI. Check for mistakes.
url: https://geoip.maxmind.com/geoip/v2.1/city/me?license_key={{ TOKEN }}
url: https://geoip.maxmind.com/geoip/v2.1/city/me
headers:
Authorization: "Basic {{ ACCOUNT_ID | append: ':' | append: TOKEN | b64enc }}"
Copy link

Copilot AI Oct 22, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nitpick] The filter name 'append' should be 'concat' or similar based on typical templating syntax. Verify the template engine supports 'append' as a filter.

Suggested change
Authorization: "Basic {{ ACCOUNT_ID | append: ':' | append: TOKEN | b64enc }}"
Authorization: "Basic {{ ACCOUNT_ID | concat: ':' | concat: TOKEN | b64enc }}"

Copilot uses AI. Check for mistakes.
@mickgmdb mickgmdb merged commit eab6c2d into main Oct 24, 2025
3 checks passed
mickgmdb added a commit that referenced this pull request Nov 24, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants