X Tutup
Skip to content

Commit ca2e25f

Browse files
authored
Get rid of os.environment access in default arguments (slackapi#48)
1 parent becee21 commit ca2e25f

File tree

3 files changed

+50
-21
lines changed

3 files changed

+50
-21
lines changed

slack_bolt/adapter/aws_lambda/lambda_s3_oauth_flow.py

Lines changed: 30 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -19,19 +19,17 @@ def __init__(
1919
*,
2020
client: Optional[WebClient] = None,
2121
logger: Optional[Logger] = None,
22-
oauth_state_bucket_name: str = os.environ["SLACK_STATE_S3_BUCKET_NAME"],
23-
installation_bucket_name: str = os.environ["SLACK_INSTALLATION_S3_BUCKET_NAME"],
22+
oauth_state_bucket_name: Optional[str] = None, # required
23+
installation_bucket_name: Optional[str] = None, # required
2424
oauth_state_cookie_name: str = "slack-app-oauth-state",
2525
oauth_state_expiration_seconds: int = 60 * 10, # 10 minutes
26-
client_id: str = os.environ["SLACK_CLIENT_ID"],
27-
client_secret: str = os.environ["SLACK_CLIENT_SECRET"],
28-
scopes: Optional[str] = os.environ.get("SLACK_SCOPES", None),
29-
user_scopes: Optional[str] = os.environ.get("SLACK_USER_SCOPES", None),
30-
redirect_uri: Optional[str] = os.environ.get("SLACK_REDIRECT_URI", None),
31-
install_path: str = os.environ.get("SLACK_LAMBDA_PATH", "/slack/install"),
32-
redirect_uri_path: str = os.environ.get(
33-
"SLACK_LAMBDA_PATH", "/slack/oauth_redirect"
34-
),
26+
client_id: Optional[str] = None, # required
27+
client_secret: Optional[str] = None, # required
28+
scopes: Optional[str] = None, # required
29+
user_scopes: Optional[str] = None,
30+
redirect_uri: Optional[str] = None,
31+
install_path: Optional[str] = None, # required
32+
redirect_uri_path: Optional[str] = None, # required
3533
success_url: Optional[str] = None,
3634
failure_url: Optional[str] = None,
3735
):
@@ -40,6 +38,27 @@ def __init__(
4038

4139
self.s3_client = boto3.client("s3")
4240

41+
oauth_state_bucket_name = (
42+
oauth_state_bucket_name
43+
or os.environ["SLACK_STATE_S3_BUCKET_NAME"] # required
44+
)
45+
installation_bucket_name = (
46+
installation_bucket_name
47+
or os.environ["SLACK_INSTALLATION_S3_BUCKET_NAME"] # required
48+
)
49+
50+
client_id = client_id or os.environ["SLACK_CLIENT_ID"] # required
51+
client_secret = client_secret or os.environ["SLACK_CLIENT_SECRET"] # required
52+
scopes = scopes or os.environ.get("SLACK_SCOPES", None)
53+
user_scopes = user_scopes or os.environ.get("SLACK_USER_SCOPES", None)
54+
redirect_uri = redirect_uri or os.environ.get("SLACK_REDIRECT_URI", None)
55+
install_path = install_path or os.environ.get(
56+
"SLACK_LAMBDA_PATH", "/slack/install"
57+
)
58+
redirect_uri_path = redirect_uri_path or os.environ.get(
59+
"SLACK_LAMBDA_PATH", "/slack/oauth_redirect"
60+
)
61+
4362
self.oauth_state_store = AmazonS3OAuthStateStore(
4463
logger=self.logger,
4564
s3_client=self.s3_client,

slack_bolt/oauth/async_oauth_flow.py

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -124,16 +124,21 @@ def _init_internal_utils(self):
124124
def sqlite3(
125125
cls,
126126
database: str,
127-
client_id: Optional[str] = os.environ.get("SLACK_CLIENT_ID", None),
128-
client_secret: Optional[str] = os.environ.get("SLACK_CLIENT_SECRET", None),
129-
scopes: List[str] = os.environ.get("SLACK_SCOPES", "").split(","),
130-
user_scopes: List[str] = os.environ.get("SLACK_USER_SCOPES", "").split(","),
131-
redirect_uri: Optional[str] = os.environ.get("SLACK_REDIRECT_URI", None),
127+
client_id: Optional[str] = None, # required
128+
client_secret: Optional[str] = None, # required
129+
scopes: Optional[List[str]] = None,
130+
user_scopes: Optional[List[str]] = None,
131+
redirect_uri: Optional[str] = None,
132132
oauth_state_cookie_name: str = OAuthStateUtils.default_cookie_name,
133133
oauth_state_expiration_seconds: int = OAuthStateUtils.default_expiration_seconds,
134134
logger: Optional[Logger] = None,
135135
) -> "AsyncOAuthFlow":
136136

137+
client_id = client_id or os.environ["SLACK_CLIENT_ID"] # required
138+
client_secret = client_secret or os.environ["SLACK_CLIENT_SECRET"] # required
139+
scopes = scopes or os.environ.get("SLACK_SCOPES", "").split(",")
140+
user_scopes = user_scopes or os.environ.get("SLACK_USER_SCOPES", "").split(",")
141+
redirect_uri = redirect_uri or os.environ.get("SLACK_REDIRECT_URI", None)
137142
return AsyncOAuthFlow(
138143
client=create_async_web_client(),
139144
logger=logger,

slack_bolt/oauth/oauth_flow.py

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -120,16 +120,21 @@ def _init_internal_utils(self):
120120
def sqlite3(
121121
cls,
122122
database: str,
123-
client_id: Optional[str] = os.environ.get("SLACK_CLIENT_ID", None),
124-
client_secret: Optional[str] = os.environ.get("SLACK_CLIENT_SECRET", None),
125-
scopes: List[str] = os.environ.get("SLACK_SCOPES", "").split(","),
126-
user_scopes: List[str] = os.environ.get("SLACK_USER_SCOPES", "").split(","),
127-
redirect_uri: Optional[str] = os.environ.get("SLACK_REDIRECT_URI", None),
123+
client_id: Optional[str] = None, # required
124+
client_secret: Optional[str] = None, # required
125+
scopes: Optional[List[str]] = None,
126+
user_scopes: Optional[List[str]] = None,
127+
redirect_uri: Optional[str] = None,
128128
oauth_state_cookie_name: str = OAuthStateUtils.default_cookie_name,
129129
oauth_state_expiration_seconds: int = OAuthStateUtils.default_expiration_seconds,
130130
logger: Optional[Logger] = None,
131131
) -> "OAuthFlow":
132132

133+
client_id = client_id or os.environ["SLACK_CLIENT_ID"] # required
134+
client_secret = client_secret or os.environ["SLACK_CLIENT_SECRET"] # required
135+
scopes = scopes or os.environ.get("SLACK_SCOPES", "").split(",")
136+
user_scopes = user_scopes or os.environ.get("SLACK_USER_SCOPES", "").split(",")
137+
redirect_uri = redirect_uri or os.environ.get("SLACK_REDIRECT_URI", None)
133138
return OAuthFlow(
134139
client=WebClient(),
135140
logger=logger,

0 commit comments

Comments
 (0)
X Tutup