Merge branch 'mm/api-credentials-doc'

* mm/api-credentials-doc:
  api-credentials.txt: add "see also" section
  api-credentials.txt: mention credential.helper explicitly
  api-credentials.txt: show the big picture first
  doc: fix xref link from api docs to manual pages
This commit is contained in:
Junio C Hamano 2012-06-07 09:07:35 -07:00
Родитель 1b829eee17 04ab6ae776
Коммит dd3d071182
3 изменённых файлов: 60 добавлений и 7 удалений

Просмотреть файл

@ -2,7 +2,7 @@ config API
==========
The config API gives callers a way to access git configuration files
(and files which have the same syntax). See linkgit:git-config[1] for a
(and files which have the same syntax). See linkgit:../git-config[1] for a
discussion of the config file syntax.
General Usage

Просмотреть файл

@ -6,8 +6,52 @@ password credentials from the user (even though credentials in the wider
world can take many forms, in this document the word "credential" always
refers to a username and password pair).
This document describes two interfaces: the C API that the credential
subsystem provides to the rest of git, and the protocol that git uses to
communicate with system-specific "credential helpers". If you are
writing git code that wants to look up or prompt for credentials, see
the section "C API" below. If you want to write your own helper, see
the section on "Credential Helpers" below.
Typical setup
-------------
------------
+-----------------------+
| git code (C) |--- to server requiring --->
| | authentication
|.......................|
| C credential API |--- prompt ---> User
+-----------------------+
^ |
| pipe |
| v
+-----------------------+
| git credential helper |
+-----------------------+
------------
The git code (typically a remote-helper) will call the C API to obtain
credential data like a login/password pair (credential_fill). The
API will itself call a remote helper (e.g. "git credential-cache" or
"git credential-store") that may retrieve credential data from a
store. If the credential helper cannot find the information, the C API
will prompt the user. Then, the caller of the API takes care of
contacting the server, and does the actual authentication.
C API
-----
The credential C API is meant to be called by git code which needs to
acquire or store a credential. It is centered around an object
representing a single credential and provides three basic operations:
fill (acquire credentials by calling helpers and/or prompting the user),
approve (mark a credential as successfully used so that it can be stored
for later use), and reject (mark a credential as unsuccessful so that it
can be erased from any persistent storage).
Data Structures
---------------
~~~~~~~~~~~~~~~
`struct credential`::
@ -28,7 +72,7 @@ This struct should always be initialized with `CREDENTIAL_INIT` or
Functions
---------
~~~~~~~~~
`credential_init`::
@ -72,7 +116,7 @@ Functions
Parse a URL into broken-down credential fields.
Example
-------
~~~~~~~
The example below shows how the functions of the credential API could be
used to login to a fictitious "foo" service on a remote host:
@ -135,8 +179,10 @@ credentials from and to long-term storage (where "long-term" is simply
longer than a single git process; e.g., credentials may be stored
in-memory for a few minutes, or indefinitely on disk).
Each helper is specified by a single string. The string is transformed
by git into a command to be executed using these rules:
Each helper is specified by a single string in the configuration
variable `credential.helper` (and others, see linkgit:../git-config[1]).
The string is transformed by git into a command to be executed using
these rules:
1. If the helper string begins with "!", it is considered a shell
snippet, and everything after the "!" becomes the command.
@ -243,3 +289,10 @@ request.
If a helper receives any other operation, it should silently ignore the
request. This leaves room for future operations to be added (older
helpers will just ignore the new requests).
See also
--------
linkgit:../gitcredentials[7]
linkgit:../git-config[5] (See configuration variables `credential.*`)

Просмотреть файл

@ -36,7 +36,7 @@ the operation of a low-level (single file) merge. Some options:
ancestors in a recursive merge.
If a helper program is specified by the
`[merge "<driver>"] recursive` configuration, it will
be used (see linkgit:gitattributes[5]).
be used (see linkgit:../gitattributes[5]).
`variant`::
Resolve local conflicts automatically in favor