Skip to content

Commit

Permalink
feat(): adding cache + fixed a bug in package.json analysis
Browse files Browse the repository at this point in the history
  • Loading branch information
jossef committed Apr 1, 2021
1 parent 848d92d commit 3f189c6
Show file tree
Hide file tree
Showing 5 changed files with 39 additions and 19 deletions.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Docker Image CI
name: CI

on:
push:
Expand All @@ -23,7 +23,7 @@ jobs:

- name: Build the Docker image
run: docker build -t dustico/dusti-lock:${{ steps.semantic_release_info.outputs.git_tag }} .

- name: Tag version
run: |
git config --local user.email "[email protected]"
Expand All @@ -46,13 +46,3 @@ jobs:
body: ${{ steps.semantic_release_info.outputs.notes }}
draft: false
prerelease: false

- name: Docker login
env:
DOCKER_USER: ${{secrets.DOCKER_USER}}
DOCKER_PASSWORD: ${{secrets.DOCKER_PASSWORD}}
run: |
docker login -u $DOCKER_USER -p $DOCKER_PASSWORD
- name: Docker push
run: docker push dustico/dusti-lock
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
dusti-lock
.idea
.idea
tests
1 change: 1 addition & 0 deletions analysis/analysis.go
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,7 @@ func AnalyzeDirectoryRecursive(workingDir string, excludedDirectories map[string

fileName := fileInfo.Name()
if fileName == "package.json" {
fmt.Printf("scanning \"%v\"\n", path)
result, err := AnalyzePackagesJsonFile(path)
if result {
hasAnyPackageAvailableForRegistration = true
Expand Down
8 changes: 4 additions & 4 deletions dependencies/dependencies.go
Original file line number Diff line number Diff line change
Expand Up @@ -77,12 +77,12 @@ func ParsePackagesJsonFile(reader *bufio.Reader) ([]string, error) {
return nil, err
}

processPackageName := func(npmPackageName string) {
processPackageName := func(dict *map[string]interface{}, npmPackageName string) {
if strings.HasPrefix(npmPackageName, "@") {
return
}

value, _ := (*t.Dependencies)[npmPackageName]
value, _ := (*dict)[npmPackageName]
version := fmt.Sprintf("%v", value)
version = strings.ToLower(version)

Expand All @@ -99,13 +99,13 @@ func ParsePackagesJsonFile(reader *bufio.Reader) ([]string, error) {

if t.Dependencies != nil {
for npmPackageName := range *t.Dependencies {
processPackageName(npmPackageName)
processPackageName(t.Dependencies, npmPackageName)
}
}

if t.DevDependencies != nil {
for npmPackageName := range *t.DevDependencies {
processPackageName(npmPackageName)
processPackageName(t.DevDependencies, npmPackageName)
}
}

Expand Down
32 changes: 30 additions & 2 deletions registry/registry.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,42 @@ const userAgent = "dependency locker"
const npmRegistryUrl = "https://registry.npmjs.org"
const pypiRegistryUrl = "https://pypi.python.org/simple"

var cache map[string]bool

func init() {
cache = map[string]bool{}
}

func IsPypiPackageAvailableForRegistration(packageName string) (bool, error) {
url := fmt.Sprintf("%v/%v", pypiRegistryUrl, packageName)
return isPackageAvailableForRegistration(url)

result, found := cache[url]
if found {
return result, nil
}

result, err := isPackageAvailableForRegistration(url)
if err != nil {
cache[url] = result
}

return result, err
}

func IsNpmPackageAvailableForRegistration(packageName string) (bool, error) {
url := fmt.Sprintf("%v/%v", npmRegistryUrl, packageName)
return isPackageAvailableForRegistration(url)

result, found := cache[url]
if found {
return result, nil
}

result, err := isPackageAvailableForRegistration(url)
if err != nil {
cache[url] = result
}

return result, err
}

func isPackageAvailableForRegistration(url string) (bool, error) {
Expand Down

0 comments on commit 3f189c6

Please sign in to comment.