Commit graph

47 commits

Author SHA1 Message Date
Tyler McGoffin
e1423cdbbf Refine error handling of ReadBranchConfig
cmd.Output() will return an error when the git command ran successfully
but had no output. To handle this, we can check Stderr, as we expect it to
be populated for any ExitErrors or otherwise when there is a command
failure.

This allows for propagation of this error handling up the call chain, so
we are now returning errors if the call to git fails instead of just
handing off an empty BranchConfig and suppressing the errors.

Additionally, I've removed some more naked returns that I found in
pkg/cmd/pr/create.go createRun
2025-01-09 11:45:15 -08:00
Tyler McGoffin
4575692ebf Remove private readBranchConfig method and remove parseBranchConfig from Client
I think I went too far with my previous refactor and am backing out of it.
Adding a private readBranchConfig method on the client wasn't providing
any real additional value, so I've put it back into ReadBranchConfig.

However, I think there is still value in having parseBranchConfig
(formerly createBranchConfig) as a separate util function, as it both
improves readability of ReadBranchConfig and makes parsing its purpose
easier through the bespoke tests for it.
2025-01-08 10:36:45 -08:00
Tyler McGoffin
0137150848 Refactor Test_readGitBranchConfig for easier parsing 2025-01-07 14:56:27 -08:00
Tyler McGoffin
f43da8ea9a Refactor ReadBranchConfig for test coverage of newly returned erros 2025-01-07 13:54:43 -08:00
Tyler McGoffin
bf6fdbdfd2 Remove named returns from ReadBranchConfig and surface errors 2025-01-07 13:54:43 -08:00
Caleb Brose
9d490547b8
Alternative: remove LocalBranch from BranchConfig 2025-01-03 20:39:12 +00:00
Caleb Brose
7a1052ca33
Set LocalBranch even if the git config fails 2025-01-03 20:35:48 +00:00
Heath Stewart
5da86e07e7
Merge changes from #10004
Merges changes from @williammartin including acceptance tests and word changes.

