-
Notifications
You must be signed in to change notification settings - Fork 250
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: add custom step support #1021
Conversation
* add listener --------- Co-authored-by: Kazuhiro Sera <[email protected]>
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #1021 +/- ##
==========================================
+ Coverage 91.80% 92.00% +0.19%
==========================================
Files 186 195 +9
Lines 6408 6605 +197
==========================================
+ Hits 5883 6077 +194
- Misses 525 528 +3 ☔ View full report in Codecov by Sentry. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Left a few comments
Co-authored-by: Kazuhiro Sera <[email protected]>
Co-authored-by: Kazuhiro Sera <[email protected]>
Co-authored-by: Kazuhiro Sera <[email protected]>
@seratch @WilliamBergamin When will this PR be merged? |
@sharvesh06 yess this PR will be merged soon! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM! Left some mostly comment-related nits and a few musings about edge cases. But, I ran through the new-app and existing-app tutorials and confirmed everything works as expected 🎉
slack_bolt/app/app.py
Outdated
def reverse_string(event: dict, client: WebClient, context: BoltContext): | ||
try: | ||
string_to_reverse = event["inputs"]["stringToReverse"] | ||
client.functions_completeSuccess( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should this example use the client directly, or the complete
/ fail
shorthand parameter callbacks?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good call 💯 I think complete
/ fail
shorthand parameter are better
This example it good to show how to hand roll completing a function 🤔 not sure where we could include it
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think just explaining what complete
/fail
do, and which underlying HTTP API methods they invoke, is sufficient. Link to the relevant methods and developers will figure the rest out.
Co-authored-by: Fil Maj <[email protected]>
Co-authored-by: Fil Maj <[email protected]>
This PR includes all the changes from #986 aims to add support for custom functions in Bolt Python
Feedback
I'm looking for feedback on
Testing
This gist was created to show how to test these new feature, use it with the following steps
a. Head to https://api.slack.com/apps/?new_app=1
b. Click "From an app manifest"
c. Select YAML and paste the above manifest.yml content
d. Click create button
a. Install the app anyways (when the workspace is in an Org, org-wide installation is required to publish functions)
b. Grab the xoxb- token (Settings > Install App > Bot User OAuth Token)
c.
export SLACK_BOT_TOKEN=xoxb-...
a. Head to Settings > Basic Information > App-Level Tokens on the https://api.slack.com/apps page
b. Generate a new token with connections:write scope
c.
export SLACK_APP_TOKEN=xapp-...
a. Add
app.py
andasync_app.py
with the above source codeb. Pull the latest PR branch of bolt python to your local
c. Run
scripts/build_pypi_package.sh
this will generate a.whl
in thedist/
folderd. (Optional) In your project set up a venv with
python -m venv .venv
andsource .venv/bin/activate
e.
pip install global/path/to/bolt-python/dist/something.whl
f.
pip install aiohttp
g
python app.py
orpython async_app.py
a. Open the workflow builder
b. Create a new workflow with a link trigger
d. Seach "Hello" in the Steps view on the right side
e. Add the step to the workflow (you can set any user ID as the input)
f. Publish the workflow
Category
slack_bolt.App
and/or its core componentsslack_bolt.async_app.AsyncApp
and/or its core componentsslack_bolt.adapter
/docs
Requirements
Please read the Contributing guidelines and Code of Conduct before creating this issue or pull request. By submitting, you are agreeing to those rules.
./scripts/install_all_and_run_tests.sh
after making the changes.