1
0
mirror of https://github.com/openSUSE/osc.git synced 2026-02-21 03:05:28 +01:00
Commit Graph

129 Commits

Author SHA1 Message Date
Antonello Tartamo
cbf98966b7 feat(gitea): Add support for SSH agent authentication
This change introduces support for authenticating against the Gitea API using an SSH agent. This provides a more secure and convenient alternative to storing private keys or API tokens directly in the configuration file.

  Key changes include:

   - A new HttpSigner class that can sign HTTP requests using either a local private key or a key from an SSH agent.
   - The osc git-obs login add and login update commands now accept --ssh-agent and --ssh-key-agent-pub arguments to configure SSH agent-based authentication.
   - The paramiko library is now used for SSH agent communication. It is an optional dependency and only required when using the SSH agent feature.
   - The Gitea API connection logic is updated to use the HttpSigner when SSH authentication is configured.

  This improves user experience by allowing them to leverage their existing SSH agent setup for Gitea authentication, avoiding the need to handle sensitive credentials manually.
2026-02-08 09:49:54 +01:00
e1e046853f Merge pull request #2013 from dmach/fix-git-obs-pr-create-no-fork
Fix 'git-obs pr create' when the source repo is not a fork
2025-12-18 10:17:36 +01:00
78b85d3a27 Properly error out on invalid 'PR:' references in 'git-obs pr dump' 2025-12-15 19:13:13 +01:00
14a359a255 Make PullReqest.parse_id() more permissive by accepting trailing whitespaces 2025-12-12 14:10:28 +01:00
0bd635fcd6 Add '--target-owner' option to 'git-obs pr create' to specify the target owner explicitly 2025-12-09 13:46:51 +01:00
a85fc2832f Merge pull request #1996 from danigm/fix-gitea-branch
Add return to gitea_api.Branch.list
2025-12-08 14:29:33 +01:00
9860413e19 Fix gitea_api.PullRequest ordering methods 2025-12-02 12:28:11 +01:00
Antonello Tartamo
e9e8dcff70 - Moved get_label_ids to Repo class
- Added staging search command to find project PRs with referenced package PRs that have all been approved
2025-12-02 12:28:10 +01:00
Danish Prakash
ba0f9c1a99 gitea/git: handle local branch when fetching remote
If the current branch tracks a local branch that in turn is tracking a
remote branch, recurse to find out the remote, instead of simply
returning the local branch.

