@atomist/sdm
Version:
Atomist Software Delivery Machine SDK
47 lines • 1.88 kB
TypeScript
import { Configuration } from "@atomist/automation-client/lib/configuration";
import { HandlerContext } from "@atomist/automation-client/lib/HandlerContext";
import { ProjectOperationCredentials } from "@atomist/automation-client/lib/operations/common/ProjectOperationCredentials";
import { RemoteRepoRef } from "@atomist/automation-client/lib/operations/common/RepoId";
import { AddressChannels } from "./addressChannels";
import { PreferenceStore } from "./preferenceStore";
import { SkillContext } from "./skillContext";
/**
* Context for an SDM action, whether a listener invocation or internal action
*/
export interface SdmContext {
/**
* Context of the Atomist EventHandler invocation. Use to run GraphQL
* queries, use the messageClient directly and find
* the team and correlation id
*/
context: HandlerContext;
/**
* Provides a way to address the channel(s) related to this action:
* usually, an event or command invocation.
* In an event handler, these are usually the channel(s) linked to a repo.
* In a command handler, the behavior will be the same as that of `MessageClient.respond`.
* In some cases, such as repo creation or a push to a repo where there is no linked channel,
* addressChannels will go to dev/null without error.
*/
addressChannels: AddressChannels;
/**
* Credentials for use with source control hosts such as GitHub
*/
credentials: ProjectOperationCredentials;
/**
* Store and retrieve preferences for this SDM or team
*/
preferences: PreferenceStore;
configuration: Configuration;
skill: SkillContext;
}
/**
* Context for an SDM action on a particular repo
*/
export interface RepoContext extends SdmContext {
/**
* The repo this relates to
*/
id: RemoteRepoRef;
}
//# sourceMappingURL=SdmContext.d.ts.map