Co-authored-by: William Martin <williammartin@github.com>
2024-12-08 20:34:21 -08:00
Heath Stewart
88b96f411c
Set gh-merge-base from issue develop 2024-12-08 17:40:03 -08:00
Heath Stewart
3d139019f8
Open PR against gh-merge-base
Partly resolves issue #8979 by checking for a `gh-merge-base` branch tag and using that as though it were passed to `gh pr create --base`.
2024-12-08 17:40:00 -08:00
William Martin
694e565384 Fix PR checkout panic when base repo is not in remotes 2024-12-02 17:20:57 +01:00
William Martin
72a6fd00a4 Rename backwards compatible credentials pattern 2024-11-27 12:21:55 +01:00
William Martin
0b4f087b46 Fix CredentialPattern doc typos
Co-authored-by: Kynan Ware <47394200+BagToad@users.noreply.github.com>
2024-11-27 12:07:04 +01:00
William Martin
3773068f58 Remove TODOs 2024-11-27 12:06:17 +01:00
Tyler McGoffin
ad397bd0a6 Fix typos and add tests for CredentialPatternFrom* functions 2024-11-26 16:08:51 -08:00
William Martin
0db05ff022 Add SSH remote todo 2024-11-26 22:30:19 +01:00
William Martin
efd8ff6d46 General cleanup and docs 2024-11-26 22:30:11 +01:00
William Martin
6b7f1ff060 Allow client fetch to use insecure credentials pattern 2024-11-26 22:30:03 +01:00
William Martin
7affcadb5e Allow client push to use insecure credential pattern 2024-11-26 22:29:58 +01:00
William Martin
75712de712 Allow client pull to use insecure credential pattern 2024-11-26 22:29:51 +01:00
William Martin
5f5c5270c9 Allow opt-in to insecure pattern 2024-11-26 22:29:43 +01:00
William Martin
46922694dc Support secure credential pattern 2024-11-26 22:29:38 +01:00
Hiran Wijesinghe
fd51a69308
Handle --bare clone targets (#9271)
Co-authored-by: Andy Feller <andyfeller@github.com>
2024-07-24 12:35:24 +02:00
William Martin
5fe6eebfea Update incorrect regex comment for client Commits 2024-02-28 13:38:39 +01:00
William Martin
2ee6737053 Use regex to split apart the git client Commit logs
Theoretically this should be clearer and more robust than the previous
version which had some custom loop logic while trying to parse newlines
and determine whether it had reached a new commit entry by trying to parse
a git sha. This would not have worked correctly if a commit body contained
a sha on a new line.
2024-02-27 20:49:00 +01:00
William Martin
2b0484f5aa Use null byte separators when fetching comments from git 2024-02-27 18:00:40 +01:00
William Martin
2af0c899d8 Remove unnecessary split conditional from client Commits
Since this is guarded by the line starting with a git sha, it must
be a line of the form 'sha,title,body', so there can never be only
two entries since the Split fn will produce an empty string in the
last spot in the case of a missing body.
2024-02-27 17:26:51 +01:00
Federico Guerinoni
42613172bd pr: Add flag fillverbose
This is used to fill the body of PR with all commits msg + body
of every commits because there can be lot of useful information.

Signed-off-by: Federico Guerinoni <guerinoni.federico@gmail.com>
2024-02-01 09:12:04 +01:00
Federico Guerinoni
6dfae58b47 git: Return body from list of commits
This allow to use body of every commits between two ref.
2024-02-01 09:09:06 +01:00
Sam Coe
08fb744229
Simplify git AddRemote to remove unused arg (#8392) 2023-12-04 15:48:08 -04:00
Keming
ba60f89f42
Delete local tag when running gh release delete --cleanup-tag (#7884) 2023-09-07 12:04:15 +00:00
Sam Coe
fac497108b
Set upstream remote to track all branches after initial fetch (#7542) 2023-06-12 09:23:56 +09:00
Benjamin Chadwick
82662685e3
Autocomplete branch flags (#6031)
Co-authored-by: Mislav Marohnić <mislav@github.com>
2023-03-29 16:09:44 +00:00
Alex Petrov
7d4ab65af3
fix: correctly set ErrNotOnAnyBranch error in git client (#7082)
Before, git client was not correctly setting `ErrNotOnAnyBranch` error.
Because of that, `gh pr status` was not functioning correctly when run
from the detached HEAD. This commit fixes that.

Fixes #7051
2023-03-06 09:16:29 +11:00
Mislav Marohnić
14eb873b9e
Avoid implicitly fetching when adding a new git remote (#6990) 2023-02-07 21:22:02 +00:00
Mislav Marohnić
8df1e9946f
repo set-default: support bare git repos
The command was using this to check for git repo context:

    git rev-parse --is-inside-work-tree

With this change, this is used instead:

    git rev-parse --git-dir

The latter approach works in the context of a bare git repository, which does not have a worktree.
2023-01-18 20:45:12 +01:00
Nate Smith
941dc26cc8
Update git/client.go
Co-authored-by: Sam Coe <samcoe@users.noreply.github.com>
2022-12-14 16:15:37 -08:00
vilmibm
76c58930d9 tests pass 2022-12-13 10:48:03 -08:00
vilmibm
7e3e2d96a8 Merge remote-tracking branch 'origin/trunk' into base-cmd 2022-12-13 10:39:40 -08:00
Sam Coe
98ab1f2587
Authenticate network git commands (#6541) 2022-11-15 13:14:37 +02:00
Sam Coe
6bbfc5056d
Use git client in extension manager (#6547) 2022-11-10 11:38:12 +02:00
Sam Coe
f96b2fce57
Refactor git client and add tests (#6525) 2022-11-03 11:58:38 +01:00
Sam Coe
4294ee14a1
revert revert 57fbe4f317 (#6474) 2022-10-20 12:17:20 +00:00
Sam Coe
2cefb9fa59
Fix pr create regression (#6472)
* Revert "Refactor to use new git client (#6447)"

This reverts commit 57fbe4f317.

* Fix pr create regression
2022-10-20 12:46:23 +03:00
Sam Coe
57fbe4f317
Refactor to use new git client (#6447) 2022-10-19 21:11:36 +03:00
tdakkota
d41efa7a6a
Fix #6452 (#6453) 2022-10-18 06:36:52 +00:00
Sam Coe
2944f7c3ab
Create git client (#6354) 2022-10-14 07:47:03 +00:00