git/Documentation
brian m. carlson ac4c7cbfaa credential: add support for multistage credential rounds
Over HTTP, NTLM and Kerberos require two rounds of authentication on the
client side.  It's possible that there are custom authentication schemes
that also implement this same approach.  Since these are tricky schemes
to implement and the HTTP library in use may not always handle them
gracefully on all systems, it would be helpful to allow the credential
helper to implement them instead for increased portability and
robustness.

To allow this to happen, add a boolean flag, continue, that indicates
that instead of failing when we get a 401, we should retry another round
of authentication.  However, this necessitates some changes in our
current credential code so that we can make this work.

Keep the state[] headers between iterations, but only use them to send
to the helper and only consider the new ones we read from the credential
helper to be valid on subsequent iterations.  That avoids us passing
stale data when we finally approve or reject the credential.  Similarly,
clear the multistage and wwwauth[] values appropriately so that we
don't pass stale data or think we're trying a multiround response when
we're not.  Remove the credential values so that we can actually fill a
second time with new responses.

Limit the number of iterations of reauthentication we do to 3.  This
means that if there's a problem, we'll terminate with an error message
instead of retrying indefinitely and not informing the user (and
possibly conducting a DoS on the server).

In our tests, handle creating multiple response output files from our
helper so we can verify that each of the messages sent is correct.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-04-16 22:39:08 -07:00
..
RelNotes The tenth batch 2024-03-21 14:55:14 -07:00
config Merge branch 'ja/doc-markup-fixes' 2024-03-21 14:55:13 -07:00
howto Merge branch 'js/update-urls-in-doc-and-comment' into maint-2.43 2024-02-08 16:22:01 -08:00
includes
mergetools mergetools: vimdiff: use correct tool's name when reading mergetool config 2024-02-19 08:45:14 -08:00
technical refs: introduce reftable backend 2024-02-07 08:28:37 -08:00
.gitattributes
.gitignore doc: remove manpage-base-url workaround 2023-04-05 14:18:53 -07:00
CodingGuidelines Merge branch 'jc/doc-compat-util' 2024-03-05 09:44:43 -08:00
Makefile unit tests: add a project plan document 2023-11-10 08:15:25 +09:00
MyFirstContribution.txt Merge branch 'jc/majordomo-to-subspace' into maint-2.43 2024-02-13 14:44:50 -08:00
MyFirstObjectWalk.txt Merge branch 'vd/adjust-mfow-doc-to-updated-headers' 2023-07-17 11:30:42 -07:00
ReviewingGuidelines.txt documentation: remove unnecessary hyphens 2023-10-09 12:06:29 -07:00
SubmittingPatches SubmittingPatches: hyphenate non-ASCII 2023-12-27 21:33:24 -08:00
ToolsForGit.txt documentation: add some commas where they are helpful 2023-10-09 12:06:44 -07:00
asciidoc.conf doc: asciidoc: remove custom header macro 2023-04-05 21:37:45 -07:00
asciidoctor-extensions.rb
blame-options.txt blame: use different author name for fake commit generated by --contents 2023-04-24 15:16:31 -07:00
build-docdep.perl
cat-texi.perl
cmd-list.perl
config.txt docs: sort configuration variable groupings alphabetically 2024-02-29 11:53:29 -08:00
date-formats.txt
diff-format.txt
diff-generate-patch.txt documentation: add some commas where they are helpful 2023-10-09 12:06:44 -07:00
diff-options.txt doc: enforce placeholders in documentation 2023-12-26 11:06:57 -08:00
doc-diff doc-diff: drop SOURCE_DATE_EPOCH override 2023-05-05 14:28:03 -07:00
docbook-xsl.css
docbook.xsl
everyday.txto
fetch-options.txt fetch: add new config option fetch.all 2024-01-08 13:36:23 -08:00
fix-texi.perl
fsck-msgids.txt documentation: add missing article 2023-10-09 12:06:29 -07:00
git-add.txt Merge branch 'jc/doc-add-placeholder-fix' into HEAD 2024-03-01 14:38:55 -08:00
git-am.txt Merge branch 'jc/am-whitespace-doc' 2024-02-27 16:04:31 -08:00
git-annotate.txt
git-apply.txt documentation: add some commas where they are helpful 2023-10-09 12:06:44 -07:00
git-archimport.txt
git-archive.txt documentation: wording improvements 2023-10-09 12:04:21 -07:00
git-bisect-lk2009.txt
git-bisect.txt Merge branch 'jc/bisect-doc' into maint-2.43 2024-02-13 14:44:51 -08:00
git-blame.txt doc: enforce dashes in placeholders 2023-12-26 11:06:55 -08:00
git-branch.txt branch: clarify <oldbranch> term 2024-01-08 10:06:05 -08:00
git-bugreport.txt doc: enforce dashes in placeholders 2023-12-26 11:06:55 -08:00
git-bundle.txt
git-cat-file.txt doc/cat-file: make synopsis and description less confusing 2023-10-09 12:46:33 -07:00
git-check-attr.txt documentation: add some commas where they are helpful 2023-10-09 12:06:44 -07:00
git-check-ignore.txt documentation: fix whitespace issues 2023-10-09 12:06:29 -07:00
git-check-mailmap.txt
git-check-ref-format.txt documentation: add missing fullstops 2023-10-09 12:06:47 -07:00
git-checkout-index.txt documentation: add some commas where they are helpful 2023-10-09 12:06:44 -07:00
git-checkout.txt Merge branch 'jc/orphan-unborn' 2024-01-02 13:51:30 -08:00
git-cherry-pick.txt
git-cherry.txt
git-citool.txt
git-clean.txt clean: further clean-up of implementation around "--force" 2024-03-04 14:05:13 -08:00
git-clone.txt Merge branch 'ja/doc-markup-fixes' 2024-03-21 14:55:13 -07:00
git-column.txt
git-commit-graph.txt doc: enforce dashes in placeholders 2023-12-26 11:06:55 -08:00
git-commit-tree.txt
git-commit.txt doc: correct the 50 characters soft limit 2023-09-28 10:49:23 -07:00
git-config.txt doc: enforce placeholders in documentation 2023-12-26 11:06:57 -08:00
git-count-objects.txt documentation: add missing article 2023-10-09 12:06:29 -07:00
git-credential-cache--daemon.txt
git-credential-cache.txt documentation: add missing words 2023-10-09 12:06:29 -07:00
git-credential-store.txt documentation: add missing words 2023-10-09 12:06:29 -07:00
git-credential.txt credential: add support for multistage credential rounds 2024-04-16 22:39:08 -07:00
git-cvsexportcommit.txt
git-cvsimport.txt doc: switch links to https 2023-11-26 10:07:05 +09:00
git-cvsserver.txt doc: enforce dashes in placeholders 2023-12-26 11:06:55 -08:00
git-daemon.txt doc: enforce placeholders in documentation 2023-12-26 11:06:57 -08:00
git-describe.txt docs: typofixes 2023-06-12 13:52:51 -07:00
git-diagnose.txt doc: enforce dashes in placeholders 2023-12-26 11:06:55 -08:00
git-diff-files.txt documentation: add some commas where they are helpful 2023-10-09 12:06:44 -07:00
git-diff-index.txt documentation: wording improvements 2023-10-09 12:04:21 -07:00
git-diff-tree.txt documentation: add missing fullstops 2023-10-09 12:06:47 -07:00
git-diff.txt docs: AUTO_MERGE is not that special 2023-12-15 14:08:28 -08:00
git-difftool.txt Merge branch 'ps/difftool-dir-diff-exit-code' into HEAD 2024-03-01 14:38:54 -08:00
git-fast-export.txt doc: end sentences with full-stop 2024-02-20 15:03:13 -08:00
git-fast-import.txt doc: enforce dashes in placeholders 2023-12-26 11:06:55 -08:00
git-fetch-pack.txt documentation: add missing words 2023-10-09 12:06:29 -07:00
git-fetch.txt doc: enforce dashes in placeholders 2023-12-26 11:06:55 -08:00
git-filter-branch.txt doc: enforce dashes in placeholders 2023-12-26 11:06:55 -08:00
git-fmt-merge-msg.txt
git-for-each-ref.txt Merge branch 'kn/for-all-refs' 2024-03-05 09:44:44 -08:00
git-for-each-repo.txt
git-format-patch.txt Merge branch 'js/update-urls-in-doc-and-comment' into maint-2.43 2024-02-08 16:22:01 -08:00
git-fsck-objects.txt
git-fsck.txt documentation: add missing article 2023-10-09 12:06:29 -07:00
git-fsmonitor--daemon.txt documentation: add some commas where they are helpful 2023-10-09 12:06:44 -07:00
git-gc.txt builtin/repack.c: implement support for `--max-cruft-size` 2023-10-05 13:26:11 -07:00
git-get-tar-commit-id.txt documentation: fix typos 2023-10-09 12:06:24 -07:00
git-grep.txt documentation: fix typos 2023-10-09 12:06:24 -07:00
git-gui.txt
git-hash-object.txt documentation: wording improvements 2023-10-09 12:04:21 -07:00
git-help.txt documentation: add missing fullstops 2023-10-09 12:06:47 -07:00
git-hook.txt documentation: fix capitalization 2023-10-09 12:06:29 -07:00
git-http-backend.txt documentation: wording improvements 2023-10-09 12:04:21 -07:00
git-http-fetch.txt documentation: wording improvements 2023-10-09 12:04:21 -07:00
git-http-push.txt documentation: add some commas where they are helpful 2023-10-09 12:06:44 -07:00
git-imap-send.txt doc: switch links to https 2023-11-26 10:07:05 +09:00
git-index-pack.txt index-pack: --fsck-objects to take an optional argument for fsck msgs 2024-02-01 11:09:53 -08:00
git-init-db.txt
git-init.txt doc: git-init: rework config item init.templateDir 2024-03-11 09:58:11 -07:00
git-instaweb.txt
git-interpret-trailers.txt trailer doc: <token> is a <key> or <keyAlias>, not both 2023-09-07 23:04:44 -07:00
git-log.txt diff-merges: introduce '--dd' option 2023-10-09 12:47:29 -07:00
git-ls-files.txt ls-files: avoid the verb "deprecate" for individual options 2024-01-25 10:55:53 -08:00
git-ls-remote.txt ls-remote doc: document the output format 2023-05-19 08:19:34 -07:00
git-ls-tree.txt Merge branch 'rs/doc-ls-tree-hex-literal' 2023-06-22 16:29:07 -07:00
git-mailinfo.txt
git-mailsplit.txt documentation: add missing article 2023-10-09 12:06:29 -07:00
git-maintenance.txt documentation: wording improvements 2023-10-09 12:04:21 -07:00
git-merge-base.txt documentation: add some commas where they are helpful 2023-10-09 12:06:44 -07:00
git-merge-file.txt merge-file: add --diff-algorithm option 2023-11-22 14:23:06 +09:00
git-merge-index.txt
git-merge-one-file.txt
git-merge-tree.txt merge-tree: accept 3 trees as arguments 2024-01-29 09:20:49 -08:00
git-merge.txt Merge branch 'ml/doc-merge-updates' into maint-2.43 2024-02-08 16:22:10 -08:00
git-mergetool--lib.txt documentation: fix capitalization 2023-10-09 12:06:29 -07:00
git-mergetool.txt documentation: add some commas where they are helpful 2023-10-09 12:06:44 -07:00
git-mktag.txt documentation: add missing article 2023-10-09 12:06:29 -07:00
git-mktree.txt documentation: wording improvements 2023-10-09 12:04:21 -07:00
git-multi-pack-index.txt
git-mv.txt doc: enforce dashes in placeholders 2023-12-26 11:06:55 -08:00
git-name-rev.txt documentation: add some commas where they are helpful 2023-10-09 12:06:44 -07:00
git-notes.txt doc: enforce dashes in placeholders 2023-12-26 11:06:55 -08:00
git-p4.txt
git-pack-objects.txt pack-objects: allow `--filter` without `--stdout` 2023-10-02 14:54:29 -07:00
git-pack-redundant.txt pack-redundant: document deprecation 2023-03-30 07:50:43 -07:00
git-pack-refs.txt pack-refs: teach pack-refs --include option 2023-05-12 14:54:14 -07:00
git-patch-id.txt
git-prune-packed.txt documentation: add missing words 2023-10-09 12:06:29 -07:00
git-prune.txt documentation: add missing article 2023-10-09 12:06:29 -07:00
git-pull.txt
git-push.txt Merge branch 'ms/doc-push-fix' into maint-2.42 2023-11-02 16:53:28 +09:00
git-quiltimport.txt documentation: add missing quotes 2023-10-09 12:06:47 -07:00
git-range-diff.txt Merge branch 'sn/typo-grammo-phraso-fixes' 2023-10-30 07:09:55 +09:00
git-read-tree.txt documentation: add missing article 2023-10-09 12:06:29 -07:00
git-rebase.txt Merge branch 'ak/rebase-autosquash' 2024-03-05 09:44:44 -08:00
git-receive-pack.txt documentation: add missing article 2023-10-09 12:06:29 -07:00
git-reflog.txt builtin/reflog: introduce subcommand to list reflogs 2024-02-21 09:58:07 -08:00
git-remote-ext.txt documentation: add missing article 2023-10-09 12:06:29 -07:00
git-remote-fd.txt documentation: add missing parenthesis 2023-10-09 12:06:47 -07:00
git-remote-helpers.txto
git-remote.txt git-remote.txt: fix typo 2024-02-21 10:02:55 -08:00
git-repack.txt Merge branch 'ps/git-repack-doc-fixes' 2023-10-30 07:09:57 +09:00
git-replace.txt doc: enforce dashes in placeholders 2023-12-26 11:06:55 -08:00
git-replay.txt replay: add --contained to rebase contained branches 2023-11-26 10:10:49 +09:00
git-request-pull.txt documentation: add some commas where they are helpful 2023-10-09 12:06:44 -07:00
git-rerere.txt
git-reset.txt
git-restore.txt documentation: add missing words 2023-10-09 12:06:29 -07:00
git-rev-list.txt documentation: fix subject/verb agreement 2023-10-09 12:06:29 -07:00
git-rev-parse.txt doc: git-rev-parse: enforce command-line description syntax 2024-02-20 14:41:37 -08:00
git-revert.txt doc: enforce dashes in placeholders 2023-12-26 11:06:55 -08:00
git-rm.txt documentation: fix apostrophe usage 2023-10-09 12:06:29 -07:00
git-send-email.txt Merge branch 'ds/doc-send-email-capitalization' into HEAD 2024-03-01 14:38:54 -08:00
git-send-pack.txt documentation: add missing article 2023-10-09 12:06:29 -07:00
git-sh-i18n--envsubst.txt
git-sh-i18n.txt
git-sh-setup.txt documentation: add missing article 2023-10-09 12:06:29 -07:00
git-shell.txt
git-shortlog.txt
git-show-branch.txt documentation: add some commas where they are helpful 2023-10-09 12:06:44 -07:00
git-show-index.txt
git-show-ref.txt builtin/show-ref: add new mode to check for reference existence 2023-11-01 12:09:01 +09:00
git-show.txt documentation: fix singular vs. plural 2023-10-09 12:06:29 -07:00
git-sparse-checkout.txt docs: typofixes 2023-06-12 13:52:51 -07:00
git-stage.txt
git-stash.txt docs: typofixes 2023-06-12 13:52:51 -07:00
git-status.txt doc: status.showUntrackedFiles does not take "false" 2024-03-13 09:14:46 -07:00
git-stripspace.txt documentation: fix capitalization 2023-10-09 12:06:29 -07:00
git-submodule.txt doc: enforce dashes in placeholders 2023-12-26 11:06:55 -08:00
git-svn.txt doc: enforce dashes in placeholders 2023-12-26 11:06:55 -08:00
git-switch.txt Merge branch 'jc/orphan-unborn' 2024-01-02 13:51:30 -08:00
git-symbolic-ref.txt documentation: fix subject/verb agreement 2023-10-09 12:06:29 -07:00
git-tag.txt doc: enforce dashes in placeholders 2023-12-26 11:06:55 -08:00
git-tools.txt
git-unpack-file.txt
git-unpack-objects.txt
git-update-index.txt documentation: add some commas where they are helpful 2023-10-09 12:06:44 -07:00
git-update-ref.txt documentation: add missing article 2023-10-09 12:06:29 -07:00
git-update-server-info.txt documentation: fix capitalization 2023-10-09 12:06:29 -07:00
git-upload-archive.txt
git-upload-pack.txt documentation: fix typos 2023-10-09 12:06:24 -07:00
git-var.txt documentation: wording improvements 2023-10-09 12:04:21 -07:00
git-verify-commit.txt
git-verify-pack.txt documentation: add missing article 2023-10-09 12:06:29 -07:00
git-verify-tag.txt
git-version.txt
git-web--browse.txt
git-whatchanged.txt documentation: add missing article 2023-10-09 12:06:29 -07:00
git-worktree.txt orphan/unborn: add to the glossary and use them consistently 2023-11-24 12:11:23 +09:00
git-write-tree.txt
git.txt Merge branch 'jc/no-lazy-fetch' 2024-03-07 15:59:40 -08:00
gitattributes.txt merge-ll: expose revision names to custom drivers 2024-01-24 13:15:06 -08:00
gitcli.txt gitcli: drop mention of “non-dashed form” 2024-03-01 10:45:01 -08:00
gitcore-tutorial.txt doc: switch links to https 2023-11-26 10:07:05 +09:00
gitcredentials.txt Merge branch 'mh/doc-credential-helpers' 2023-07-18 07:28:52 -07:00
gitcvs-migration.txt
gitdiffcore.txt doc: enforce dashes in placeholders 2023-12-26 11:06:55 -08:00
giteveryday.txt Merge branch 'sn/typo-grammo-phraso-fixes' 2023-10-30 07:09:55 +09:00
gitfaq.txt
gitformat-bundle.txt documentation: fix subject/verb agreement 2023-10-09 12:06:29 -07:00
gitformat-chunk.txt documentation: fix verb tense 2023-10-09 12:06:29 -07:00
gitformat-commit-graph.txt
gitformat-index.txt doc: enforce dashes in placeholders 2023-12-26 11:06:55 -08:00
gitformat-pack.txt midx: implement `BTMP` chunk 2023-12-14 14:38:07 -08:00
gitformat-signature.txt
gitglossary.txt
githooks.txt doc: enforce dashes in placeholders 2023-12-26 11:06:55 -08:00
gitignore.txt Merge branch 'jc/gitignore-doc-pattern-markup' 2023-07-27 15:26:37 -07:00
gitk.txt doc: enforce dashes in placeholders 2023-12-26 11:06:55 -08:00
gitmailmap.txt
gitmodules.txt doc: highlight that .gitmodules does not support !command 2023-07-25 14:55:07 -07:00
gitnamespaces.txt
gitprotocol-capabilities.txt doc: enforce dashes in placeholders 2023-12-26 11:06:55 -08:00
gitprotocol-common.txt documentation: remove extraneous words 2023-10-09 12:06:29 -07:00
gitprotocol-http.txt Merge branch 'js/update-urls-in-doc-and-comment' into maint-2.43 2024-02-08 16:22:01 -08:00
gitprotocol-pack.txt documentation: fix subject/verb agreement 2023-10-09 12:06:29 -07:00
gitprotocol-v2.txt upload-pack: accept only a single packfile-uri line 2024-02-28 14:42:01 -08:00
gitremote-helpers.txt Merge branch 'jk/doc-remote-helpers-markup-fix' 2024-03-18 13:04:25 -07:00
gitrepository-layout.txt doc: make the gitfile syntax easier to discover 2023-12-03 10:54:51 +09:00
gitrevisions.txt
gitsubmodules.txt doc: enforce dashes in placeholders 2023-12-26 11:06:55 -08:00
gittutorial-2.txt
gittutorial.txt doc: correct the 50 characters soft limit (+) 2023-10-09 12:07:26 -07:00
gitweb.conf.txt Merge branch 'js/update-urls-in-doc-and-comment' into maint-2.43 2024-02-08 16:22:01 -08:00
gitweb.txt Merge branch 'js/update-urls-in-doc-and-comment' into maint-2.43 2024-02-08 16:22:01 -08:00
gitworkflows.txt
glossary-content.txt Merge branch 'jc/orphan-unborn' into maint-2.43 2024-02-08 16:22:10 -08:00
howto-index.sh
i18n.txt documentation: fix subject/verb agreement 2023-10-09 12:06:29 -07:00
install-doc-quick.sh
install-webdoc.sh
line-range-format.txt
line-range-options.txt
lint-fsck-msgids.perl
lint-gitlink.perl
lint-man-end-blurb.perl
lint-man-section-order.perl
manpage-bold-literal.xsl
manpage-normal.xsl Merge branch 'fc/doc-man-lift-title-length-limit' 2023-05-10 10:23:29 -07:00
manpage.xsl
merge-options.txt docs: MERGE_AUTOSTASH is not that special 2023-12-15 14:08:28 -08:00
merge-strategies.txt
object-format-disclaimer.txt doc: sha256 is no longer experimental 2023-07-31 09:11:04 -07:00
pretty-formats.txt pretty: add pointer and tag options to %(decorate) 2023-08-21 11:40:10 -07:00
pretty-options.txt documentation: add missing article 2023-10-09 12:06:29 -07:00
pull-fetch-param.txt documentation: add missing article 2023-10-09 12:06:29 -07:00
ref-reachability-filters.txt
ref-storage-format.txt refs: introduce reftable backend 2024-02-07 08:28:37 -08:00
rerere-options.txt
rev-list-description.txt
rev-list-options.txt Merge branch 'ml/log-merge-with-cherry-pick-and-other-pseudo-heads' 2024-03-07 15:59:41 -08:00
revisions.txt Documentation: document AUTO_MERGE 2023-05-23 17:21:47 +09:00
scalar.txt scalar: add --[no-]src option 2023-08-28 09:16:06 -07:00
sequencer.txt
signoff-option.txt doc: switch links to https 2023-11-26 10:07:05 +09:00
texi.xsl
trace2-target-values.txt doc: enforce dashes in placeholders 2023-12-26 11:06:55 -08:00
transfer-data-leaks.txt
urls-remotes.txt documentation: fix singular vs. plural 2023-10-09 12:06:29 -07:00
urls.txt doc: git-clone: format placeholders 2024-03-11 09:58:11 -07:00
user-manual.conf
user-manual.txt Documentation/user-manual.txt: example for generating object hashes 2024-03-12 13:32:11 -07:00