diff --git a/.travis.yml b/.travis.yml
index 2370221..f659501 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,3 +1,6 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more contributor
+# license agreements; and to You under the Apache License, Version 2.0.
+
 # https://docs.travis-ci.com/user/languages/python/
 language: python
 
diff --git a/README.md b/README.md
index dbe3e39..30d7d42 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,22 @@
+<!--
+#
+# 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.
+#
+-->
+
 # incubator-openwhisk-test
 
 [![License](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](http://www.apache.org/licenses/LICENSE-2.0)
diff --git a/packages/hellowhisk/README.md b/packages/hellowhisk/README.md
index 8314a23..97c81b4 100644
--- a/packages/hellowhisk/README.md
+++ b/packages/hellowhisk/README.md
@@ -1,3 +1,22 @@
+<!--
+#
+# 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.
+#
+-->
+
 [![License](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](http://www.apache.org/licenses/LICENSE-2.0)
 
 # hellowhisk
diff --git a/packages/hellowhisk/manifest.yaml b/packages/hellowhisk/manifest.yaml
index c2f0459..2f72914 100644
--- a/packages/hellowhisk/manifest.yaml
+++ b/packages/hellowhisk/manifest.yaml
@@ -1,3 +1,6 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more contributor
+# license agreements; and to You under the Apache License, Version 2.0.
+
 # Test manifest for incubator-openwhisk-wskdeploy utility
 # See https://github.com/apache/incubator-openwhisk-wskdeploy/tree/master/tests/src/integration/dependency
 project:
diff --git a/packages/helloworlds/README.md b/packages/helloworlds/README.md
index 9fa782f..9da6c00 100644
--- a/packages/helloworlds/README.md
+++ b/packages/helloworlds/README.md
@@ -1,3 +1,22 @@
+<!--
+#
+# 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.
+#
+-->
+
 [![License](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](http://www.apache.org/licenses/LICENSE-2.0)
 
 # helloworlds
diff --git a/packages/helloworlds/manifest.yaml b/packages/helloworlds/manifest.yaml
index 141be7a..431e653 100644
--- a/packages/helloworlds/manifest.yaml
+++ b/packages/helloworlds/manifest.yaml
@@ -1,3 +1,6 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more contributor
+# license agreements; and to You under the Apache License, Version 2.0.
+
 project:
     name: HelloWorlds
     packages:
diff --git a/packages/left-pad/index.js b/packages/left-pad/index.js
new file mode 100644
index 0000000..387cad8
--- /dev/null
+++ b/packages/left-pad/index.js
@@ -0,0 +1,10 @@
+// Licensed to the Apache Software Foundation (ASF) under one or more contributor
+// license agreements; and to You under the Apache License, Version 2.0.
+
+function leftPadAction(args) {
+    const leftPad = require("left-pad")
+    const lines = args.lines || [];
+    return { padded: lines.map(l => leftPad(l, 30, ".")) }
+}
+
+exports.main = leftPadAction;
diff --git a/packages/left-pad/package.json b/packages/left-pad/package.json
new file mode 100644
index 0000000..e0db633
--- /dev/null
+++ b/packages/left-pad/package.json
@@ -0,0 +1,7 @@
+{
+  "name": "left-pad-action",
+  "main": "index.js",
+  "dependencies": {
+    "left-pad": "1.1.3"
+  }
+}
diff --git a/tools/travis/scancode.sh b/tools/travis/scancode.sh
index ebfa361..44bf2c2 100755
--- a/tools/travis/scancode.sh
+++ b/tools/travis/scancode.sh
@@ -1,4 +1,6 @@
 #!/bin/bash
+# Licensed to the Apache Software Foundation (ASF) under one or more contributor
+# license agreements; and to You under the Apache License, Version 2.0.
 set -e
 
 # Build script for Travis-CI.
diff --git a/tools/travis/setupscan.sh b/tools/travis/setupscan.sh
index 35f070f..b80f6ef 100755
--- a/tools/travis/setupscan.sh
+++ b/tools/travis/setupscan.sh
@@ -1,4 +1,6 @@
 #!/bin/bash
+# Licensed to the Apache Software Foundation (ASF) under one or more contributor
+# license agreements; and to You under the Apache License, Version 2.0.
 
 SCRIPTDIR=$(cd $(dirname "$0") && pwd)
 HOMEDIR="$SCRIPTDIR/../../../"
