From 26c5beadd23d066d56efc97f7a4cf18c46ec2ce5 Mon Sep 17 00:00:00 2001 From: Luky116Liuyuecai Date: Sun, 4 Sep 2022 22:43:36 +0800 Subject: [PATCH 1/2] add license github action --- .github/workflows/license.yml | 69 +++++++++++++++++++ .licenserc.yaml | 6 ++ goimports.sh | 9 ++- pkg/common/bytes/buf_helper_test.go | 17 +++++ pkg/common/bytes/buf_test.go | 17 +++++ .../sql/parser/executortype_string.go | 17 +++++ pkg/datasource/sql/types/dbtype_string.go | 17 +++++ pkg/datasource/sql/types/sqltype_string.go | 17 +++++ pkg/rm/rm_api_test.go | 17 +++++ pkg/rm/rm_cache_test.go | 17 +++++ pkg/rm/rm_remoting_test.go | 17 +++++ 11 files changed, 219 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/license.yml diff --git a/.github/workflows/license.yml b/.github/workflows/license.yml new file mode 100644 index 000000000..e46a5cc64 --- /dev/null +++ b/.github/workflows/license.yml @@ -0,0 +1,69 @@ +# +# 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 + + code-style: + name: Code style + runs-on: ubuntu-latest + timeout-minutes: 10 + steps: + - uses: actions/checkout@v3 + with: + submodules: true + - name: Check code style + run: ./mvnw -B -q clean checkstyle:check + + 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 \ No newline at end of file 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..a3ecf949c 100644 --- a/goimports.sh +++ b/goimports.sh @@ -15,6 +15,13 @@ # limitations under the License. # +# format go imports style go get -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 + +# 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 ( From 343c109fd10bb4cab7134a6446ac10a59e7925e2 Mon Sep 17 00:00:00 2001 From: Luky116Liuyuecai Date: Mon, 5 Sep 2022 00:10:24 +0800 Subject: [PATCH 2/2] add license github action --- .github/workflows/license.yml | 21 +++++++++------------ goimports.sh | 4 +++- 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/.github/workflows/license.yml b/.github/workflows/license.yml index e46a5cc64..93807940e 100644 --- a/.github/workflows/license.yml +++ b/.github/workflows/license.yml @@ -34,17 +34,6 @@ jobs: - name: Check license header uses: apache/skywalking-eyes@985866ce7e324454f61e22eb2db2e998db09d6f3 - code-style: - name: Code style - runs-on: ubuntu-latest - timeout-minutes: 10 - steps: - - uses: actions/checkout@v3 - with: - submodules: true - - name: Check code style - run: ./mvnw -B -q clean checkstyle:check - dependency-license: name: Dependency licenses needs: [changes] @@ -66,4 +55,12 @@ jobs: echo "LICENSE file is not updated correctly" git diff -U0 ./dist-material/release-docs/LICENSE exit 1 - fi \ No newline at end of file + 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/goimports.sh b/goimports.sh index a3ecf949c..0ad14d51e 100644 --- a/goimports.sh +++ b/goimports.sh @@ -16,12 +16,14 @@ # # format go imports style -go get -v golang.org/x/tools/cmd/goimports +go install -v golang.org/x/tools/cmd/goimports goimports -w . # 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