@ -3,9 +3,9 @@
* Licensed under the MIT License . See License . txt in the project root for license information .
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- * /
import { Disposable , Event , ProviderResult , Uri } from 'vscode' ;
import { Disposable , Event , ProviderResult , Uri , Command } from 'vscode' ;
import { GitErrorCodes , RefType , Status } from '../@types/vscode.git.enums' ;
import { GitErrorCodes , RefType , Status , ForcePushMode } from '../@types/vscode.git.enums' ;
export interface Git {
readonly path : string ;
@ -102,6 +102,19 @@ export interface CommitOptions {
signoff? : boolean ;
signCommit? : boolean ;
empty? : boolean ;
noVerify? : boolean ;
requireUserConfig? : boolean ;
useEditor? : boolean ;
verbose? : boolean ;
postCommitCommand? : string ;
}
export interface FetchOptions {
remote? : string ;
ref? : string ;
all? : boolean ;
prune? : boolean ;
depth? : number ;
}
export interface BranchQuery {
@ -128,6 +141,8 @@ export interface Repository {
show ( ref : string , path : string ) : Promise < string > ;
getCommit ( ref : string ) : Promise < Commit > ;
add ( paths : string [ ] ) : Promise < void > ;
revert ( paths : string [ ] ) : Promise < void > ;
clean ( paths : string [ ] ) : Promise < void > ;
apply ( patch : string , reverse? : boolean ) : Promise < void > ;
@ -154,6 +169,9 @@ export interface Repository {
getMergeBase ( ref1 : string , ref2 : string ) : Promise < string > ;
tag ( name : string , upstream : string ) : Promise < void > ;
deleteTag ( name : string ) : Promise < void > ;
status ( ) : Promise < void > ;
checkout ( treeish : string ) : Promise < void > ;
@ -161,9 +179,10 @@ export interface Repository {
removeRemote ( name : string ) : Promise < void > ;
renameRemote ( name : string , newName : string ) : Promise < void > ;
fetch ( options? : FetchOptions ) : Promise < void > ;
fetch ( remote? : string , ref? : string , depth? : number ) : Promise < void > ;
pull ( unshallow? : boolean ) : Promise < void > ;
push ( remoteName? : string , branchName? : string , setUpstream? : boolean ) : Promise < void > ;
push ( remoteName? : string , branchName? : string , setUpstream? : boolean , force? : ForcePushMode ): Promise < void > ;
blame ( path : string ) : Promise < string > ;
log ( options? : LogOptions ) : Promise < Commit [ ] > ;
@ -182,9 +201,16 @@ export interface RemoteSourceProvider {
readonly icon? : string ; // codicon name
readonly supportsQuery? : boolean ;
getRemoteSources ( query? : string ) : ProviderResult < RemoteSource [ ] > ;
getBranches ? ( url : string ) : ProviderResult < string [ ] > ;
publishRepository ? ( repository : Repository ) : Promise < void > ;
}
export interface RemoteSourcePublisher {
readonly name : string ;
readonly icon? : string ; // codicon name
publishRepository ( repository : Repository ) : Promise < void > ;
}
export interface Credentials {
readonly username : string ;
readonly password : string ;
@ -194,6 +220,10 @@ export interface CredentialsProvider {
getCredentials ( host : Uri ) : ProviderResult < Credentials > ;
}
export interface PostCommitCommandsProvider {
getCommands ( repository : Repository ) : Command [ ] ;
}
export interface PushErrorHandler {
handlePushError (
repository : Repository ,
@ -205,9 +235,15 @@ export interface PushErrorHandler {
export type APIState = 'uninitialized' | 'initialized' ;
export interface PublishEvent {
repository : Repository ;
branch? : string ;
}
export interface API {
readonly state : APIState ;
readonly onDidChangeState : Event < APIState > ;
readonly onDidPublish : Event < PublishEvent > ;
readonly git : Git ;
readonly repositories : Repository [ ] ;
readonly onDidOpenRepository : Event < Repository > ;
@ -218,8 +254,10 @@ export interface API {
init ( root : Uri ) : Promise < Repository | null > ;
openRepository ? ( root : Uri ) : Promise < Repository | null > ;
registerRemoteSourcePublisher ( publisher : RemoteSourcePublisher ) : Disposable ;
registerRemoteSourceProvider ( provider : RemoteSourceProvider ) : Disposable ;
registerCredentialsProvider ( provider : CredentialsProvider ) : Disposable ;
registerPostCommitCommandsProvider ( provider : PostCommitCommandsProvider ) : Disposable ;
registerPushErrorHandler ( handler : PushErrorHandler ) : Disposable ;
}
@ -230,7 +268,7 @@ export interface GitExtension {
/ * *
* Returns a specific API version .
*
* Throws error if git extension is disabled . You can listed to the
* Throws error if git extension is disabled . You can listen to the
* [ GitExtension . onDidChangeEnablement ] ( # GitExtension . onDidChangeEnablement ) event
* to know when the extension becomes enabled / disabled .
*