rm actions

This commit is contained in:
Clément Le Bihan
2022-03-06 20:29:28 +01:00
parent c9e73c3d7d
commit 8bc02776a2
2 changed files with 0 additions and 187 deletions
-18
View File
@@ -8,35 +8,17 @@ export enum ServiceType {
Utils,
};
export enum PipelineType {
// Special value that will never emit an action. It is used for deleted pipelines.
Never,
OnTweet,
OnYtUpload,
OnYtLike,
OnYtPlaylistAdd,
OnOpenPR,
OnCommentPR,
OnClosePR,
OnMergePR,
OnCreateIssue,
OnCommentIssue,
OnCloseIssue,
OnForkRepo,
OnStarRepo,
OnWatchRepo,
OnSpotifyAddToPlaylist,
OnSpotifySaveToLibrary,
OnDiscordMessage,
OnDiscordMessageFrom,
OnDiscordMention,
OnNewDiscordGuildMember,
OnDiscordGuildLeave,
OnTrigger,
};
-169
View File
@@ -1,5 +1,4 @@
import { Octokit } from "@octokit/rest";
import { createOAuthAppAuth, createOAuthUserAuth } from "@octokit/auth-oauth-app"
import { Pipeline, PipelineEnv, PipelineType, ReactionType, ServiceType } from "../models/pipeline";
import { action, BaseService, reaction, service } from "../models/base-service";
import { Webhooks, EmitterWebhookEventName } from "@octokit/webhooks";
@@ -16,24 +15,6 @@ export class Github extends BaseService {
if (!("Github" in pipeline.userData))
throw new Error("User not authenticated via github");
this._github = new Octokit({auth: pipeline.userData["Github"].accessToken});
console.log(process.env);
this._websocket = new Webhooks({
secret: process.env.GITHUB_SECRET
});
}
private fromGitHubEvent(
eventName: EmitterWebhookEventName,
filterMe: (_: any) => boolean,
mapMe: (_: any) => any
): Observable<PipelineEnv> {
return fromEventPattern(
(h) => this._websocket.on(eventName, h),
(h) => this._websocket.removeListener(eventName, h)
).pipe(
filter(({ _, __, payload }) => filterMe.call(payload)),
map(({ _, __, payload }) => mapMe(payload)),
);
}
@reaction(ReactionType.OpenPR, ['owner', 'repo', 'title', 'head', 'base'])
@@ -47,24 +28,6 @@ export class Github extends BaseService {
};
}
@action(PipelineType.OnOpenPR, ['owner', 'repo'])
listenOpenPR(params: any): Observable<PipelineEnv> {
return this.fromGitHubEvent(
"pull_request.opened",
(payload) => payload.repository.owner.login == params['owner']
&& payload.repository.name == params['repo'],
(payload) => ({
PR_NAME: payload.pull_request.title,
PR_BODY: payload.pull_request.body,
PR_OPENER: payload.sender.login,
PR_HEAD: payload.head.ref,
PR_BASE: payload.base.ref,
REPO_NAME: payload.repository.name,
REPO_OWNER: payload.repository.owner.login
})
);
}
@reaction(ReactionType.ClosePR, ['owner', 'repo', 'pull_number'])
async closePR(params: any): Promise<PipelineEnv> {
await this._github.pulls.update({
@@ -74,25 +37,6 @@ export class Github extends BaseService {
return {};
}
@action(PipelineType.OnClosePR, ['owner', 'repo'])
listenClosePR(params: any): Observable<PipelineEnv> {
return this.fromGitHubEvent(
"pull_request.closed",
(payload) => payload.repository.owner.login == params['owner']
&& payload.repository.name == params['repo']
&& payload.action == "closed" && payload.pull_request.merged == false,
(payload) => ({
PR_NAME: payload.pull_request.title,
PR_BODY: payload.pull_request.body,
PR_OPENER: payload.sender.login,
PR_HEAD: payload.head.ref,
PR_BASE: payload.base.ref,
REPO_NAME: payload.repository.name,
REPO_OWNER: payload.repository.owner.login
})
);
}
@reaction(ReactionType.MergePR, ['owner', 'repo', 'pull_number'])
async mergePR(params: any): Promise<PipelineEnv> {
await this._github.pulls.merge({
@@ -102,25 +46,6 @@ export class Github extends BaseService {
return {};
}
@action(PipelineType.OnMergePR, ['owner', 'repo'])
listenMergePR(params: any): Observable<PipelineEnv> {
return this.fromGitHubEvent(
"pull_request.edited",
(payload) => payload.repository.owner.login == params['owner']
&& payload.repository.name == params['repo']
&& payload.action == "closed" && payload.pull_request.merged,
(payload) => ({
PR_NAME: payload.pull_request.title,
PR_BODY: payload.pull_request.body,
PR_OPENER: payload.sender.login,
PR_HEAD: payload.head.ref,
PR_BASE: payload.base.ref,
REPO_NAME: payload.repository.name,
REPO_OWNER: payload.repository.owner.login
})
);
}
@reaction(ReactionType.CreateIssue, ['owner', 'repo', 'title', 'body'])
async createIssue(params: any): Promise<PipelineEnv> {
let res = await this._github.issues.create({
@@ -131,22 +56,6 @@ export class Github extends BaseService {
URL: res.data.url,
};
}
@action(PipelineType.OnCreateIssue, ['owner', 'repo'])
listenOnCreateIssue(params: any): Observable<PipelineEnv> {
return this.fromGitHubEvent(
"issues.opened",
(payload) => payload.repository.owner.login == params['owner']
&& payload.repository.name == params['repo'],
(payload) => ({
REPO_NAME: payload.repository.name,
REPO_OWNER: payload.repository.owner.login,
ISSUE_NAME: payload.issue.title,
ISSUE_CONTENT: payload.issue.body,
ISSUE_AUTHOR: payload.sender.login,
})
);
}
@reaction(ReactionType.CommentIssue, ['owner', 'repo', 'issue_number', 'body'])
async commentIssue(params: any): Promise<PipelineEnv> {
@@ -159,24 +68,6 @@ export class Github extends BaseService {
};
}
@action(PipelineType.OnCommentIssue, ['owner', 'repo'])
listenOnCommentIssue(params: any): Observable<PipelineEnv> {
return this.fromGitHubEvent(
"issue_comment",
(payload) => payload.repository.owner.login == params['owner']
&& payload.repository.name == params['repo'],
(payload) => ({
REPO_NAME: payload.repository.name,
REPO_OWNER: payload.repository.owner.login,
ISSUE_NAME: payload.issue.title,
ISSUE_CONTENT: payload.issue.body,
ISSUE_AUTHOR: payload.sender.login,
COMMENT: payload.comment.body,
COMMENTER: payload.comment.user.login
})
);
}
@reaction(ReactionType.CloseIssue, ['owner', 'repo', 'issue_number'])
async closeIssue(params: any): Promise<PipelineEnv> {
let res = await this._github.issues.update({
@@ -188,22 +79,6 @@ export class Github extends BaseService {
};
}
@action(PipelineType.OnCloseIssue, ['owner', 'repo'])
listenOnIssueClose(params: any): Observable<PipelineEnv> {
return this.fromGitHubEvent(
"issues.opened",
(payload) => payload.repository.owner.login == params['owner']
&& payload.repository.name == params['repo'],
(payload) => ({
REPO_NAME: payload.repository.name,
REPO_OWNER: payload.repository.owner.login,
ISSUE_NAME: payload.issue.title,
ISSUE_CONTENT: payload.issue.body,
ISSUE_AUTHOR: payload.sender.login
})
);
}
@reaction(ReactionType.CreateRepo, ['name'])
async createRepo(params: any): Promise<PipelineEnv> {
let res = await this._github.rest.repos.createForAuthenticatedUser({
@@ -245,20 +120,6 @@ export class Github extends BaseService {
};
}
@action(PipelineType.OnForkRepo, ['owner', 'repo'])
listenOnForkRepo(params: any): Observable<PipelineEnv> {
return this.fromGitHubEvent(
"fork",
(payload) => payload.repository.owner.login == params['owner']
&& payload.repository.name == params['repo'],
(payload) => ({
REPO_NAME: payload.repository.name,
REPO_OWNER: payload.repository.owner.login,
FORKER: payload.forkee.owner.login,
})
);
}
@reaction(ReactionType.StarRepo, ['owner', 'repo'])
async starRepo(params: any): Promise<PipelineEnv> {
await this._github.activity.starRepoForAuthenticatedUser({
@@ -267,21 +128,6 @@ export class Github extends BaseService {
return {};
}
@action(PipelineType.OnStarRepo, ['owner', 'repo'])
listenOnStarRepo(params: any): Observable<PipelineEnv> {
return this.fromGitHubEvent(
"star.created",
(payload) => payload.repository.owner.login == params['owner']
&& payload.repository.name == params['repo'],
(payload) => ({
REPO_NAME: payload.repository.name,
REPO_OWNER: payload.repository.owner.login,
STAR_COUNT: payload.repository.stargazers_count,
STARER: payload.sender.login
})
);
}
@reaction(ReactionType.WatchRepo, ['owner', 'repo'])
async watchRepo(params: any): Promise<PipelineEnv> {
await this._github.activity.setRepoSubscription({
@@ -289,19 +135,4 @@ export class Github extends BaseService {
});
return {};
}
@action(PipelineType.OnWatchRepo, ['owner', 'repo'])
listenOnWatchRepo(params: any): Observable<PipelineEnv> {
return this.fromGitHubEvent(
"watch.started",
(payload) => payload.repository.owner.login == params['owner']
&& payload.repository.name == params['repo'],
(payload) => ({
REPO_NAME: payload.repository.name,
REPO_OWNER: payload.repository.owner.login,
WATCH_COUNT: payload.repository.watchers,
WATCHER: payload.sender.login
})
);
}
}