diff --git a/.asf.yaml b/.asf.yaml
new file mode 100644
index 0000000..efb24e3
--- /dev/null
+++ b/.asf.yaml
@@ -0,0 +1,40 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+notifications:
+  commits:              commits@airavata.apache.org
+  # Send all issue emails (new, closed, comments) to issues@
+  issues:               issues@airavata.apache.org
+  # Send new/closed PR notifications to dev@
+  pullrequests_status:  custos@airavata.apache.org
+  # Send individual PR comments/reviews to issues@
+  pullrequests_comment: issues@airavata.apache.org
+  
+github:
+  description: "Apache Airavata Django Portal Framework"
+  homepage: https://airavata.apache.org/
+  labels:
+    - airavata
+    - sciencegateways
+    - gateways
+    - cloudnative
+    - microservices
+    - java
+    - workfloworchestrator
+    - workflow
+    - bigdata
