Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion .github/workflows/CI.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@ name: CI

on:
push:
branches: [master]
branches:
- "*"
pull_request:
branches: [master]

Expand All @@ -20,6 +21,10 @@ jobs:
uses: actions/setup-dotnet@v1
with:
dotnet-version: 5.0.x
- name: Setup .NET 6
uses: actions/setup-dotnet@v1
with:
dotnet-version: "6.0.100-rc.2.21458.9"
- name: Restore dependencies
run: dotnet restore source
- name: Build
Expand Down
5 changes: 5 additions & 0 deletions .github/workflows/PreRelease.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,11 @@ jobs:
uses: gittools/actions/gitversion/setup@v0.9.7
with:
versionSpec: "5.x"
- name: Setup .NET 6
uses: actions/setup-dotnet@v1
with:
dotnet-version: "6.0.100-rc.2.21458.9"
include-prerelease: true
- name: Determine Version
id: gitversion
uses: gittools/actions/gitversion/execute@v0.9.7
Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/Release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,10 @@ jobs:
uses: gittools/actions/gitversion/setup@v0.9.7
with:
versionSpec: "5.x"
- name: Setup .NET 6
uses: actions/setup-dotnet@v1
with:
dotnet-version: "6.0.100-rc.2.21458.9"
- name: Determine Version
id: gitversion
uses: gittools/actions/gitversion/execute@v0.9.7
Expand Down
18 changes: 0 additions & 18 deletions Samples/HelloWorld/EventHandlers/AppHomeOpenedHandler.cs

This file was deleted.

14 changes: 0 additions & 14 deletions Samples/HelloWorld/EventHandlers/AppHomeViewSubmissionHandler.cs

This file was deleted.

20 changes: 0 additions & 20 deletions Samples/HelloWorld/EventHandlers/HelloWorldHandler.cs

This file was deleted.

20 changes: 0 additions & 20 deletions Samples/HelloWorld/EventHandlers/HiddenTestHandler.cs

This file was deleted.

39 changes: 0 additions & 39 deletions Samples/HelloWorld/EventHandlers/ListPublicCommands.cs

This file was deleted.

17 changes: 0 additions & 17 deletions Samples/HelloWorld/EventHandlers/MemberJoinedChannelHandler.cs

This file was deleted.

21 changes: 0 additions & 21 deletions Samples/HelloWorld/EventHandlers/PublicJokeHandler.cs

This file was deleted.

4 changes: 3 additions & 1 deletion Samples/HelloWorld/HelloWorld.csproj
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
<Project Sdk="Microsoft.NET.Sdk.Web">

<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<TargetFramework>net6.0</TargetFramework>
<IsPackable>false</IsPackable>
<ImplicitUsings>enable</ImplicitUsings>
<LangVersion>preview</LangVersion>
</PropertyGroup>


Expand Down
48 changes: 0 additions & 48 deletions Samples/HelloWorld/MyTokenStore.cs

This file was deleted.

66 changes: 36 additions & 30 deletions Samples/HelloWorld/Program.cs
Original file line number Diff line number Diff line change
@@ -1,35 +1,41 @@
using HelloWorld.EventHandlers;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Hosting;
using Slackbot.Net.Endpoints.Hosting;
using Slackbot.Net.SlackClients.Http.Extensions;
using Slackbot.Net.Endpoints.Authentication;
using Slackbot.Net.Endpoints.Abstractions;
using Slackbot.Net.Endpoints.Models.Events;
using Slackbot.Net.Abstractions.Hosting;

namespace HelloWorld
var builder = WebApplication.CreateBuilder(args);

// Needed in production to verify that incoming event payloads are from Slack
builder.Services.AddAuthentication()
.AddSlackbotEvents(c => c.SigningSecret = Environment.GetEnvironmentVariable("CLIENT_SIGNING_SECRET"));

// Setup event handlers
builder.Services.AddSlackBotEvents<TokenStore>()
.AddAppMentionHandler<DoStuff>();


var app = builder.Build();
app.UseSlackbot(enableAuth:!app.Environment.IsDevelopment()); // disable during development for easier testing
app.Run();

class DoStuff : IHandleAppMentions
{
public class Program
public bool ShouldHandle(AppMentionEvent slackEvent) => slackEvent.Text.Contains("dostuff");

public Task<EventHandledResponse> Handle(EventMetaData eventMetadata, AppMentionEvent slackEvent)
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}

public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.ConfigureServices(services =>
{
services.AddSlackClientBuilder();
services.AddSlackBotEvents<MyTokenStore>()
.AddAppMentionHandler<PublicJokeHandler>()
.AddAppMentionHandler<HiddenTestHandler>()
.AddAppMentionHandler<HelloWorldHandler>()
.AddMemberJoinedChannelHandler<MemberJoinedChannelHandler>()
.AddShortcut<ListPublicCommands>()
.AddViewSubmissionHandler<AppHomeViewSubmissionHandler>()
.AddAppHomeOpenedHandler<AppHomeOpenedHandler>();
});
webBuilder.Configure(app => app.UseSlackbot());
});
// handler code executed given ShouldHandle returns true
Console.WriteLine("Doing stuff!");
return Task.FromResult(new EventHandledResponse("yolo"));
}
}
}

class TokenStore : ITokenStore
{
public string SlackToken = Environment.GetEnvironmentVariable("SLACK_TOKEN");

public Task<IEnumerable<string>> GetTokens() => Task.FromResult(new [] { SlackToken }.AsEnumerable());
public Task<string> GetTokenByTeamId(string teamId) => Task.FromResult(SlackToken);
public Task Delete(string token) => throw new NotImplementedException("Single workspace app");
}
10 changes: 6 additions & 4 deletions Samples/HelloWorld/test.http
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
# Mimicks a payload slack would send for app_mention events, like "@yourbot hw" in this case:
POST http://localhost:1337/events
# Mimicks a payload slack would send for app_mention events, like "@yourbot dostuff" in this case:
GET http://localhost:5000/
X-Slack-Request-Timestamp: 12331231
X-Slack-Signature: v0:abc123etcetc

{
"team_id": "T0EC3DG3A",
"event": {
"type": "app_mention",
"user": "USRAR1YTV",
"text" : "<@BOT123> hw",
"text" : "<@BOT123> dostuff",
"channel": "C92QZTVEF"
}
}
}
Loading