diff --git a/.github/workflows/license.yml b/.github/workflows/license.yml new file mode 100644 index 000000000..93807940e --- /dev/null +++ b/.github/workflows/license.yml @@ -0,0 +1,66 @@ +# +# 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. +# + +name: CI + +on: + pull_request: + schedule: + - cron: "0 18 * * *" # TimeZone: UTC 0 + +jobs: + license-header: + name: License header + runs-on: ubuntu-latest + timeout-minutes: 10 + steps: + - uses: actions/checkout@v3 + with: + submodules: true + - name: Check license header + uses: apache/skywalking-eyes@985866ce7e324454f61e22eb2db2e998db09d6f3 + + dependency-license: + name: Dependency licenses + needs: [changes] + runs-on: ubuntu-latest + timeout-minutes: 30 + steps: + - uses: actions/checkout@v3 + with: + submodules: true + - name: Setup Go + uses: actions/setup-go@v3 + with: + go-version: "1.16" + - name: Check Dependencies Licenses + run: | + go install github.com/apache/skywalking-eyes/cmd/license-eye@47febf5 + license-eye dependency resolve --summary ./dist-material/release-docs/LICENSE.tpl || exit 1 + if [ ! -z "$(git diff -U0 ./dist-material/release-docs/LICENSE)" ]; then + echo "LICENSE file is not updated correctly" + git diff -U0 ./dist-material/release-docs/LICENSE + exit 1 + fi + - name: Check Dependencies Licenses Invalid + run: | + go install github.com/apache/skywalking-eyes/cmd/license-eye@47febf5 + if [ ! -z "$(license-eye dependency check -v error | grep 'GPL\|LGPL\|ERROR')" ]; then + echo "GPL or LGPL dependency LICENSE exists" + license-eye dependency check -v error | grep 'GPL\|LGPL\|ERROR' + exit 1 + fi diff --git a/.licenserc.yaml b/.licenserc.yaml index e2dff8ee2..23e969673 100644 --- a/.licenserc.yaml +++ b/.licenserc.yaml @@ -84,6 +84,12 @@ header: # `header` section is configurations for source codes license header. - '.github' comment: on-failure # on what condition license-eye will comment on the pull request, `on-failure`, `always`, `never`. + language: + Go: + extensions: + - ".go" + comment_style_id: SlashAsterisk + # license-location-threshold specifies the index threshold where the license header can be located, # after all, a "header" cannot be TOO far from the file start. license-location-threshold: 80 diff --git a/goimports.sh b/goimports.sh index e5d3ccc1b..0ad14d51e 100644 --- a/goimports.sh +++ b/goimports.sh @@ -15,6 +15,15 @@ # limitations under the License. # -go get -v golang.org/x/tools/cmd/goimports +# format go imports style +go install -v golang.org/x/tools/cmd/goimports goimports -w . -go mod tidy + +# format licence style +go install github.com/apache/skywalking-eyes/cmd/license-eye@latest +license-eye header fix +# check dependency licence is valid +license-eye dependency check + +# format go.mod +go mod tidy \ No newline at end of file diff --git a/pkg/common/bytes/buf_helper_test.go b/pkg/common/bytes/buf_helper_test.go index ea2c1adf1..b3eed0c65 100644 --- a/pkg/common/bytes/buf_helper_test.go +++ b/pkg/common/bytes/buf_helper_test.go @@ -1,3 +1,20 @@ +/* + * 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. + */ + package bytes import ( diff --git a/pkg/common/bytes/buf_test.go b/pkg/common/bytes/buf_test.go index d359d8130..8865951f5 100644 --- a/pkg/common/bytes/buf_test.go +++ b/pkg/common/bytes/buf_test.go @@ -1,3 +1,20 @@ +/* + * 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. + */ + package bytes import ( diff --git a/pkg/datasource/sql/parser/executortype_string.go b/pkg/datasource/sql/parser/executortype_string.go index a1ccbb49c..199b0f6e4 100644 --- a/pkg/datasource/sql/parser/executortype_string.go +++ b/pkg/datasource/sql/parser/executortype_string.go @@ -1,3 +1,20 @@ +/* + * 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. + */ + // Code generated by "stringer -type=ExecutorType"; DO NOT EDIT. package parser diff --git a/pkg/datasource/sql/types/dbtype_string.go b/pkg/datasource/sql/types/dbtype_string.go index b5247d1ae..ea9c08312 100644 --- a/pkg/datasource/sql/types/dbtype_string.go +++ b/pkg/datasource/sql/types/dbtype_string.go @@ -1,3 +1,20 @@ +/* + * 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. + */ + // Code generated by "stringer -type=DBType"; DO NOT EDIT. package types diff --git a/pkg/datasource/sql/types/sqltype_string.go b/pkg/datasource/sql/types/sqltype_string.go index 28fe8e8e5..40a4359ca 100644 --- a/pkg/datasource/sql/types/sqltype_string.go +++ b/pkg/datasource/sql/types/sqltype_string.go @@ -1,3 +1,20 @@ +/* + * 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. + */ + // Code generated by "stringer -type=SQLType"; DO NOT EDIT. package types diff --git a/pkg/rm/rm_api_test.go b/pkg/rm/rm_api_test.go index 3b9931231..1197ea1d1 100644 --- a/pkg/rm/rm_api_test.go +++ b/pkg/rm/rm_api_test.go @@ -1,3 +1,20 @@ +/* + * 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. + */ + package rm import ( diff --git a/pkg/rm/rm_cache_test.go b/pkg/rm/rm_cache_test.go index 2560a6018..bbef59c9e 100644 --- a/pkg/rm/rm_cache_test.go +++ b/pkg/rm/rm_cache_test.go @@ -1,3 +1,20 @@ +/* + * 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. + */ + package rm import ( diff --git a/pkg/rm/rm_remoting_test.go b/pkg/rm/rm_remoting_test.go index 5f69f68b9..e21efeb93 100644 --- a/pkg/rm/rm_remoting_test.go +++ b/pkg/rm/rm_remoting_test.go @@ -1,3 +1,20 @@ +/* + * 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. + */ + package rm import (