Signed-off-by: Danish Prakash <contact@danishpraka.sh>
2025-11-14 14:27:40 +05:30
f7e9f657a5 Add return to gitea_api.Branch.list 2025-11-13 11:22:02 +01:00
3fcc00cf1b Merge pull request #1992 from dmach/git-obs-api-returning-null
Fix 'git-obs api' command when server returns 'null'
2025-11-11 14:52:42 +01:00
4c4ee1f368 Fix working with meta during git rebase by determining the current branch from rebase head 2025-11-11 14:26:57 +01:00
2be8fbf0c8 Fix 'git-obs api' command when server returns 'null' 2025-11-11 08:42:35 +01:00
48fc21911e Use GitDiffGenerator in 'git-obs staging group' to speed it up 2025-11-10 15:10:21 +01:00
2029b4933f Add 'depth' argument to gitea_api.Repo.clone() and clone_or_update() 2025-11-10 15:10:21 +01:00
84ee65271d Add gitea_api.GitDiffGenerator class for creating submodule diffs without a git checkout 2025-11-10 15:10:21 +01:00
44af44e8d3 Fix 'git-obs staging' commands to be case insensitive as Gitea 2025-11-10 15:06:02 +01:00
7ae7731963 Change gitea_api.Repo.clone() to stop borrowing objects when 'reference' or 'reference_if_able' is used 2025-11-10 15:06:02 +01:00
99d2633b09 Add '--cache-dir' option to 'git-obs staging group' command 2025-11-10 15:06:02 +01:00
Antonello Tartamo
e15c0c0f49 Add 'git-obs staging' command for staging multiple package pull requests into a single project pull request 2025-11-10 15:06:02 +01:00
d74457dc66 Support setting labels in gitea_api.PullRequest.create() 2025-11-10 15:06:02 +01:00
7b74682254 Fix the resulting dictionary in gitea_api.PullRequest._get_label_ids() 2025-11-10 15:06:02 +01:00
a3738f664f Change gitea_api.Repo.clone_or_update() to take 'ssh_private_key_path' argument 2025-11-10 15:06:02 +01:00
c926865ec9 Add gitea_api.StagingPullRequestWrapper class for handling staging 2025-11-10 15:06:02 +01:00
7c97922db1 Add gitea_api.common.TemporaryDirectory class that supports 'delete' argument on python 3.6+ 2025-11-10 15:06:02 +01:00
ad96f3926d Extend gitea_api.PullRequest with methods that work with 'PR:' references 2025-11-10 15:06:02 +01:00
66e98819b2 Add 'status' to the output of gitea_api.Git.get_submodules() 2025-11-10 14:45:37 +01:00
e860043815 Add 'remote' argument to gitea_api.Repo.clone_or_update() 2025-11-10 14:45:37 +01:00
089ad90fae Move clone_or_update() from 'git-obs pr dump' command to gitea_api.Repo 2025-11-10 14:45:37 +01:00
9b7c3889d4 Make gitea_api.RepoExists exception more helpful by giving a hint to fork under a different name. 2025-11-03 15:26:14 +01:00
02b342a0e4 Merge pull request #1968 from dcermak/add-get_host_repo_owner_number
feat: add new function PullRequest.get_host_owner_repo_number
2025-11-03 09:56:49 +01:00
ece036a6a0 Fix gitea_api.SSHKey.list() to use pagination instead of limit -1 2025-11-03 09:21:58 +01:00
775d0c2512 Fix gitea_api.IssueTimelineEntry.list() to use pagination instead of limit -1 2025-11-03 09:21:58 +01:00
82bf9eb010 Remove duplicate, unused PullRequestReview class from gitea_api.pr 2025-11-03 09:21:58 +01:00
8c5fbf0745 Fix gitea_api.PullRequestReview.list() to use pagination instead of limit -1 2025-11-03 09:21:58 +01:00
d60ce46c58 Fix gitea_api.Fork.list() to use pagination instead of limit -1 2025-11-03 09:21:58 +01:00
98526c460f Fix gitea_api.Branch.list() to use pagination instead of limit -1 2025-11-03 09:21:58 +01:00
Antonello Tartamo
dac11885f7 Fix gitea_api.PullRequest.list() to use pagination instead of limit -1 2025-11-03 09:21:58 +01:00
fb8d1f4c72 Fix 'git-obs pr dump' to skip the dump if the target has the same updated_at timestamp as the pull request in Gitea 2025-10-29 14:33:45 +01:00
4170a3c251 Improve performance of gitea_api.IssueTimelineEntry by listing and caching requests instead of fetching them one by one 2025-10-29 13:46:02 +01:00
aa3cb2c71f feat: add new function PullRequest.get_host_owner_repo_number
The existing `get_owner_repo_number` throws away the parsed host, which is
occasionally useful. Therefore we add a new method `get_host_owner_repo_number`
that also returns the full host (scheme + hostname + port) and keep the old
method for compatibility.

Also add tests.
2025-10-20 17:15:34 +02:00
e91c904284 Add 'DELETE' to 'git-obs api' allowed methods 2025-10-15 12:19:06 +02:00
Antonello Tartamo
7954b9d11a Add filtering by label to 'git-obs pr list' 2025-10-15 12:19:06 +02:00
07acc067f0 Fix gitea_api.Git.get_branch_head() to raise a proper exception if the HEAD cannot be retrieved 2025-10-10 14:19:14 +02:00
87de410542 Move code from 'git-obs meta pull' command to GitStore.pull() 2025-10-10 14:03:29 +02:00
1488f3b873 Introduce GitObsRuntimeError exception and use it where appropriate 2025-10-09 09:54:18 +02:00
7aa9734143 Fix tardiff by removing directories with shutil.rmtree() and files by os.unlink() 2025-10-08 16:20:09 +02:00
5e0ab3ecb0 Mute stderr in git_obs.Git.lfs_cat_file() 2025-10-08 16:20:09 +02:00
0b242dc553 Change obs_api.TarDiff to spawn a process extracting archives as a context manager 2025-10-08 16:20:09 +02:00
ce99ac5e83 Add 'quiet' option to gitea_api.Git.switch() 2025-10-08 16:19:52 +02:00