diff --git a/.github/workflows/frontend.yml b/.github/workflows/frontend.yml index 515b18cbec..d35dbef333 100644 --- a/.github/workflows/frontend.yml +++ b/.github/workflows/frontend.yml @@ -5,8 +5,6 @@ on: paths: - '*' - '.github/workflows/frontend.yml' - - '!backend/inventory/**' - - '!backend/scaffolder/**' jobs: build: diff --git a/.github/workflows/inventory.yml b/.github/workflows/inventory.yml deleted file mode 100644 index a16c59bc7c..0000000000 --- a/.github/workflows/inventory.yml +++ /dev/null @@ -1,29 +0,0 @@ -name: Inventory CI - -on: - push: - paths: - - 'backend/inventory/**' - - '.github/workflows/inventory.yml' - -jobs: - build: - runs-on: ubuntu-latest - steps: - - name: Set up Go - uses: actions/setup-go@v1 - with: - go-version: 1.12 - - name: checkout code - uses: actions/checkout@v1 - - name: setup env - run: | - echo "::set-env name=GOPATH::$(go env GOPATH)" - echo "::add-path::$(go env GOPATH)/bin" - shell: bash - - name: build - run: go build -v ./... - working-directory: ./backend/inventory - - name: test - run: go test ./... -short - working-directory: ./backend/inventory diff --git a/.github/workflows/scaffolder.yml b/.github/workflows/scaffolder.yml deleted file mode 100644 index 1dfef9cd38..0000000000 --- a/.github/workflows/scaffolder.yml +++ /dev/null @@ -1,29 +0,0 @@ -name: Scaffolder CI - -on: - push: - paths: - - 'backend/scaffolder/**' - - '.github/workflows/scaffolder.yml' - -jobs: - build: - runs-on: ubuntu-latest - steps: - - name: Set up Go - uses: actions/setup-go@v1 - with: - go-version: 1.12 - - name: checkout code - uses: actions/checkout@v1 - - name: setup env - run: | - echo "::set-env name=GOPATH::$(go env GOPATH)" - echo "::add-path::$(go env GOPATH)/bin" - shell: bash - - name: build - run: go build -v ./... - working-directory: ./backend/scaffolder - - name: test - run: go test ./... -short - working-directory: ./backend/scaffolder diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/README.md b/README.md index 3c688e6fcc..b38acfeedc 100644 --- a/README.md +++ b/README.md @@ -17,13 +17,13 @@ At Spotify we [strongly believe](https://backstage.io/the-spotify-story) that a The Backstage platform consists of a number of different components: -- **frontend** - Main web application that users interact with. It's built up by a number of different _Plugins_. +- **frontend** - Main web application that users interact with. It's built up by a number of different _Plugins_. - **plugins** - Each plugin is treated as a self-contained web app and can include almost any type of content. Plugins all use a common set of platform API's and reusable UI components. Plugins can fetch data either from the _backend_ or through any RESTful API exposed through the _proxy_. -- **backend** * - GraphQL aggregation service that holds the model of your software ecosystem, including organisational information and what team owns what software. The backend also has a Plugin model for extending its graph. -- **proxy** - Terminates HTTPS and exposes any RESTful API to Plugins. -- **identity** * - A backend service that holds your organisation's metadata. +- **backend** \* - GraphQL aggregation service that holds the model of your software ecosystem, including organisational information and what team owns what software. The backend also has a Plugin model for extending its graph. +- **proxy** \* - Terminates HTTPS and exposes any RESTful API to Plugins. +- **identity** \* - A backend service that holds your organisation's metadata. -_* not yet released_ +_\* not yet released_ ![overview](backstage_overview.png) @@ -63,20 +63,6 @@ This will prompt you to enter an ID for your plugin, and then create your plugin If you have `yarn start` already running you should be able to see the default page for your new plugin at [localhost:3000/my-plugin](http://localhost:3000/my-plugin), if you called the plugin `"my-plugin"`. -## Running the backend(s) locally - -For running the backend, depending on your OS, you need [Docker Desktop for Mac](https://docs.docker.com/docker-for-mac/install/), [Docker Desktop for Windows](https://docs.docker.com/docker-for-windows/install/), or for Linux, [docker](https://docs.docker.com/install/) and [docker-compose](https://docs.docker.com/compose/install/#install-compose-on-linux-systems). - -The full local system consists of a collection of backend services, as well as a web application. From the root of the project directory, run the following in a terminal to start up all backend services locally: - -```bash -$ cd backend - -$ docker-compose up --build -``` - -To develop backend services, there are some more tools to install, see [backend/README.md](backend/README.md). To update protobuf definitions, you will need another set of tools, see [proto/README.md](proto/README.md). - ## Documentation _TODO: Add links to docs on backstage.io_ diff --git a/backend/.env b/backend/.env deleted file mode 100644 index e1b17b2d4c..0000000000 --- a/backend/.env +++ /dev/null @@ -1 +0,0 @@ -COMPOSE_PROJECT_NAME=backstage diff --git a/backend/Dockerfile b/backend/Dockerfile deleted file mode 100644 index 042a94aae6..0000000000 --- a/backend/Dockerfile +++ /dev/null @@ -1,38 +0,0 @@ -ARG base_image=debian:buster - -### Scaffolder Stage -### needs extra cookiecutter -FROM debian:buster AS scaffolder -RUN apt-get update && apt-get install -y python-pip -RUN apt-get install -y python-backports.functools-lru-cache -RUN pip install cookiecutter==1.7.0 --index-url https://pypi.python.org/simple - - -### Builder Stage -FROM golang:1.13 AS build -ARG service - -WORKDIR /build/$service/ - -COPY proto/go.mod proto/go.sum /build/proto/ -COPY $service/go.mod $service/go.sum /build/$service/ - -RUN go mod download - -COPY proto/ /build/proto/ -COPY $service/ /build/$service/ - -RUN go build . - - -### Running Container Stage -FROM ${base_image} -ARG service - -RUN apt-get update && apt-get install -y ca-certificates - -WORKDIR /app/ - -COPY --from=build /build/$service/$service /app/service - -CMD ["./service"] diff --git a/backend/README.md b/backend/README.md deleted file mode 100644 index 2768cdb52f..0000000000 --- a/backend/README.md +++ /dev/null @@ -1,15 +0,0 @@ -# Backstage Backends - -## Installing Dependencies - -### Go - -To build and run the backend services directly, you need to have Go installed, installation instructions can be found [here](https://golang.org/doc/install#install). - -## Usage - -To run any backend service, go into its directory and run: - -```bash -go run . -``` diff --git a/backend/builds/ghactions/client.go b/backend/builds/ghactions/client.go deleted file mode 100644 index f87223c57e..0000000000 --- a/backend/builds/ghactions/client.go +++ /dev/null @@ -1,96 +0,0 @@ -package ghactions - -import ( - "context" - "encoding/json" - "fmt" - "net/http" - "os" -) - -type Client struct { - client *http.Client - baseURL string - accessToken string -} - -func NewFromEnv() (*Client, error) { - accessToken := os.Getenv("BOSS_GH_ACCESS_TOKEN") - - if accessToken == "" { - return nil, fmt.Errorf("BOSS_GH_ACCESS_TOKEN not set") - } - - return New(http.DefaultClient, "https://api.github.com", accessToken), nil -} - -func New(client *http.Client, baseURL, accessToken string) *Client { - return &Client{ - client: client, - baseURL: baseURL, - accessToken: accessToken, - } -} - -func (c *Client) createRequest(ctx context.Context, owner, repo, path string) (*http.Request, error) { - url := fmt.Sprintf("%s/repos/%s/%s/actions%s", c.baseURL, owner, repo, path) - req, err := http.NewRequest(http.MethodGet, url, nil) - if err != nil { - return nil, err - } - - req.Header.Add("Authorization", "Bearer "+c.accessToken) - - return req.WithContext(ctx), nil -} - -func (c *Client) ListWorkflowRuns(ctx context.Context, owner, repo string) (*WorkflowRunsListResponse, error) { - req, err := c.createRequest(ctx, owner, repo, "/runs") - if err != nil { - return nil, err - } - - res, err := c.client.Do(req) - if err != nil { - return nil, err - } - defer res.Body.Close() - - if res.StatusCode != http.StatusOK { - return nil, fmt.Errorf("Upstream fetch failed with status %d %s", res.StatusCode, res.Status) - } - - var resData WorkflowRunsListResponse - if err := json.NewDecoder(res.Body).Decode(&resData); err != nil { - return nil, err - } - - return &resData, nil -} - -func (c *Client) GetWorkflowRun(ctx context.Context, owner, repo, runId string) (*WorkflowRunResponse, error) { - req, err := c.createRequest(ctx, owner, repo, fmt.Sprintf("/runs/%s", runId)) - if err != nil { - return nil, err - } - - res, err := c.client.Do(req) - if err != nil { - return nil, err - } - defer res.Body.Close() - - if res.StatusCode != http.StatusOK { - if res.StatusCode == http.StatusNotFound { - return nil, nil - } - return nil, fmt.Errorf("Upstream fetch failed with status %d %s", res.StatusCode, res.Status) - } - - var resData WorkflowRunResponse - if err := json.NewDecoder(res.Body).Decode(&resData); err != nil { - return nil, err - } - - return &resData, nil -} diff --git a/backend/builds/ghactions/model.go b/backend/builds/ghactions/model.go deleted file mode 100644 index 3b6844c2f7..0000000000 --- a/backend/builds/ghactions/model.go +++ /dev/null @@ -1,53 +0,0 @@ -package ghactions - -type User struct { - Name string `json:"name"` // "Octo Cat" - Email string `json:"email"` // "octocat@github.com" -} - -type Commit struct { - ID string `json:"id"` // "acb5820ced9479c074f688cc328bf03f341a511d" - TreeID string `json:"tree_id"` // "d23f6eedb1e1b9610bbc754ddb5197bfe7271223" - Message string `json:"message"` // "Create linter.yml" - Timestamp string `json:"timestamp"` // "2020-01-22T19:33:05Z" - Author User `json:"author"` - Committer User `json:"committer"` -} - -type Repository struct { - ID int64 `json:"id"` // 217723378 - NodeID string `json:"node_id"` // MDEwOlJlcG9zaXRvcnkyMTc3MjMzNzg=" - Name string `json:"name"` // o-repo" - FullName string `json:"full_name"` // "octo-org/octo-repo" - HTMLURL string `json:"html_url"` // "https://github.com/octo-org/octo-repo" -} - -type WorkflowRunResponse struct { - ID int64 `json:"id"` // 30433642 - NodeID string `json:"node_id"` // "MDEyOldvcmtmbG93IFJ1bjI2OTI4OQ==" - HeadBranch string `json:"head_branch"` // "master" - HeadSha string `json:"head_sha"` // "acb5820ced9479c074f688cc328bf03f341a511d" - RunNumber int64 `json:"run_number"` // 562 - CheckSuiteID int64 `json:"check_suite_id"` // 414944374 - Event string `json:"event"` // "push" - Status string `json:"status"` // "queued" - Conclusion *string `json:"conclusion"` // null - URL string `json:"url"` // "https://api.github.com/repos/octo-org/octo-repo/actions/runs/30433642" - HTMLURL string `json:"html_url"` // "https://github.com/octo-org/octo-repo/actions/runs/30433642" - CreatedAt string `json:"created_at"` // "2020-01-22T19:33:08Z" - UpdatedAt string `json:"updated_at"` // "2020-01-22T19:33:08Z" - JobsURL string `json:"jobs_url"` // "https://api.github.com/repos/octo-org/octo-repo/actions/runs/30433642/jobs" - LogsURL string `json:"logs_url"` // "https://api.github.com/repos/octo-org/octo-repo/actions/runs/30433642/logs" - ArtifactsURL string `json:"artifacts_url"` // "https://api.github.com/repos/octo-org/octo-repo/actions/runs/30433642/artifacts" - CancelURL string `json:"cancel_url"` // "https://api.github.com/repos/octo-org/octo-repo/actions/runs/30433642/cancel" - RerunURL string `json:"rerun_url"` // "https://api.github.com/repos/octo-org/octo-repo/actions/runs/30433642/rerun" - WorkflowURL string `json:"workflow_url"` // "https://api.github.com/repos/octo-org/octo-repo/actions/workflows/30433642" - HeadCommit Commit `json:"head_commit"` - Repository Repository `json:"repository"` - HeadRepository Repository `json:"head_repository"` -} - -type WorkflowRunsListResponse struct { - TotalCount int64 `json:"total_count"` - Runs []WorkflowRunResponse `json:"workflow_runs"` -} diff --git a/backend/builds/go.mod b/backend/builds/go.mod deleted file mode 100644 index bc0cc2216f..0000000000 --- a/backend/builds/go.mod +++ /dev/null @@ -1,11 +0,0 @@ -module github.com/spotify/backstage/builds - -go 1.12 - -replace github.com/spotify/backstage/proto => ../proto - -require ( - github.com/prometheus/common v0.9.1 - github.com/spotify/backstage/proto v0.0.0-00010101000000-000000000000 - google.golang.org/grpc v1.27.1 -) diff --git a/backend/builds/go.sum b/backend/builds/go.sum deleted file mode 100644 index 4bfe18f317..0000000000 --- a/backend/builds/go.sum +++ /dev/null @@ -1,117 +0,0 @@ -cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= -github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751 h1:JYp7IbQjafoB+tBA3gMyHYHrpOtNuDiK/uB5uXxq5wM= -github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= -github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4 h1:Hs82Z41s6SdL1CELW+XaDYmOH4hkBN4/N9og/AsOv7E= -github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= -github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= -github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= -github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= -github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= -github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= -github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58= -github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.3 h1:gyjaxf+svBWX08ZjK86iN9geUJF0H6gp2IRKX6Nf6/I= -github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/google/go-cmp v0.2.0 h1:+dTQ8DZQJz0Mb/HjFlkptS1FeQ4cWSnN941F8aEG4SQ= -github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= -github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= -github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= -github.com/konsorten/go-windows-terminal-sequences v1.0.1 h1:mweAR1A6xJ3oS2pRaGiHgQ4OO8tzTaLawm8vnODuwDk= -github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= -github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= -github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= -github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= -github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= -github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.9.1 h1:KOMtN28tlbam3/7ZKEYKHhKoJZYYj3gMH4uc62x7X7U= -github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= -github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= -github.com/sirupsen/logrus v1.4.2 h1:SPIRibHv4MatM3XXNO2BJeFLZwZ2LvZgfQ5+UNI2im4= -github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= -github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= -github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2 h1:VklqNMn3ovrHsnt90PveolxSbWFaJdECFbxSq0Mqo2M= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= -golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190311183353-d8887717615a h1:oWX7TPOiFAMXLq8o0ikBYfCJVlRHBcsciT5bXOrH628= -golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190613194153-d28f0bde5980 h1:dfGZHvZk057jK2MCeWus/TowKpJ8y4AmooUzdBSR9GU= -golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be h1:vEDujvNQGv4jgYKudGeI/+DAX4Jffq6hpD55MmoEvKs= -golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a h1:1BGLXjeY4akVXGgbC9HugT3Jv3hCI0z56oJR5vAMgBU= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190422165155-953cdadca894 h1:Cz4ceDQGXuKRnVBDTS23GTn/pU5OE2C0WrNTOYK1Uuc= -golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= -golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= -google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55 h1:gSJIx1SDwno+2ElGhA4+qG2zF97qiUzTM+rQ0klBOcE= -google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= -google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.27.0 h1:rRYRFMVgRv6E0D70Skyfsr28tDXIuuPZyWGMPdMcnXg= -google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.27.1 h1:zvIju4sqAGvwKspUQOhwnpcqSbzi7/H6QomNNjTL4sk= -google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -gopkg.in/alecthomas/kingpin.v2 v2.2.6 h1:jMFz6MfLP0/4fUyZle81rXUoxOBFi19VUFKVDOQfozc= -gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/backend/builds/main.go b/backend/builds/main.go deleted file mode 100644 index 19c4141b03..0000000000 --- a/backend/builds/main.go +++ /dev/null @@ -1,42 +0,0 @@ -package main - -import ( - "log" - "net" - - "github.com/spotify/backstage/builds/ghactions" - "github.com/spotify/backstage/builds/service" - buildsv1 "github.com/spotify/backstage/proto/builds/v1" - inventoryv1 "github.com/spotify/backstage/proto/inventory/v1" - - "google.golang.org/grpc" -) - -const ( - port = ":50051" -) - -func main() { - lis, err := net.Listen("tcp", port) - if err != nil { - log.Fatalf("Failed to listen: %v", err) - } - grpcServer := grpc.NewServer() - - conn, err := grpc.Dial("inventory:50051", grpc.WithInsecure()) - if err != nil { - log.Fatal("Cannot connect to inventory service") - } - - inventory := inventoryv1.NewInventoryClient(conn) - - ghClient, err := ghactions.NewFromEnv() - if err != nil { - log.Fatalf("Failed to create github client, %s", err) - } - - buildsv1.RegisterBuildsServer(grpcServer, service.New(ghClient, inventory)) - - log.Println("Serving Builds Service") - grpcServer.Serve(lis) -} diff --git a/backend/builds/service/service.go b/backend/builds/service/service.go deleted file mode 100644 index 70008f0d25..0000000000 --- a/backend/builds/service/service.go +++ /dev/null @@ -1,166 +0,0 @@ -package service - -import ( - "context" - "fmt" - "regexp" - - "github.com/prometheus/common/log" - "github.com/spotify/backstage/builds/ghactions" - buildsv1 "github.com/spotify/backstage/proto/builds/v1" - inventoryv1 "github.com/spotify/backstage/proto/inventory/v1" - "google.golang.org/grpc/codes" - "google.golang.org/grpc/status" -) - -type service struct { - ghClient *ghactions.Client - inventory inventoryv1.InventoryClient -} - -var _ buildsv1.BuildsServer = (*service)(nil) - -// New creates a new identity data server -func New(ghClient *ghactions.Client, inventory inventoryv1.InventoryClient) buildsv1.BuildsServer { - return &service{ghClient, inventory} -} - -func (s *service) ListBuilds(ctx context.Context, req *buildsv1.ListBuildsRequest) (*buildsv1.ListBuildsReply, error) { - uri := req.GetEntityUri() - - owner := "spotify" - repo := "backstage" - - ownerReq, err := s.inventory.GetFact(ctx, &inventoryv1.GetFactRequest{ - EntityUri: uri, - Name: "githubOwner", - }) - if err != nil { - log.Errorf("Failed to fetch owner for %s, defaulting to %s", uri, owner) - } - if ownerReq.GetFact().GetValue() != "" { - owner = ownerReq.Fact.GetValue() - } else { - log.Errorf("No owner found for %s, defaulting to %s", uri, owner) - } - - repotReq, err := s.inventory.GetFact(ctx, &inventoryv1.GetFactRequest{ - EntityUri: uri, - Name: "githubRepo", - }) - if err != nil { - log.Errorf("Failed to fetch repo for %s, defaulting to %s", uri, repo) - } - if repotReq.GetFact().GetValue() != "" { - repo = repotReq.GetFact().GetValue() - } else { - log.Errorf("No repo found for %s, defaulting to %s", uri, owner) - } - - result, err := s.ghClient.ListWorkflowRuns(ctx, owner, repo) - if err != nil { - return nil, status.Errorf(codes.Internal, "Failed to fetch workflow runs for %s/%s, %s", owner, repo, err) - } - - builds := make([]*buildsv1.Build, len(result.Runs)) - - for i, run := range result.Runs { - builds[i] = s.transformBuild(owner, repo, &run) - } - - return &buildsv1.ListBuildsReply{ - EntityUri: "", - Builds: builds, - }, nil -} - -func (s *service) GetBuild(ctx context.Context, req *buildsv1.GetBuildRequest) (*buildsv1.GetBuildReply, error) { - uri := req.GetBuildUri() - - owner, repo, runID, err := s.parseBuildURI(uri) - if err != nil { - return nil, status.Errorf(codes.InvalidArgument, "Invalid build URI '%s', %s", uri, err) - } - - run, err := s.ghClient.GetWorkflowRun(ctx, owner, repo, runID) - if err != nil { - return nil, status.Errorf(codes.Internal, "Failed to fetch workflow run for %s/%s/%s, %s", owner, repo, runID, err) - } - if run == nil { - return nil, status.Errorf(codes.NotFound, "Workflow run %s/%s/%s not found", owner, repo, runID) - } - - return &buildsv1.GetBuildReply{ - Build: s.transformBuild(owner, repo, run), - Details: &buildsv1.BuildDetails{ - Author: run.HeadCommit.Author.Name, - LogUrl: run.LogsURL, - OverviewUrl: run.HTMLURL, - }, - }, nil -} - -func (s *service) transformBuild(owner, repo string, run *ghactions.WorkflowRunResponse) *buildsv1.Build { - stat := buildsv1.BuildStatus_NULL - switch run.Status { - case "queued": - stat = buildsv1.BuildStatus_PENDING - case "in_progress": - stat = buildsv1.BuildStatus_RUNNING - case "completed": - if run.Conclusion != nil { - switch *run.Conclusion { - case "success": - stat = buildsv1.BuildStatus_SUCCESS - case "neutral": - stat = buildsv1.BuildStatus_SUCCESS - case "failure": - stat = buildsv1.BuildStatus_FAILURE - case "cancelled": - stat = buildsv1.BuildStatus_FAILURE - case "timed_out": - stat = buildsv1.BuildStatus_FAILURE - case "action_required": - stat = buildsv1.BuildStatus_RUNNING - } - } - } - - return &buildsv1.Build{ - Uri: fmt.Sprintf("entity:build:%s/%s/%d", owner, repo, run.ID), - CommitId: run.HeadCommit.ID, - Message: run.HeadCommit.Message, - Branch: run.HeadBranch, - Status: stat, - } -} - -var buildURIRegex = regexp.MustCompile("^entity:build:([^/:]+)/([^/:]+)/([^/:]+)$") - -func (s *service) parseBuildURI(uri string) (owner, repo, runID string, err error) { - if uri == "" { - return "", "", "", fmt.Errorf("uri is empty") - } - - match := buildURIRegex.FindStringSubmatch(uri) - if match == nil { - return "", "", "", fmt.Errorf("uri does not match") - } - - return match[1], match[2], match[3], nil -} - -var entityURIRegex = regexp.MustCompile("^entity:([^:]+):([^:]+)$") - -func (s *service) parseEntityURI(uri string) (kind, id string, err error) { - if uri == "" { - return "", "", fmt.Errorf("uri is empty") - } - - match := entityURIRegex.FindStringSubmatch(uri) - if match == nil { - return "", "", fmt.Errorf("uri does not match") - } - - return match[1], match[2], nil -} diff --git a/backend/docker-compose.yaml b/backend/docker-compose.yaml deleted file mode 100755 index 4396cae77d..0000000000 --- a/backend/docker-compose.yaml +++ /dev/null @@ -1,58 +0,0 @@ -#!/usr/bin/env docker-compose -f - -version: "3.4" - -services: - proxy: - container_name: boss-proxy - build: - context: proxy - restart: unless-stopped - ports: - - "8080:80" - - identity: - container_name: boss-identity - build: - context: . - args: - service: identity - restart: unless-stopped - volumes: - - ./identity/identity-data.json:/app/identity-data.json - - # inventory: - # container_name: boss-inventory - # build: - # context: . - # args: - # service: inventory - # restart: unless-stopped - # volumes: - # - ./inventory/inventory.db:/app/inventory.db - - # builds: - # container_name: boss-builds - # build: - # context: . - # args: - # service: builds - # restart: unless-stopped - # depends_on: - # - inventory - # links: - # - inventory - - # scaffolder: - # depends_on: - # - inventory - # links: - # - inventory - # build: - # context: . - # args: - # service: scaffolder - # base_image: scaffolder - # restart: unless-stopped - # volumes: - # - ./scaffolder/templates:/app/templates:ro diff --git a/backend/identity/.gitignore b/backend/identity/.gitignore deleted file mode 100644 index 29d7277364..0000000000 --- a/backend/identity/.gitignore +++ /dev/null @@ -1 +0,0 @@ -identity diff --git a/backend/identity/README.md b/backend/identity/README.md deleted file mode 100644 index 45bdb4b2d1..0000000000 --- a/backend/identity/README.md +++ /dev/null @@ -1,21 +0,0 @@ -# Backstage Identity Service - -Mock implementation of Backstage Indentity service API. - -## Usage - -```sh -$ go build . - -$ ./identity -``` - -Try it out from `proto/` folder: - -```sh -prototool grpc identity \ - --address 0.0.0.0:50051 \ - --method spotify.backstage.identity.v1.Identity/GetUser \ - --data '{"id":"patriko"}' \ - --details -``` diff --git a/backend/identity/go.mod b/backend/identity/go.mod deleted file mode 100644 index 1c379c4819..0000000000 --- a/backend/identity/go.mod +++ /dev/null @@ -1,14 +0,0 @@ -module github.com/spotify/backstage/identity - -go 1.13 - -replace github.com/spotify/backstage/proto => ../proto - -require ( - github.com/golang/mock v1.1.1 - github.com/spotify/backstage/proto v0.0.0-00010101000000-000000000000 - golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3 // indirect - golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135 // indirect - google.golang.org/grpc v1.27.0 - honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc // indirect -) diff --git a/backend/identity/go.sum b/backend/identity/go.sum deleted file mode 100644 index f0f642c0ae..0000000000 --- a/backend/identity/go.sum +++ /dev/null @@ -1,51 +0,0 @@ -cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/mock v1.1.1 h1:G5FRp8JnTd7RQH5kemVNlMeyXQAztQ3mOWV95KxsXH8= -github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.2 h1:6nsPYzhq5kReh6QImI3k5qWzO4PEbvbIW2cwSfR/6xs= -github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.3 h1:gyjaxf+svBWX08ZjK86iN9geUJF0H6gp2IRKX6Nf6/I= -github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/google/go-cmp v0.2.0 h1:+dTQ8DZQJz0Mb/HjFlkptS1FeQ4cWSnN941F8aEG4SQ= -github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= -github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= -golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190311183353-d8887717615a h1:oWX7TPOiFAMXLq8o0ikBYfCJVlRHBcsciT5bXOrH628= -golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a h1:1BGLXjeY4akVXGgbC9HugT3Jv3hCI0z56oJR5vAMgBU= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= -golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= -google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55 h1:gSJIx1SDwno+2ElGhA4+qG2zF97qiUzTM+rQ0klBOcE= -google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= -google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.27.0 h1:rRYRFMVgRv6E0D70Skyfsr28tDXIuuPZyWGMPdMcnXg= -google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/backend/identity/identity-data.json b/backend/identity/identity-data.json deleted file mode 100644 index bb33d9ce19..0000000000 --- a/backend/identity/identity-data.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "users": [ - { - "id": "rugvip", - "name": "Patrik", - "groups": ["backstage"] - } - ], - "groups": [ - { - "id": "spotify", - "groups": ["backstage", "scio"] - }, - { - "id": "backstage", - "groups": [] - }, - { - "id": "scio", - "groups": [] - } - ] -} diff --git a/backend/identity/main.go b/backend/identity/main.go deleted file mode 100644 index c377954261..0000000000 --- a/backend/identity/main.go +++ /dev/null @@ -1,35 +0,0 @@ -package main - -import ( - "log" - "net" - - "github.com/spotify/backstage/identity/model" - "github.com/spotify/backstage/identity/service" - - identityv1 "github.com/spotify/backstage/proto/identity/v1" - "google.golang.org/grpc" -) - -const ( - port = ":50051" - dataPath = "./identity-data.json" -) - -func main() { - data, err := model.LoadIdentityData(dataPath) - if err != nil { - log.Fatalf("failed to load identity data, %s", err) - } - - lis, err := net.Listen("tcp", port) - if err != nil { - log.Fatalf("failed to listen: %v", err) - } - - grpcServer := grpc.NewServer() - identityv1.RegisterIdentityServer(grpcServer, service.New(data)) - - log.Println("Serving Identity Service") - grpcServer.Serve(lis) -} diff --git a/backend/identity/model/loader.go b/backend/identity/model/loader.go deleted file mode 100644 index 6b4a59db36..0000000000 --- a/backend/identity/model/loader.go +++ /dev/null @@ -1,53 +0,0 @@ -package model - -import ( - "encoding/json" - "io/ioutil" -) - -type IdentityFileData struct { - Users []struct { - ID string `json:"id"` - Name string `json:"name"` - Groups []string `json:"groups"` - } - Groups []struct { - ID string `json:"id"` - Groups []string `json:"groups"` - } -} - -// LoadIdentityData loads identity data from a json file. -func LoadIdentityData(path string) (*IdentityData, error) { - data, err := ioutil.ReadFile(path) - if err != nil { - return nil, err - } - - var identityFileData IdentityFileData - if err := json.Unmarshal(data, &identityFileData); err != nil { - return nil, err - } - - identityData := IdentityData{ - Users: map[string]User{}, - Groups: map[string]Group{}, - } - - for _, user := range identityFileData.Users { - identityData.Users[user.ID] = User{ - ID: user.ID, - Name: user.Name, - Groups: user.Groups, - } - } - - for _, group := range identityFileData.Groups { - identityData.Groups[group.ID] = Group{ - ID: group.ID, - Groups: group.Groups, - } - } - - return &identityData, nil -} diff --git a/backend/identity/model/model.go b/backend/identity/model/model.go deleted file mode 100644 index cca2eeba84..0000000000 --- a/backend/identity/model/model.go +++ /dev/null @@ -1,18 +0,0 @@ -package model - -type IdentityData struct { - Users map[string]User - Groups map[string]Group -} - -type User struct { - ID string - Name string - Groups []string -} - -type Group struct { - ID string - Users []string - Groups []string -} diff --git a/backend/identity/service/service.go b/backend/identity/service/service.go deleted file mode 100644 index a6f0f4bfa3..0000000000 --- a/backend/identity/service/service.go +++ /dev/null @@ -1,71 +0,0 @@ -package service - -import ( - "context" - - "github.com/spotify/backstage/identity/model" - identityv1 "github.com/spotify/backstage/proto/identity/v1" - "google.golang.org/grpc/codes" - "google.golang.org/grpc/status" -) - -type identityDataServer model.IdentityData - -// New creates a new identity data server -func New(data *model.IdentityData) identityv1.IdentityServer { - return (*identityDataServer)(data) -} - -func (s *identityDataServer) GetUser(ctx context.Context, req *identityv1.GetUserRequest) (*identityv1.GetUserReply, error) { - id := req.GetId() - if id == "" { - return nil, status.Error(codes.InvalidArgument, "ID is required in GetUserRequest") - } - - user, ok := s.Users[id] - if !ok { - return nil, status.Errorf(codes.NotFound, "User '%s' not found", id) - } - - var replyGroups []*identityv1.Group - for _, groupID := range user.Groups { - replyGroups = append(replyGroups, &identityv1.Group{ - Id: groupID, - }) - } - - return &identityv1.GetUserReply{ - User: &identityv1.User{Id: user.ID, Name: user.Name}, - Groups: replyGroups, - }, nil -} - -func (s *identityDataServer) GetGroup(ctx context.Context, req *identityv1.GetGroupRequest) (*identityv1.GetGroupReply, error) { - id := req.GetId() - if id == "" { - return nil, status.Error(codes.InvalidArgument, "ID is required in GetGroupRequest") - } - - group, ok := s.Groups[id] - if !ok { - return nil, status.Errorf(codes.NotFound, "Group '%s' not found", id) - } - - var replyUsers []*identityv1.User - for _, userID := range group.Users { - replyUsers = append(replyUsers, &identityv1.User{ - Id: userID, - }) - } - - var replyGroups []*identityv1.Group - for _, groupID := range group.Groups { - replyGroups = append(replyGroups, &identityv1.Group{ - Id: groupID, - }) - } - - return &identityv1.GetGroupReply{ - Group: &identityv1.Group{Id: group.ID, Users: replyUsers, Groups: replyGroups}, - }, nil -} diff --git a/backend/inventory/app/server.go b/backend/inventory/app/server.go deleted file mode 100644 index d000047ebd..0000000000 --- a/backend/inventory/app/server.go +++ /dev/null @@ -1,91 +0,0 @@ -package app - -import ( - "context" - "fmt" - - "github.com/spotify/backstage/inventory/storage" - "google.golang.org/grpc/codes" - "google.golang.org/grpc/status" - - pb "github.com/spotify/backstage/proto/inventory/v1" -) - -// Server is the inventory Grpc server -type Server struct { - Storage *storage.Storage -} - -func (s *Server) ListEntities(ctx context.Context, req *pb.ListEntitiesRequest) (*pb.ListEntitiesReply, error) { - entities, err := s.Storage.ListEntities(req.UriPrefix) - if err != nil { - return nil, status.Error(codes.Internal, "could not list entities") - } - - var result []*pb.Entity - for _, entity := range entities { - var facts []*pb.Fact - factTuples, err := s.Storage.GetFacts(entity) - if err != nil { - return nil, status.Error(codes.Internal, fmt.Sprintf("could not get facts for %v", entity)) - } - for key, value := range factTuples { - facts = append(facts, &pb.Fact{Name: key, Value: value}) - } - result = append(result, &pb.Entity{Uri: entity, Facts: facts}) - } - - return &pb.ListEntitiesReply{Entities: result}, nil -} - -func (s *Server) CreateEntity(ctx context.Context, req *pb.CreateEntityRequest) (*pb.CreateEntityReply, error) { - uri := req.GetEntity().GetUri() - err := s.Storage.CreateEntity(uri) - if err != nil { - return nil, status.Error(codes.Internal, "could not create entity") - } - for _, fact := range req.GetEntity().GetFacts() { - if fact.GetName() != "" { - if err := s.Storage.SetFact(uri, fact.GetName(), fact.GetValue()); err != nil { - return nil, status.Errorf(codes.Internal, "failed to set fact %s, %s", fact.GetName(), err) - } - } - } - return &pb.CreateEntityReply{Entity: req.GetEntity()}, nil -} - -// GetEntity returns an inventory Entity with the selected facts -func (s *Server) GetEntity(ctx context.Context, req *pb.GetEntityRequest) (*pb.GetEntityReply, error) { - var facts []*pb.Fact - - entityUri, err := s.Storage.GetEntity(req.GetEntity().GetUri()) - if err != nil { - return nil, status.Error(codes.Internal, fmt.Sprintf("could not get entity %v", err)) - } - - factTuples, err := s.Storage.GetFacts(entityUri) - if err != nil { - return nil, status.Error(codes.Internal, fmt.Sprintf("could not get facts for %v", entityUri)) - } - - for key, value := range factTuples { - facts = append(facts, &pb.Fact{Name: key, Value: value}) - } - return &pb.GetEntityReply{Entity: &pb.Entity{Uri: entityUri, Facts: facts}}, nil -} - -func (s *Server) SetFact(ctx context.Context, req *pb.SetFactRequest) (*pb.SetFactReply, error) { - err := s.Storage.SetFact(req.EntityUri, req.Name, req.Value) - if err != nil { - return nil, status.Error(codes.Internal, "could not set fact") - } - return &pb.SetFactReply{Fact: &pb.Fact{Name: req.GetName(), Value: req.GetValue()}}, nil -} - -func (s *Server) GetFact(ctx context.Context, req *pb.GetFactRequest) (*pb.GetFactReply, error) { - val, err := s.Storage.GetFact(req.EntityUri, req.Name) - if err != nil { - return nil, status.Error(codes.Internal, "could not set fact") - } - return &pb.GetFactReply{Fact: &pb.Fact{Name: req.GetName(), Value: val}}, nil -} diff --git a/backend/inventory/app/server_test.go b/backend/inventory/app/server_test.go deleted file mode 100644 index 4fb7771903..0000000000 --- a/backend/inventory/app/server_test.go +++ /dev/null @@ -1,152 +0,0 @@ -package app - -import ( - "context" - "fmt" - "io/ioutil" - "os" - "reflect" - "testing" - - "github.com/spotify/backstage/inventory/storage" - - pb "github.com/spotify/backstage/proto/inventory/v1" -) - -var entityURI = "entity:test:test" - -func TestServer(t *testing.T) { - testStorage := NewTestStorage() - defer testStorage.Close() - s := Server{Storage: testStorage.Storage} - - t.Run("Listing Entities matching prefix", func(t *testing.T) { - entity := &pb.Entity{Uri: entityURI} - - s.CreateEntity(context.Background(), &pb.CreateEntityRequest{Entity: entity}) - setFactReq := &pb.SetFactRequest{EntityUri: entityURI, Name: "test-name", Value: "test-value"} - s.SetFact(context.Background(), setFactReq) - - list, err := s.ListEntities(context.Background(), &pb.ListEntitiesRequest{UriPrefix: ""}) - if err != nil { - t.Errorf("ServerTest(ListEntities) could not list: %v", err) - } - if len(list.GetEntities()) != 1 { - t.Errorf("ServerTest(ListEntities) expected %v items, got %v", 1, len(list.GetEntities())) - } - if list.GetEntities()[0].GetUri() != entityURI { - t.Errorf("ServerTest(ListEntities) expected uri %v, got %v", "entity:test:test", list.GetEntities()[0].GetUri()) - } - expectedFacts := []*pb.Fact{{Name: "test-name", Value: "test-value"}} - if !reflect.DeepEqual(list.GetEntities()[0].GetFacts(), expectedFacts) { - t.Errorf("ServerTest(ListEntities) got %v, wanted %v", list.GetEntities()[0].GetFacts(), expectedFacts) - } - }) - - t.Run("Listing Entities not matching prefix", func(t *testing.T) { - entity := &pb.Entity{Uri: entityURI} - - s.CreateEntity(context.Background(), &pb.CreateEntityRequest{Entity: entity}) - list, err := s.ListEntities(context.Background(), &pb.ListEntitiesRequest{UriPrefix: "entity:test2"}) - if err != nil { - t.Errorf("ServerTest(TestServerListEntities) could not list: %v", err) - } - if len(list.GetEntities()) != 0 { - t.Errorf("ServerTest(TestServerListEntities) expected %v items, got %v", 0, len(list.GetEntities())) - } - }) - - t.Run("Creating entity", func(t *testing.T) { - entity := &pb.Entity{Uri: entityURI} - createReq := &pb.CreateEntityRequest{Entity: entity} - resp, err := s.CreateEntity(context.Background(), createReq) - if err != nil { - t.Errorf("ServerTest(CreateEntity) got unexpected error %v", err) - } - if resp.GetEntity().GetUri() != entity.GetUri() { - t.Errorf("ServerTest(CreateEntity) expected %v, but got %v", entity.GetUri(), resp.GetEntity().GetUri()) - } - }) - - t.Run("Get entity with included facts", func(t *testing.T) { - setFactReq := &pb.SetFactRequest{EntityUri: entityURI, Name: "test-name", Value: "test-value"} - s.SetFact(context.Background(), setFactReq) - - entity := &pb.Entity{Uri: entityURI} - req := &pb.GetEntityRequest{Entity: entity} - - resp, err := s.GetEntity(context.Background(), req) - if err != nil { - t.Errorf("ServerTest(GetEntity) got unexpected error %v", err) - } - if resp == nil { - t.Errorf("ServerTest(GetEntity) returned nil") - } - expectedFacts := []*pb.Fact{{Name: "test-name", Value: "test-value"}} - if !reflect.DeepEqual(resp.GetEntity().GetFacts(), expectedFacts) { - t.Errorf("ServerTest(GetEntity) got %v, wanted %v", resp.GetEntity().GetFacts(), expectedFacts) - } - }) - t.Run("Set fact for existing entity", func(t *testing.T) { - entity := &pb.Entity{Uri: entityURI} - createReq := &pb.CreateEntityRequest{Entity: entity} - s.CreateEntity(context.Background(), createReq) - - req := &pb.SetFactRequest{EntityUri: entityURI, Name: "test-name", Value: "test-value"} - resp, err := s.SetFact(context.Background(), req) - if err != nil { - t.Errorf("ServerTest(SetFact) got unexpected error %v", err) - } - if resp == nil { - t.Errorf("ServerTest(SetFact) returned nil") - } - - fact := &pb.Fact{Name: req.GetName(), Value: req.GetValue()} - assertFact(t, resp.GetFact(), fact) - }) - - t.Run("Set fact for non-existing entity", func(t *testing.T) { - req := &pb.SetFactRequest{EntityUri: entityURI, Name: "test-name", Value: "test-value"} - resp, err := s.SetFact(context.Background(), req) - if err != nil { - t.Errorf("ServerTest(SetFact) got unexpected error %v", err) - } - if resp == nil { - t.Errorf("ServerTest(SetFact) returned nil") - } - - fact := &pb.Fact{Name: req.GetName(), Value: req.GetValue()} - assertFact(t, resp.GetFact(), fact) - }) -} - -func assertFact(t *testing.T, got, want *pb.Fact) { - if !reflect.DeepEqual(got, want) { - t.Errorf("ServerTest(SetFact) got %v, wanted %v", got, want) - } -} - -type TestStorage struct { - Storage *storage.Storage - Path string -} - -// NewTestStorage returns a TestStorage using a temporary path. -func NewTestStorage() *TestStorage { - f, err := ioutil.TempFile("", "") - if err != nil { - panic(fmt.Sprintf("temp file: %s", err)) - } - path := f.Name() - f.Close() - os.Remove(path) - - config := storage.Config{Path: path} - storage, _ := storage.OpenStorage(config) - return &TestStorage{Storage: storage, Path: path} -} - -func (db *TestStorage) Close() { - defer os.Remove(db.Path) - db.Storage.Close() -} diff --git a/backend/inventory/config/config.go b/backend/inventory/config/config.go deleted file mode 100644 index 604dd9d55f..0000000000 --- a/backend/inventory/config/config.go +++ /dev/null @@ -1,73 +0,0 @@ -package config - -import ( - "fmt" - "github.com/spotify/backstage/inventory/storage" - "os" - - "github.com/BurntSushi/toml" - "github.com/kardianos/osext" - "github.com/sirupsen/logrus" -) - -// Config struct holds the current configuration -type Config struct { - Server struct { - Address string - Port int - } - - Logging struct { - Format string - Level string - } - - DB storage.Config -} - -// Initialize a new Config -func Initialize(configFile string) *Config { - cfg := DefaultConfig() - ReadConfigFile(cfg, getConfigFilePath(configFile)) - - return cfg -} - -// DefaultConfig returns a Config struct with default values -func DefaultConfig() *Config { - cfg := &Config{} - - cfg.Server.Address = "0.0.0.0" - cfg.Server.Port = 50051 - - cfg.Logging.Format = "text" - cfg.Logging.Level = "DEBUG" - - return cfg -} - -func getConfigFilePath(configPath string) string { - if configPath != "" { - if _, err := os.Stat(configPath); err == nil { - return configPath - } - panic(fmt.Sprintf("unable to open %s.", configPath)) - } - path, _ := osext.ExecutableFolder() - path = fmt.Sprintf("%s/config.toml", path) - if _, err := os.Open(path); err == nil { - return path - } - return "" -} - -func ReadConfigFile(cfg *Config, path string) { - _, err := os.Stat(path) - if err != nil { - return - } - - if _, err := toml.DecodeFile(path, cfg); err != nil { - logrus.WithError(err).Fatal("unable to read config") - } -} \ No newline at end of file diff --git a/backend/inventory/go.mod b/backend/inventory/go.mod deleted file mode 100644 index cf5ec9cea7..0000000000 --- a/backend/inventory/go.mod +++ /dev/null @@ -1,18 +0,0 @@ -module github.com/spotify/backstage/inventory - -go 1.12 - -replace github.com/spotify/backstage/proto => ../proto - -require ( - github.com/BurntSushi/toml v0.3.1 - github.com/golang/protobuf v1.3.3 - github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 - github.com/sirupsen/logrus v1.4.2 - github.com/spotify/backstage/proto v0.0.0-00010101000000-000000000000 - go.etcd.io/bbolt v1.3.3 - golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3 - golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135 - google.golang.org/grpc v1.27.0 - honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc -) diff --git a/backend/inventory/go.sum b/backend/inventory/go.sum deleted file mode 100644 index 3a111781a5..0000000000 --- a/backend/inventory/go.sum +++ /dev/null @@ -1,63 +0,0 @@ -cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= -github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.2 h1:6nsPYzhq5kReh6QImI3k5qWzO4PEbvbIW2cwSfR/6xs= -github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.3 h1:gyjaxf+svBWX08ZjK86iN9geUJF0H6gp2IRKX6Nf6/I= -github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= -github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 h1:iQTw/8FWTuc7uiaSepXwyf3o52HaUYcV+Tu66S3F5GA= -github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0/go.mod h1:1NbS8ALrpOvjt0rHPNLyCIeMtbizbir8U//inJ+zuB8= -github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/sirupsen/logrus v1.4.2 h1:SPIRibHv4MatM3XXNO2BJeFLZwZ2LvZgfQ5+UNI2im4= -github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= -github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= -go.etcd.io/bbolt v1.3.3 h1:MUGmc65QhB3pIlaQ5bB4LwqSj6GIonVJXpZiaKNyaKk= -go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= -golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190311183353-d8887717615a h1:oWX7TPOiFAMXLq8o0ikBYfCJVlRHBcsciT5bXOrH628= -golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a h1:1BGLXjeY4akVXGgbC9HugT3Jv3hCI0z56oJR5vAMgBU= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190422165155-953cdadca894 h1:Cz4ceDQGXuKRnVBDTS23GTn/pU5OE2C0WrNTOYK1Uuc= -golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= -golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= -google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55 h1:gSJIx1SDwno+2ElGhA4+qG2zF97qiUzTM+rQ0klBOcE= -google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= -google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.27.0 h1:rRYRFMVgRv6E0D70Skyfsr28tDXIuuPZyWGMPdMcnXg= -google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/backend/inventory/inventory.db b/backend/inventory/inventory.db deleted file mode 100644 index 81b38a7c18..0000000000 Binary files a/backend/inventory/inventory.db and /dev/null differ diff --git a/backend/inventory/main.go b/backend/inventory/main.go deleted file mode 100644 index f406b3bb71..0000000000 --- a/backend/inventory/main.go +++ /dev/null @@ -1,74 +0,0 @@ -package main - -import ( - "flag" - "fmt" - "github.com/spotify/backstage/inventory/config" - "github.com/spotify/backstage/inventory/storage" - "net" - "os" - "os/signal" - - "github.com/spotify/backstage/inventory/app" - pb "github.com/spotify/backstage/proto/inventory/v1" - - log "github.com/sirupsen/logrus" - "google.golang.org/grpc" -) - -func main() { - configFile := flag.String("config", "", "specify a config.toml file") - flag.Parse() - go catchInterrupt() - - cfg := config.Initialize(*configFile) - setupLogging(cfg) - storage := getStorage(cfg) - - address := fmt.Sprintf("%v:%v", cfg.Server.Address, cfg.Server.Port) - lis, err := net.Listen("tcp", address) - if err != nil { - log.Fatalf("failed to listen: %v", err) - } - log.Infof("inventory service listening on: %v", address) - - grpcServer := grpc.NewServer() - pb.RegisterInventoryServer(grpcServer, &app.Server{Storage: storage}) - grpcServer.Serve(lis) -} - -func getStorage(cfg *config.Config) *storage.Storage { - storage, err := storage.OpenStorage(cfg.DB) - if err != nil { - log.Fatalf("could not open database: %v", err) - os.Exit(1) - } - return storage -} - -func setupLogging(cfg *config.Config) { - if cfg.Logging.Format == "json" { - log.SetFormatter(&log.JSONFormatter{ - FieldMap: log.FieldMap{ - log.FieldKeyLevel: "severity", - }, - }) - } - level, err := log.ParseLevel(cfg.Logging.Level) - if err != nil { - level = log.InfoLevel - } - log.SetOutput(os.Stdout) - log.SetLevel(level) -} - -func catchInterrupt() { - c := make(chan os.Signal, 1) - signal.Notify(c, os.Interrupt, os.Kill) - s := <-c - if s != os.Interrupt && s != os.Kill { - return - } - log.Info("shutting down...") - os.Exit(0) -} diff --git a/backend/inventory/storage/storage.go b/backend/inventory/storage/storage.go deleted file mode 100644 index aa91cbc4c2..0000000000 --- a/backend/inventory/storage/storage.go +++ /dev/null @@ -1,145 +0,0 @@ -package storage - -import ( - "fmt" - "os" - "strings" - - "go.etcd.io/bbolt" -) - -type Config struct { - Path string - Mode os.FileMode -} - -type Storage struct { - db *bbolt.DB -} - -func OpenStorage(config Config) (*Storage, error) { - if config.Path == "" { - config.Path = "inventory.db" - } - if config.Mode == 0 { - config.Mode = 0600 - } - db, err := bbolt.Open(config.Path, config.Mode, nil) - if err != nil { - return nil, err - } - - return &Storage{ - db: db, - }, nil -} - -func (s *Storage) Close() error { - return s.db.Close() -} - -func (s *Storage) SetFact(entityUri, name, value string) (err error) { - return s.db.Update(func(tx *bbolt.Tx) error { - b, err := tx.CreateBucketIfNotExists([]byte(entityUri)) - if err != nil { - return err - } - err = b.Put([]byte(name), []byte(value)) - if err != nil { - return err - } - return nil - }) -} - -func (s *Storage) GetFact(entityUri, name string) (string, error) { - var value string - - err := s.db.View(func(tx *bbolt.Tx) error { - b := tx.Bucket([]byte(entityUri)) - if b == nil { - return fmt.Errorf("bucket '%s' does not exist", entityUri) - } - value = string(b.Get([]byte(name))) - return nil - }) - - if err != nil { - return "", err - } - - return value, nil -} - -func (s *Storage) ListEntities(uriPrefix string) ([]string, error) { - entities := []string{} - err := s.db.View(func(tx *bbolt.Tx) error { - err := tx.ForEach(func(name []byte, b *bbolt.Bucket) error { - namestring := string(name) - if uriPrefix == "" || strings.HasPrefix(namestring, uriPrefix) { - entities = append(entities, namestring) - } - return nil - }) - - if err != nil { - return err - } - - return nil - }) - - if err != nil { - return nil, err - } - - return entities, nil -} - -func (s *Storage) CreateEntity(entityUri string) error { - return s.db.Update(func(tx *bbolt.Tx) error { - _, err := tx.CreateBucketIfNotExists([]byte(entityUri)) - if err != nil { - return err - } - return nil - }) -} - -func (s *Storage) GetEntity(entityUri string) (string, error) { - err := s.db.View(func(tx *bbolt.Tx) error { - b := tx.Bucket([]byte(entityUri)) - if b == nil { - return fmt.Errorf("bucket '%s' does not exist", entityUri) - } - return nil - }) - - if err != nil { - return "", err - } - - return entityUri, nil -} - -func (s *Storage) GetFacts(entityUri string) (map[string]string, error) { - facts := make(map[string]string) - - err := s.db.View(func(tx *bbolt.Tx) error { - entityBucket := tx.Bucket([]byte(entityUri)) - if entityBucket == nil { - return fmt.Errorf("bucket '%s' does not exist", entityUri) - } - c := entityBucket.Cursor() - for k, v := c.First(); k != nil; k, v = c.Next() { - facts[string(k)] = string(v) - } - return nil - }) - - if err != nil { - return nil, err - } - - return facts, nil -} diff --git a/backend/proto/builds/v1/builds.pb.go b/backend/proto/builds/v1/builds.pb.go deleted file mode 100644 index fded19f883..0000000000 --- a/backend/proto/builds/v1/builds.pb.go +++ /dev/null @@ -1,518 +0,0 @@ -// Code generated by protoc-gen-go. DO NOT EDIT. -// source: builds/v1/builds.proto - -package buildsv1 - -import ( - context "context" - fmt "fmt" - proto "github.com/golang/protobuf/proto" - grpc "google.golang.org/grpc" - codes "google.golang.org/grpc/codes" - status "google.golang.org/grpc/status" - math "math" -) - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package - -type BuildStatus int32 - -const ( - BuildStatus_NULL BuildStatus = 0 - BuildStatus_SUCCESS BuildStatus = 1 - BuildStatus_FAILURE BuildStatus = 2 - BuildStatus_PENDING BuildStatus = 3 - BuildStatus_RUNNING BuildStatus = 4 -) - -var BuildStatus_name = map[int32]string{ - 0: "NULL", - 1: "SUCCESS", - 2: "FAILURE", - 3: "PENDING", - 4: "RUNNING", -} - -var BuildStatus_value = map[string]int32{ - "NULL": 0, - "SUCCESS": 1, - "FAILURE": 2, - "PENDING": 3, - "RUNNING": 4, -} - -func (x BuildStatus) String() string { - return proto.EnumName(BuildStatus_name, int32(x)) -} - -func (BuildStatus) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_05a627abb7f9adb4, []int{0} -} - -type ListBuildsRequest struct { - EntityUri string `protobuf:"bytes,1,opt,name=entity_uri,json=entityUri,proto3" json:"entity_uri,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *ListBuildsRequest) Reset() { *m = ListBuildsRequest{} } -func (m *ListBuildsRequest) String() string { return proto.CompactTextString(m) } -func (*ListBuildsRequest) ProtoMessage() {} -func (*ListBuildsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_05a627abb7f9adb4, []int{0} -} - -func (m *ListBuildsRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ListBuildsRequest.Unmarshal(m, b) -} -func (m *ListBuildsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ListBuildsRequest.Marshal(b, m, deterministic) -} -func (m *ListBuildsRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_ListBuildsRequest.Merge(m, src) -} -func (m *ListBuildsRequest) XXX_Size() int { - return xxx_messageInfo_ListBuildsRequest.Size(m) -} -func (m *ListBuildsRequest) XXX_DiscardUnknown() { - xxx_messageInfo_ListBuildsRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_ListBuildsRequest proto.InternalMessageInfo - -func (m *ListBuildsRequest) GetEntityUri() string { - if m != nil { - return m.EntityUri - } - return "" -} - -type ListBuildsReply struct { - EntityUri string `protobuf:"bytes,1,opt,name=entity_uri,json=entityUri,proto3" json:"entity_uri,omitempty"` - Builds []*Build `protobuf:"bytes,2,rep,name=builds,proto3" json:"builds,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *ListBuildsReply) Reset() { *m = ListBuildsReply{} } -func (m *ListBuildsReply) String() string { return proto.CompactTextString(m) } -func (*ListBuildsReply) ProtoMessage() {} -func (*ListBuildsReply) Descriptor() ([]byte, []int) { - return fileDescriptor_05a627abb7f9adb4, []int{1} -} - -func (m *ListBuildsReply) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ListBuildsReply.Unmarshal(m, b) -} -func (m *ListBuildsReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ListBuildsReply.Marshal(b, m, deterministic) -} -func (m *ListBuildsReply) XXX_Merge(src proto.Message) { - xxx_messageInfo_ListBuildsReply.Merge(m, src) -} -func (m *ListBuildsReply) XXX_Size() int { - return xxx_messageInfo_ListBuildsReply.Size(m) -} -func (m *ListBuildsReply) XXX_DiscardUnknown() { - xxx_messageInfo_ListBuildsReply.DiscardUnknown(m) -} - -var xxx_messageInfo_ListBuildsReply proto.InternalMessageInfo - -func (m *ListBuildsReply) GetEntityUri() string { - if m != nil { - return m.EntityUri - } - return "" -} - -func (m *ListBuildsReply) GetBuilds() []*Build { - if m != nil { - return m.Builds - } - return nil -} - -type GetBuildRequest struct { - BuildUri string `protobuf:"bytes,1,opt,name=build_uri,json=buildUri,proto3" json:"build_uri,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *GetBuildRequest) Reset() { *m = GetBuildRequest{} } -func (m *GetBuildRequest) String() string { return proto.CompactTextString(m) } -func (*GetBuildRequest) ProtoMessage() {} -func (*GetBuildRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_05a627abb7f9adb4, []int{2} -} - -func (m *GetBuildRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetBuildRequest.Unmarshal(m, b) -} -func (m *GetBuildRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetBuildRequest.Marshal(b, m, deterministic) -} -func (m *GetBuildRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetBuildRequest.Merge(m, src) -} -func (m *GetBuildRequest) XXX_Size() int { - return xxx_messageInfo_GetBuildRequest.Size(m) -} -func (m *GetBuildRequest) XXX_DiscardUnknown() { - xxx_messageInfo_GetBuildRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_GetBuildRequest proto.InternalMessageInfo - -func (m *GetBuildRequest) GetBuildUri() string { - if m != nil { - return m.BuildUri - } - return "" -} - -type GetBuildReply struct { - Build *Build `protobuf:"bytes,1,opt,name=build,proto3" json:"build,omitempty"` - Details *BuildDetails `protobuf:"bytes,2,opt,name=details,proto3" json:"details,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *GetBuildReply) Reset() { *m = GetBuildReply{} } -func (m *GetBuildReply) String() string { return proto.CompactTextString(m) } -func (*GetBuildReply) ProtoMessage() {} -func (*GetBuildReply) Descriptor() ([]byte, []int) { - return fileDescriptor_05a627abb7f9adb4, []int{3} -} - -func (m *GetBuildReply) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetBuildReply.Unmarshal(m, b) -} -func (m *GetBuildReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetBuildReply.Marshal(b, m, deterministic) -} -func (m *GetBuildReply) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetBuildReply.Merge(m, src) -} -func (m *GetBuildReply) XXX_Size() int { - return xxx_messageInfo_GetBuildReply.Size(m) -} -func (m *GetBuildReply) XXX_DiscardUnknown() { - xxx_messageInfo_GetBuildReply.DiscardUnknown(m) -} - -var xxx_messageInfo_GetBuildReply proto.InternalMessageInfo - -func (m *GetBuildReply) GetBuild() *Build { - if m != nil { - return m.Build - } - return nil -} - -func (m *GetBuildReply) GetDetails() *BuildDetails { - if m != nil { - return m.Details - } - return nil -} - -type Build struct { - Uri string `protobuf:"bytes,1,opt,name=uri,proto3" json:"uri,omitempty"` - CommitId string `protobuf:"bytes,2,opt,name=commit_id,json=commitId,proto3" json:"commit_id,omitempty"` - Message string `protobuf:"bytes,3,opt,name=message,proto3" json:"message,omitempty"` - Branch string `protobuf:"bytes,4,opt,name=branch,proto3" json:"branch,omitempty"` - Status BuildStatus `protobuf:"varint,5,opt,name=status,proto3,enum=spotify.backstage.builds.v1.BuildStatus" json:"status,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *Build) Reset() { *m = Build{} } -func (m *Build) String() string { return proto.CompactTextString(m) } -func (*Build) ProtoMessage() {} -func (*Build) Descriptor() ([]byte, []int) { - return fileDescriptor_05a627abb7f9adb4, []int{4} -} - -func (m *Build) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Build.Unmarshal(m, b) -} -func (m *Build) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Build.Marshal(b, m, deterministic) -} -func (m *Build) XXX_Merge(src proto.Message) { - xxx_messageInfo_Build.Merge(m, src) -} -func (m *Build) XXX_Size() int { - return xxx_messageInfo_Build.Size(m) -} -func (m *Build) XXX_DiscardUnknown() { - xxx_messageInfo_Build.DiscardUnknown(m) -} - -var xxx_messageInfo_Build proto.InternalMessageInfo - -func (m *Build) GetUri() string { - if m != nil { - return m.Uri - } - return "" -} - -func (m *Build) GetCommitId() string { - if m != nil { - return m.CommitId - } - return "" -} - -func (m *Build) GetMessage() string { - if m != nil { - return m.Message - } - return "" -} - -func (m *Build) GetBranch() string { - if m != nil { - return m.Branch - } - return "" -} - -func (m *Build) GetStatus() BuildStatus { - if m != nil { - return m.Status - } - return BuildStatus_NULL -} - -type BuildDetails struct { - Author string `protobuf:"bytes,1,opt,name=author,proto3" json:"author,omitempty"` - OverviewUrl string `protobuf:"bytes,2,opt,name=overview_url,json=overviewUrl,proto3" json:"overview_url,omitempty"` - LogUrl string `protobuf:"bytes,3,opt,name=log_url,json=logUrl,proto3" json:"log_url,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *BuildDetails) Reset() { *m = BuildDetails{} } -func (m *BuildDetails) String() string { return proto.CompactTextString(m) } -func (*BuildDetails) ProtoMessage() {} -func (*BuildDetails) Descriptor() ([]byte, []int) { - return fileDescriptor_05a627abb7f9adb4, []int{5} -} - -func (m *BuildDetails) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_BuildDetails.Unmarshal(m, b) -} -func (m *BuildDetails) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_BuildDetails.Marshal(b, m, deterministic) -} -func (m *BuildDetails) XXX_Merge(src proto.Message) { - xxx_messageInfo_BuildDetails.Merge(m, src) -} -func (m *BuildDetails) XXX_Size() int { - return xxx_messageInfo_BuildDetails.Size(m) -} -func (m *BuildDetails) XXX_DiscardUnknown() { - xxx_messageInfo_BuildDetails.DiscardUnknown(m) -} - -var xxx_messageInfo_BuildDetails proto.InternalMessageInfo - -func (m *BuildDetails) GetAuthor() string { - if m != nil { - return m.Author - } - return "" -} - -func (m *BuildDetails) GetOverviewUrl() string { - if m != nil { - return m.OverviewUrl - } - return "" -} - -func (m *BuildDetails) GetLogUrl() string { - if m != nil { - return m.LogUrl - } - return "" -} - -func init() { - proto.RegisterEnum("spotify.backstage.builds.v1.BuildStatus", BuildStatus_name, BuildStatus_value) - proto.RegisterType((*ListBuildsRequest)(nil), "spotify.backstage.builds.v1.ListBuildsRequest") - proto.RegisterType((*ListBuildsReply)(nil), "spotify.backstage.builds.v1.ListBuildsReply") - proto.RegisterType((*GetBuildRequest)(nil), "spotify.backstage.builds.v1.GetBuildRequest") - proto.RegisterType((*GetBuildReply)(nil), "spotify.backstage.builds.v1.GetBuildReply") - proto.RegisterType((*Build)(nil), "spotify.backstage.builds.v1.Build") - proto.RegisterType((*BuildDetails)(nil), "spotify.backstage.builds.v1.BuildDetails") -} - -func init() { proto.RegisterFile("builds/v1/builds.proto", fileDescriptor_05a627abb7f9adb4) } - -var fileDescriptor_05a627abb7f9adb4 = []byte{ - // 459 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x53, 0xd1, 0x6e, 0xd3, 0x30, - 0x14, 0x25, 0x6b, 0x9b, 0xb6, 0xb7, 0x83, 0x05, 0x3f, 0x8c, 0x68, 0x13, 0x52, 0xc9, 0x53, 0x99, - 0x50, 0xa6, 0x96, 0x17, 0xc4, 0x13, 0xac, 0x2b, 0x53, 0x45, 0x15, 0x21, 0x57, 0x79, 0xe1, 0xa5, - 0x4a, 0x1a, 0xd3, 0x19, 0xdc, 0xb9, 0xd8, 0x4e, 0x50, 0x7f, 0x82, 0x0f, 0xe1, 0x93, 0xf8, 0x1a, - 0x64, 0x3b, 0x51, 0x23, 0x26, 0xb5, 0x7d, 0xf3, 0xb9, 0xe7, 0x9e, 0x9c, 0x73, 0xa5, 0x13, 0x38, - 0x4f, 0x73, 0xca, 0x32, 0x79, 0x5d, 0x0c, 0xaf, 0xed, 0x2b, 0xdc, 0x08, 0xae, 0x38, 0xba, 0x94, - 0x1b, 0xae, 0xe8, 0xb7, 0x6d, 0x98, 0x26, 0xcb, 0x1f, 0x52, 0x25, 0x2b, 0x12, 0x96, 0x7c, 0x31, - 0x0c, 0x46, 0xf0, 0x7c, 0x46, 0xa5, 0xba, 0x31, 0x03, 0x4c, 0x7e, 0xe6, 0x44, 0x2a, 0xf4, 0x12, - 0x80, 0x3c, 0x28, 0xaa, 0xb6, 0x8b, 0x5c, 0x50, 0xdf, 0xe9, 0x3b, 0x83, 0x2e, 0xee, 0xda, 0x49, - 0x2c, 0x68, 0xc0, 0xe0, 0xac, 0xae, 0xd9, 0xb0, 0xed, 0x01, 0x05, 0x7a, 0x0f, 0xae, 0xb5, 0xf4, - 0x4f, 0xfa, 0x8d, 0x41, 0x6f, 0x14, 0x84, 0x7b, 0x32, 0x85, 0xe6, 0xc3, 0xb8, 0x54, 0x04, 0x21, - 0x9c, 0xdd, 0x11, 0x6b, 0x56, 0xe5, 0xbb, 0x84, 0xae, 0x21, 0x6b, 0x66, 0x1d, 0x33, 0xd0, 0xe9, - 0x7e, 0x3b, 0xf0, 0x74, 0x27, 0xd0, 0xe1, 0xde, 0x41, 0xcb, 0xb0, 0x66, 0xf5, 0x38, 0x73, 0x2b, - 0x40, 0x63, 0x68, 0x67, 0x44, 0x25, 0x94, 0xe9, 0xe0, 0x5a, 0xfb, 0xfa, 0xb0, 0xf6, 0xd6, 0x0a, - 0x70, 0xa5, 0x0c, 0xfe, 0x38, 0xd0, 0x32, 0x0c, 0xf2, 0xa0, 0xb1, 0x4b, 0xac, 0x9f, 0xfa, 0x92, - 0x25, 0x5f, 0xaf, 0xa9, 0x5a, 0xd0, 0xcc, 0x58, 0x74, 0x71, 0xc7, 0x0e, 0xa6, 0x19, 0xf2, 0xa1, - 0xbd, 0x26, 0x52, 0x26, 0x2b, 0xe2, 0x37, 0x0c, 0x55, 0x41, 0x74, 0x0e, 0x6e, 0x2a, 0x92, 0x87, - 0xe5, 0xbd, 0xdf, 0x34, 0x44, 0x89, 0xd0, 0x07, 0x70, 0xa5, 0x4a, 0x54, 0x2e, 0xfd, 0x56, 0xdf, - 0x19, 0x3c, 0x1b, 0x0d, 0x0e, 0xc7, 0x9d, 0x9b, 0x7d, 0x5c, 0xea, 0x82, 0x14, 0x4e, 0xeb, 0x57, - 0x68, 0xa7, 0x24, 0x57, 0xf7, 0x5c, 0x94, 0xa9, 0x4b, 0x84, 0x5e, 0xc1, 0x29, 0x2f, 0x88, 0x28, - 0x28, 0xf9, 0xb5, 0xc8, 0x05, 0x2b, 0xb3, 0xf7, 0xaa, 0x59, 0x2c, 0x18, 0x7a, 0x01, 0x6d, 0xc6, - 0x57, 0x86, 0xb5, 0xf1, 0x5d, 0xc6, 0x57, 0xb1, 0x60, 0x57, 0x9f, 0xa1, 0x57, 0xb3, 0x46, 0x1d, - 0x68, 0x46, 0xf1, 0x6c, 0xe6, 0x3d, 0x41, 0x3d, 0x68, 0xcf, 0xe3, 0xf1, 0x78, 0x32, 0x9f, 0x7b, - 0x8e, 0x06, 0x9f, 0x3e, 0x4e, 0x67, 0x31, 0x9e, 0x78, 0x27, 0x1a, 0x7c, 0x99, 0x44, 0xb7, 0xd3, - 0xe8, 0xce, 0x6b, 0x68, 0x80, 0xe3, 0x28, 0xd2, 0xa0, 0x39, 0xfa, 0xeb, 0x80, 0x6b, 0x9b, 0x88, - 0xbe, 0x03, 0xec, 0x7a, 0x89, 0xc2, 0xbd, 0xb7, 0x3f, 0x2a, 0xfd, 0xc5, 0x9b, 0xa3, 0xf7, 0x75, - 0xa7, 0x32, 0xe8, 0x54, 0x25, 0x43, 0xfb, 0x95, 0xff, 0x95, 0xf7, 0xe2, 0xea, 0xc8, 0xed, 0x0d, - 0xdb, 0xde, 0xc0, 0x57, 0xdb, 0x6b, 0x59, 0x0c, 0x53, 0xd7, 0xfc, 0xcd, 0x6f, 0xff, 0x05, 0x00, - 0x00, 0xff, 0xff, 0xc2, 0xff, 0xd7, 0x62, 0xe7, 0x03, 0x00, 0x00, -} - -// Reference imports to suppress errors if they are not otherwise used. -var _ context.Context -var _ grpc.ClientConnInterface - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the grpc package it is being compiled against. -const _ = grpc.SupportPackageIsVersion6 - -// BuildsClient is the client API for Builds service. -// -// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. -type BuildsClient interface { - ListBuilds(ctx context.Context, in *ListBuildsRequest, opts ...grpc.CallOption) (*ListBuildsReply, error) - GetBuild(ctx context.Context, in *GetBuildRequest, opts ...grpc.CallOption) (*GetBuildReply, error) -} - -type buildsClient struct { - cc grpc.ClientConnInterface -} - -func NewBuildsClient(cc grpc.ClientConnInterface) BuildsClient { - return &buildsClient{cc} -} - -func (c *buildsClient) ListBuilds(ctx context.Context, in *ListBuildsRequest, opts ...grpc.CallOption) (*ListBuildsReply, error) { - out := new(ListBuildsReply) - err := c.cc.Invoke(ctx, "/spotify.backstage.builds.v1.Builds/ListBuilds", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *buildsClient) GetBuild(ctx context.Context, in *GetBuildRequest, opts ...grpc.CallOption) (*GetBuildReply, error) { - out := new(GetBuildReply) - err := c.cc.Invoke(ctx, "/spotify.backstage.builds.v1.Builds/GetBuild", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -// BuildsServer is the server API for Builds service. -type BuildsServer interface { - ListBuilds(context.Context, *ListBuildsRequest) (*ListBuildsReply, error) - GetBuild(context.Context, *GetBuildRequest) (*GetBuildReply, error) -} - -// UnimplementedBuildsServer can be embedded to have forward compatible implementations. -type UnimplementedBuildsServer struct { -} - -func (*UnimplementedBuildsServer) ListBuilds(ctx context.Context, req *ListBuildsRequest) (*ListBuildsReply, error) { - return nil, status.Errorf(codes.Unimplemented, "method ListBuilds not implemented") -} -func (*UnimplementedBuildsServer) GetBuild(ctx context.Context, req *GetBuildRequest) (*GetBuildReply, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetBuild not implemented") -} - -func RegisterBuildsServer(s *grpc.Server, srv BuildsServer) { - s.RegisterService(&_Builds_serviceDesc, srv) -} - -func _Builds_ListBuilds_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ListBuildsRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(BuildsServer).ListBuilds(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/spotify.backstage.builds.v1.Builds/ListBuilds", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(BuildsServer).ListBuilds(ctx, req.(*ListBuildsRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _Builds_GetBuild_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetBuildRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(BuildsServer).GetBuild(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/spotify.backstage.builds.v1.Builds/GetBuild", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(BuildsServer).GetBuild(ctx, req.(*GetBuildRequest)) - } - return interceptor(ctx, in, info, handler) -} - -var _Builds_serviceDesc = grpc.ServiceDesc{ - ServiceName: "spotify.backstage.builds.v1.Builds", - HandlerType: (*BuildsServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "ListBuilds", - Handler: _Builds_ListBuilds_Handler, - }, - { - MethodName: "GetBuild", - Handler: _Builds_GetBuild_Handler, - }, - }, - Streams: []grpc.StreamDesc{}, - Metadata: "builds/v1/builds.proto", -} diff --git a/backend/proto/go.mod b/backend/proto/go.mod deleted file mode 100644 index 8ffc37c2d2..0000000000 --- a/backend/proto/go.mod +++ /dev/null @@ -1,8 +0,0 @@ -module github.com/spotify/backstage/proto - -go 1.13 - -require ( - github.com/golang/protobuf v1.3.3 - google.golang.org/grpc v1.27.0 -) diff --git a/backend/proto/go.sum b/backend/proto/go.sum deleted file mode 100644 index 75a87b6f34..0000000000 --- a/backend/proto/go.sum +++ /dev/null @@ -1,47 +0,0 @@ -cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.3 h1:gyjaxf+svBWX08ZjK86iN9geUJF0H6gp2IRKX6Nf6/I= -github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= -github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= -golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190311183353-d8887717615a h1:oWX7TPOiFAMXLq8o0ikBYfCJVlRHBcsciT5bXOrH628= -golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= -golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= -google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55 h1:gSJIx1SDwno+2ElGhA4+qG2zF97qiUzTM+rQ0klBOcE= -google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= -google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.27.0 h1:rRYRFMVgRv6E0D70Skyfsr28tDXIuuPZyWGMPdMcnXg= -google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/backend/proto/identity/v1/identity.pb.go b/backend/proto/identity/v1/identity.pb.go deleted file mode 100644 index c25d39e394..0000000000 --- a/backend/proto/identity/v1/identity.pb.go +++ /dev/null @@ -1,447 +0,0 @@ -// Code generated by protoc-gen-go. DO NOT EDIT. -// source: identity/v1/identity.proto - -package identityv1 - -import ( - context "context" - fmt "fmt" - proto "github.com/golang/protobuf/proto" - grpc "google.golang.org/grpc" - codes "google.golang.org/grpc/codes" - status "google.golang.org/grpc/status" - math "math" -) - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package - -type GetUserRequest struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *GetUserRequest) Reset() { *m = GetUserRequest{} } -func (m *GetUserRequest) String() string { return proto.CompactTextString(m) } -func (*GetUserRequest) ProtoMessage() {} -func (*GetUserRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_2343b5ee8923b571, []int{0} -} - -func (m *GetUserRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetUserRequest.Unmarshal(m, b) -} -func (m *GetUserRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetUserRequest.Marshal(b, m, deterministic) -} -func (m *GetUserRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetUserRequest.Merge(m, src) -} -func (m *GetUserRequest) XXX_Size() int { - return xxx_messageInfo_GetUserRequest.Size(m) -} -func (m *GetUserRequest) XXX_DiscardUnknown() { - xxx_messageInfo_GetUserRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_GetUserRequest proto.InternalMessageInfo - -func (m *GetUserRequest) GetId() string { - if m != nil { - return m.Id - } - return "" -} - -type GetUserReply struct { - User *User `protobuf:"bytes,1,opt,name=user,proto3" json:"user,omitempty"` - Groups []*Group `protobuf:"bytes,2,rep,name=groups,proto3" json:"groups,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *GetUserReply) Reset() { *m = GetUserReply{} } -func (m *GetUserReply) String() string { return proto.CompactTextString(m) } -func (*GetUserReply) ProtoMessage() {} -func (*GetUserReply) Descriptor() ([]byte, []int) { - return fileDescriptor_2343b5ee8923b571, []int{1} -} - -func (m *GetUserReply) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetUserReply.Unmarshal(m, b) -} -func (m *GetUserReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetUserReply.Marshal(b, m, deterministic) -} -func (m *GetUserReply) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetUserReply.Merge(m, src) -} -func (m *GetUserReply) XXX_Size() int { - return xxx_messageInfo_GetUserReply.Size(m) -} -func (m *GetUserReply) XXX_DiscardUnknown() { - xxx_messageInfo_GetUserReply.DiscardUnknown(m) -} - -var xxx_messageInfo_GetUserReply proto.InternalMessageInfo - -func (m *GetUserReply) GetUser() *User { - if m != nil { - return m.User - } - return nil -} - -func (m *GetUserReply) GetGroups() []*Group { - if m != nil { - return m.Groups - } - return nil -} - -type GetGroupRequest struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *GetGroupRequest) Reset() { *m = GetGroupRequest{} } -func (m *GetGroupRequest) String() string { return proto.CompactTextString(m) } -func (*GetGroupRequest) ProtoMessage() {} -func (*GetGroupRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_2343b5ee8923b571, []int{2} -} - -func (m *GetGroupRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetGroupRequest.Unmarshal(m, b) -} -func (m *GetGroupRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetGroupRequest.Marshal(b, m, deterministic) -} -func (m *GetGroupRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetGroupRequest.Merge(m, src) -} -func (m *GetGroupRequest) XXX_Size() int { - return xxx_messageInfo_GetGroupRequest.Size(m) -} -func (m *GetGroupRequest) XXX_DiscardUnknown() { - xxx_messageInfo_GetGroupRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_GetGroupRequest proto.InternalMessageInfo - -func (m *GetGroupRequest) GetId() string { - if m != nil { - return m.Id - } - return "" -} - -type GetGroupReply struct { - Group *Group `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *GetGroupReply) Reset() { *m = GetGroupReply{} } -func (m *GetGroupReply) String() string { return proto.CompactTextString(m) } -func (*GetGroupReply) ProtoMessage() {} -func (*GetGroupReply) Descriptor() ([]byte, []int) { - return fileDescriptor_2343b5ee8923b571, []int{3} -} - -func (m *GetGroupReply) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetGroupReply.Unmarshal(m, b) -} -func (m *GetGroupReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetGroupReply.Marshal(b, m, deterministic) -} -func (m *GetGroupReply) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetGroupReply.Merge(m, src) -} -func (m *GetGroupReply) XXX_Size() int { - return xxx_messageInfo_GetGroupReply.Size(m) -} -func (m *GetGroupReply) XXX_DiscardUnknown() { - xxx_messageInfo_GetGroupReply.DiscardUnknown(m) -} - -var xxx_messageInfo_GetGroupReply proto.InternalMessageInfo - -func (m *GetGroupReply) GetGroup() *Group { - if m != nil { - return m.Group - } - return nil -} - -type User struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *User) Reset() { *m = User{} } -func (m *User) String() string { return proto.CompactTextString(m) } -func (*User) ProtoMessage() {} -func (*User) Descriptor() ([]byte, []int) { - return fileDescriptor_2343b5ee8923b571, []int{4} -} - -func (m *User) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_User.Unmarshal(m, b) -} -func (m *User) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_User.Marshal(b, m, deterministic) -} -func (m *User) XXX_Merge(src proto.Message) { - xxx_messageInfo_User.Merge(m, src) -} -func (m *User) XXX_Size() int { - return xxx_messageInfo_User.Size(m) -} -func (m *User) XXX_DiscardUnknown() { - xxx_messageInfo_User.DiscardUnknown(m) -} - -var xxx_messageInfo_User proto.InternalMessageInfo - -func (m *User) GetId() string { - if m != nil { - return m.Id - } - return "" -} - -func (m *User) GetName() string { - if m != nil { - return m.Name - } - return "" -} - -type Group struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Users []*User `protobuf:"bytes,2,rep,name=users,proto3" json:"users,omitempty"` - Groups []*Group `protobuf:"bytes,3,rep,name=groups,proto3" json:"groups,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *Group) Reset() { *m = Group{} } -func (m *Group) String() string { return proto.CompactTextString(m) } -func (*Group) ProtoMessage() {} -func (*Group) Descriptor() ([]byte, []int) { - return fileDescriptor_2343b5ee8923b571, []int{5} -} - -func (m *Group) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Group.Unmarshal(m, b) -} -func (m *Group) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Group.Marshal(b, m, deterministic) -} -func (m *Group) XXX_Merge(src proto.Message) { - xxx_messageInfo_Group.Merge(m, src) -} -func (m *Group) XXX_Size() int { - return xxx_messageInfo_Group.Size(m) -} -func (m *Group) XXX_DiscardUnknown() { - xxx_messageInfo_Group.DiscardUnknown(m) -} - -var xxx_messageInfo_Group proto.InternalMessageInfo - -func (m *Group) GetId() string { - if m != nil { - return m.Id - } - return "" -} - -func (m *Group) GetUsers() []*User { - if m != nil { - return m.Users - } - return nil -} - -func (m *Group) GetGroups() []*Group { - if m != nil { - return m.Groups - } - return nil -} - -func init() { - proto.RegisterType((*GetUserRequest)(nil), "spotify.backstage.identity.v1.GetUserRequest") - proto.RegisterType((*GetUserReply)(nil), "spotify.backstage.identity.v1.GetUserReply") - proto.RegisterType((*GetGroupRequest)(nil), "spotify.backstage.identity.v1.GetGroupRequest") - proto.RegisterType((*GetGroupReply)(nil), "spotify.backstage.identity.v1.GetGroupReply") - proto.RegisterType((*User)(nil), "spotify.backstage.identity.v1.User") - proto.RegisterType((*Group)(nil), "spotify.backstage.identity.v1.Group") -} - -func init() { proto.RegisterFile("identity/v1/identity.proto", fileDescriptor_2343b5ee8923b571) } - -var fileDescriptor_2343b5ee8923b571 = []byte{ - // 303 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0xca, 0x4c, 0x49, 0xcd, - 0x2b, 0xc9, 0x2c, 0xa9, 0xd4, 0x2f, 0x33, 0xd4, 0x87, 0xb1, 0xf5, 0x0a, 0x8a, 0xf2, 0x4b, 0xf2, - 0x85, 0x64, 0x8b, 0x0b, 0xf2, 0x4b, 0x32, 0xd3, 0x2a, 0xf5, 0x92, 0x12, 0x93, 0xb3, 0x8b, 0x4b, - 0x12, 0xd3, 0x53, 0xf5, 0xe0, 0x2a, 0xca, 0x0c, 0x95, 0x14, 0xb8, 0xf8, 0xdc, 0x53, 0x4b, 0x42, - 0x8b, 0x53, 0x8b, 0x82, 0x52, 0x0b, 0x4b, 0x53, 0x8b, 0x4b, 0x84, 0xf8, 0xb8, 0x98, 0x32, 0x53, - 0x24, 0x18, 0x15, 0x18, 0x35, 0x38, 0x83, 0x98, 0x32, 0x53, 0x94, 0x5a, 0x19, 0xb9, 0x78, 0xe0, - 0x4a, 0x0a, 0x72, 0x2a, 0x85, 0xcc, 0xb9, 0x58, 0x4a, 0x8b, 0x53, 0x8b, 0xc0, 0x4a, 0xb8, 0x8d, - 0x94, 0xf5, 0xf0, 0x5a, 0xa0, 0x07, 0xd6, 0x07, 0xd6, 0x20, 0x64, 0xc3, 0xc5, 0x96, 0x5e, 0x94, - 0x5f, 0x5a, 0x50, 0x2c, 0xc1, 0xa4, 0xc0, 0xac, 0xc1, 0x6d, 0xa4, 0x42, 0x40, 0xab, 0x3b, 0x48, - 0x71, 0x10, 0x54, 0x8f, 0x92, 0x22, 0x17, 0xbf, 0x7b, 0x6a, 0x09, 0x44, 0x0c, 0x87, 0x53, 0xbd, - 0xb9, 0x78, 0x11, 0x4a, 0x40, 0x4e, 0xb5, 0xe2, 0x62, 0x05, 0xeb, 0x86, 0xba, 0x95, 0x38, 0x0b, - 0x21, 0x5a, 0x94, 0xb4, 0xb8, 0x58, 0x40, 0x6e, 0x47, 0xb7, 0x44, 0x48, 0x88, 0x8b, 0x25, 0x2f, - 0x31, 0x37, 0x55, 0x82, 0x09, 0x2c, 0x02, 0x66, 0x2b, 0x4d, 0x60, 0xe4, 0x62, 0x05, 0x6b, 0xc6, - 0x50, 0x6d, 0xc9, 0xc5, 0x0a, 0xf2, 0x3b, 0xcc, 0xcb, 0x44, 0x85, 0x16, 0x44, 0x07, 0x52, 0x70, - 0x31, 0x93, 0x1e, 0x5c, 0x46, 0xb7, 0x19, 0xb9, 0x38, 0x3c, 0xa1, 0xb2, 0x42, 0xa9, 0x5c, 0xec, - 0xd0, 0x28, 0x14, 0xd2, 0x25, 0x64, 0x0a, 0x4a, 0x6a, 0x90, 0xd2, 0x26, 0x56, 0x39, 0x28, 0xb8, - 0x33, 0xb8, 0x38, 0x60, 0xe1, 0x2f, 0xa4, 0x47, 0x58, 0x23, 0x72, 0x5c, 0x4a, 0xe9, 0x10, 0xad, - 0xbe, 0x20, 0xa7, 0xd2, 0x89, 0x27, 0x8a, 0x0b, 0x26, 0x59, 0x66, 0x98, 0xc4, 0x06, 0x4e, 0xea, - 0xc6, 0x80, 0x00, 0x00, 0x00, 0xff, 0xff, 0xa3, 0xe1, 0xa3, 0xe0, 0x08, 0x03, 0x00, 0x00, -} - -// Reference imports to suppress errors if they are not otherwise used. -var _ context.Context -var _ grpc.ClientConnInterface - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the grpc package it is being compiled against. -const _ = grpc.SupportPackageIsVersion6 - -// IdentityClient is the client API for Identity service. -// -// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. -type IdentityClient interface { - // Returned user's groups will only have ID field populated - GetUser(ctx context.Context, in *GetUserRequest, opts ...grpc.CallOption) (*GetUserReply, error) - // Child groups will only have their ID fields populated - // Users in the group will not have their groups popuplated - GetGroup(ctx context.Context, in *GetGroupRequest, opts ...grpc.CallOption) (*GetGroupReply, error) -} - -type identityClient struct { - cc grpc.ClientConnInterface -} - -func NewIdentityClient(cc grpc.ClientConnInterface) IdentityClient { - return &identityClient{cc} -} - -func (c *identityClient) GetUser(ctx context.Context, in *GetUserRequest, opts ...grpc.CallOption) (*GetUserReply, error) { - out := new(GetUserReply) - err := c.cc.Invoke(ctx, "/spotify.backstage.identity.v1.Identity/GetUser", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *identityClient) GetGroup(ctx context.Context, in *GetGroupRequest, opts ...grpc.CallOption) (*GetGroupReply, error) { - out := new(GetGroupReply) - err := c.cc.Invoke(ctx, "/spotify.backstage.identity.v1.Identity/GetGroup", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -// IdentityServer is the server API for Identity service. -type IdentityServer interface { - // Returned user's groups will only have ID field populated - GetUser(context.Context, *GetUserRequest) (*GetUserReply, error) - // Child groups will only have their ID fields populated - // Users in the group will not have their groups popuplated - GetGroup(context.Context, *GetGroupRequest) (*GetGroupReply, error) -} - -// UnimplementedIdentityServer can be embedded to have forward compatible implementations. -type UnimplementedIdentityServer struct { -} - -func (*UnimplementedIdentityServer) GetUser(ctx context.Context, req *GetUserRequest) (*GetUserReply, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetUser not implemented") -} -func (*UnimplementedIdentityServer) GetGroup(ctx context.Context, req *GetGroupRequest) (*GetGroupReply, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetGroup not implemented") -} - -func RegisterIdentityServer(s *grpc.Server, srv IdentityServer) { - s.RegisterService(&_Identity_serviceDesc, srv) -} - -func _Identity_GetUser_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetUserRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(IdentityServer).GetUser(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/spotify.backstage.identity.v1.Identity/GetUser", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(IdentityServer).GetUser(ctx, req.(*GetUserRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _Identity_GetGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetGroupRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(IdentityServer).GetGroup(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/spotify.backstage.identity.v1.Identity/GetGroup", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(IdentityServer).GetGroup(ctx, req.(*GetGroupRequest)) - } - return interceptor(ctx, in, info, handler) -} - -var _Identity_serviceDesc = grpc.ServiceDesc{ - ServiceName: "spotify.backstage.identity.v1.Identity", - HandlerType: (*IdentityServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "GetUser", - Handler: _Identity_GetUser_Handler, - }, - { - MethodName: "GetGroup", - Handler: _Identity_GetGroup_Handler, - }, - }, - Streams: []grpc.StreamDesc{}, - Metadata: "identity/v1/identity.proto", -} diff --git a/backend/proto/inventory/v1/inventory.pb.go b/backend/proto/inventory/v1/inventory.pb.go deleted file mode 100644 index 8866bba87a..0000000000 --- a/backend/proto/inventory/v1/inventory.pb.go +++ /dev/null @@ -1,805 +0,0 @@ -// Code generated by protoc-gen-go. DO NOT EDIT. -// source: inventory/v1/inventory.proto - -package inventoryv1 - -import ( - context "context" - fmt "fmt" - proto "github.com/golang/protobuf/proto" - grpc "google.golang.org/grpc" - codes "google.golang.org/grpc/codes" - status "google.golang.org/grpc/status" - math "math" -) - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package - -type ListEntitiesRequest struct { - UriPrefix string `protobuf:"bytes,1,opt,name=uriPrefix,proto3" json:"uriPrefix,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *ListEntitiesRequest) Reset() { *m = ListEntitiesRequest{} } -func (m *ListEntitiesRequest) String() string { return proto.CompactTextString(m) } -func (*ListEntitiesRequest) ProtoMessage() {} -func (*ListEntitiesRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_70be9028e322f9d8, []int{0} -} - -func (m *ListEntitiesRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ListEntitiesRequest.Unmarshal(m, b) -} -func (m *ListEntitiesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ListEntitiesRequest.Marshal(b, m, deterministic) -} -func (m *ListEntitiesRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_ListEntitiesRequest.Merge(m, src) -} -func (m *ListEntitiesRequest) XXX_Size() int { - return xxx_messageInfo_ListEntitiesRequest.Size(m) -} -func (m *ListEntitiesRequest) XXX_DiscardUnknown() { - xxx_messageInfo_ListEntitiesRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_ListEntitiesRequest proto.InternalMessageInfo - -func (m *ListEntitiesRequest) GetUriPrefix() string { - if m != nil { - return m.UriPrefix - } - return "" -} - -type ListEntitiesReply struct { - Entities []*Entity `protobuf:"bytes,1,rep,name=entities,proto3" json:"entities,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *ListEntitiesReply) Reset() { *m = ListEntitiesReply{} } -func (m *ListEntitiesReply) String() string { return proto.CompactTextString(m) } -func (*ListEntitiesReply) ProtoMessage() {} -func (*ListEntitiesReply) Descriptor() ([]byte, []int) { - return fileDescriptor_70be9028e322f9d8, []int{1} -} - -func (m *ListEntitiesReply) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ListEntitiesReply.Unmarshal(m, b) -} -func (m *ListEntitiesReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ListEntitiesReply.Marshal(b, m, deterministic) -} -func (m *ListEntitiesReply) XXX_Merge(src proto.Message) { - xxx_messageInfo_ListEntitiesReply.Merge(m, src) -} -func (m *ListEntitiesReply) XXX_Size() int { - return xxx_messageInfo_ListEntitiesReply.Size(m) -} -func (m *ListEntitiesReply) XXX_DiscardUnknown() { - xxx_messageInfo_ListEntitiesReply.DiscardUnknown(m) -} - -var xxx_messageInfo_ListEntitiesReply proto.InternalMessageInfo - -func (m *ListEntitiesReply) GetEntities() []*Entity { - if m != nil { - return m.Entities - } - return nil -} - -type GetEntityRequest struct { - Entity *Entity `protobuf:"bytes,1,opt,name=entity,proto3" json:"entity,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *GetEntityRequest) Reset() { *m = GetEntityRequest{} } -func (m *GetEntityRequest) String() string { return proto.CompactTextString(m) } -func (*GetEntityRequest) ProtoMessage() {} -func (*GetEntityRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_70be9028e322f9d8, []int{2} -} - -func (m *GetEntityRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetEntityRequest.Unmarshal(m, b) -} -func (m *GetEntityRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetEntityRequest.Marshal(b, m, deterministic) -} -func (m *GetEntityRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetEntityRequest.Merge(m, src) -} -func (m *GetEntityRequest) XXX_Size() int { - return xxx_messageInfo_GetEntityRequest.Size(m) -} -func (m *GetEntityRequest) XXX_DiscardUnknown() { - xxx_messageInfo_GetEntityRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_GetEntityRequest proto.InternalMessageInfo - -func (m *GetEntityRequest) GetEntity() *Entity { - if m != nil { - return m.Entity - } - return nil -} - -type GetEntityReply struct { - Entity *Entity `protobuf:"bytes,1,opt,name=entity,proto3" json:"entity,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *GetEntityReply) Reset() { *m = GetEntityReply{} } -func (m *GetEntityReply) String() string { return proto.CompactTextString(m) } -func (*GetEntityReply) ProtoMessage() {} -func (*GetEntityReply) Descriptor() ([]byte, []int) { - return fileDescriptor_70be9028e322f9d8, []int{3} -} - -func (m *GetEntityReply) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetEntityReply.Unmarshal(m, b) -} -func (m *GetEntityReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetEntityReply.Marshal(b, m, deterministic) -} -func (m *GetEntityReply) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetEntityReply.Merge(m, src) -} -func (m *GetEntityReply) XXX_Size() int { - return xxx_messageInfo_GetEntityReply.Size(m) -} -func (m *GetEntityReply) XXX_DiscardUnknown() { - xxx_messageInfo_GetEntityReply.DiscardUnknown(m) -} - -var xxx_messageInfo_GetEntityReply proto.InternalMessageInfo - -func (m *GetEntityReply) GetEntity() *Entity { - if m != nil { - return m.Entity - } - return nil -} - -type CreateEntityRequest struct { - Entity *Entity `protobuf:"bytes,1,opt,name=entity,proto3" json:"entity,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *CreateEntityRequest) Reset() { *m = CreateEntityRequest{} } -func (m *CreateEntityRequest) String() string { return proto.CompactTextString(m) } -func (*CreateEntityRequest) ProtoMessage() {} -func (*CreateEntityRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_70be9028e322f9d8, []int{4} -} - -func (m *CreateEntityRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_CreateEntityRequest.Unmarshal(m, b) -} -func (m *CreateEntityRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_CreateEntityRequest.Marshal(b, m, deterministic) -} -func (m *CreateEntityRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_CreateEntityRequest.Merge(m, src) -} -func (m *CreateEntityRequest) XXX_Size() int { - return xxx_messageInfo_CreateEntityRequest.Size(m) -} -func (m *CreateEntityRequest) XXX_DiscardUnknown() { - xxx_messageInfo_CreateEntityRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_CreateEntityRequest proto.InternalMessageInfo - -func (m *CreateEntityRequest) GetEntity() *Entity { - if m != nil { - return m.Entity - } - return nil -} - -type CreateEntityReply struct { - Entity *Entity `protobuf:"bytes,1,opt,name=entity,proto3" json:"entity,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *CreateEntityReply) Reset() { *m = CreateEntityReply{} } -func (m *CreateEntityReply) String() string { return proto.CompactTextString(m) } -func (*CreateEntityReply) ProtoMessage() {} -func (*CreateEntityReply) Descriptor() ([]byte, []int) { - return fileDescriptor_70be9028e322f9d8, []int{5} -} - -func (m *CreateEntityReply) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_CreateEntityReply.Unmarshal(m, b) -} -func (m *CreateEntityReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_CreateEntityReply.Marshal(b, m, deterministic) -} -func (m *CreateEntityReply) XXX_Merge(src proto.Message) { - xxx_messageInfo_CreateEntityReply.Merge(m, src) -} -func (m *CreateEntityReply) XXX_Size() int { - return xxx_messageInfo_CreateEntityReply.Size(m) -} -func (m *CreateEntityReply) XXX_DiscardUnknown() { - xxx_messageInfo_CreateEntityReply.DiscardUnknown(m) -} - -var xxx_messageInfo_CreateEntityReply proto.InternalMessageInfo - -func (m *CreateEntityReply) GetEntity() *Entity { - if m != nil { - return m.Entity - } - return nil -} - -type SetFactRequest struct { - EntityUri string `protobuf:"bytes,1,opt,name=entityUri,proto3" json:"entityUri,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` - Value string `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *SetFactRequest) Reset() { *m = SetFactRequest{} } -func (m *SetFactRequest) String() string { return proto.CompactTextString(m) } -func (*SetFactRequest) ProtoMessage() {} -func (*SetFactRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_70be9028e322f9d8, []int{6} -} - -func (m *SetFactRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SetFactRequest.Unmarshal(m, b) -} -func (m *SetFactRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SetFactRequest.Marshal(b, m, deterministic) -} -func (m *SetFactRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_SetFactRequest.Merge(m, src) -} -func (m *SetFactRequest) XXX_Size() int { - return xxx_messageInfo_SetFactRequest.Size(m) -} -func (m *SetFactRequest) XXX_DiscardUnknown() { - xxx_messageInfo_SetFactRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_SetFactRequest proto.InternalMessageInfo - -func (m *SetFactRequest) GetEntityUri() string { - if m != nil { - return m.EntityUri - } - return "" -} - -func (m *SetFactRequest) GetName() string { - if m != nil { - return m.Name - } - return "" -} - -func (m *SetFactRequest) GetValue() string { - if m != nil { - return m.Value - } - return "" -} - -type SetFactReply struct { - Fact *Fact `protobuf:"bytes,1,opt,name=fact,proto3" json:"fact,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *SetFactReply) Reset() { *m = SetFactReply{} } -func (m *SetFactReply) String() string { return proto.CompactTextString(m) } -func (*SetFactReply) ProtoMessage() {} -func (*SetFactReply) Descriptor() ([]byte, []int) { - return fileDescriptor_70be9028e322f9d8, []int{7} -} - -func (m *SetFactReply) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SetFactReply.Unmarshal(m, b) -} -func (m *SetFactReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SetFactReply.Marshal(b, m, deterministic) -} -func (m *SetFactReply) XXX_Merge(src proto.Message) { - xxx_messageInfo_SetFactReply.Merge(m, src) -} -func (m *SetFactReply) XXX_Size() int { - return xxx_messageInfo_SetFactReply.Size(m) -} -func (m *SetFactReply) XXX_DiscardUnknown() { - xxx_messageInfo_SetFactReply.DiscardUnknown(m) -} - -var xxx_messageInfo_SetFactReply proto.InternalMessageInfo - -func (m *SetFactReply) GetFact() *Fact { - if m != nil { - return m.Fact - } - return nil -} - -type GetFactRequest struct { - EntityUri string `protobuf:"bytes,1,opt,name=entityUri,proto3" json:"entityUri,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *GetFactRequest) Reset() { *m = GetFactRequest{} } -func (m *GetFactRequest) String() string { return proto.CompactTextString(m) } -func (*GetFactRequest) ProtoMessage() {} -func (*GetFactRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_70be9028e322f9d8, []int{8} -} - -func (m *GetFactRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetFactRequest.Unmarshal(m, b) -} -func (m *GetFactRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetFactRequest.Marshal(b, m, deterministic) -} -func (m *GetFactRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetFactRequest.Merge(m, src) -} -func (m *GetFactRequest) XXX_Size() int { - return xxx_messageInfo_GetFactRequest.Size(m) -} -func (m *GetFactRequest) XXX_DiscardUnknown() { - xxx_messageInfo_GetFactRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_GetFactRequest proto.InternalMessageInfo - -func (m *GetFactRequest) GetEntityUri() string { - if m != nil { - return m.EntityUri - } - return "" -} - -func (m *GetFactRequest) GetName() string { - if m != nil { - return m.Name - } - return "" -} - -type GetFactReply struct { - Fact *Fact `protobuf:"bytes,1,opt,name=fact,proto3" json:"fact,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *GetFactReply) Reset() { *m = GetFactReply{} } -func (m *GetFactReply) String() string { return proto.CompactTextString(m) } -func (*GetFactReply) ProtoMessage() {} -func (*GetFactReply) Descriptor() ([]byte, []int) { - return fileDescriptor_70be9028e322f9d8, []int{9} -} - -func (m *GetFactReply) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetFactReply.Unmarshal(m, b) -} -func (m *GetFactReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetFactReply.Marshal(b, m, deterministic) -} -func (m *GetFactReply) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetFactReply.Merge(m, src) -} -func (m *GetFactReply) XXX_Size() int { - return xxx_messageInfo_GetFactReply.Size(m) -} -func (m *GetFactReply) XXX_DiscardUnknown() { - xxx_messageInfo_GetFactReply.DiscardUnknown(m) -} - -var xxx_messageInfo_GetFactReply proto.InternalMessageInfo - -func (m *GetFactReply) GetFact() *Fact { - if m != nil { - return m.Fact - } - return nil -} - -type Entity struct { - Uri string `protobuf:"bytes,1,opt,name=uri,proto3" json:"uri,omitempty"` - Facts []*Fact `protobuf:"bytes,2,rep,name=facts,proto3" json:"facts,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *Entity) Reset() { *m = Entity{} } -func (m *Entity) String() string { return proto.CompactTextString(m) } -func (*Entity) ProtoMessage() {} -func (*Entity) Descriptor() ([]byte, []int) { - return fileDescriptor_70be9028e322f9d8, []int{10} -} - -func (m *Entity) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Entity.Unmarshal(m, b) -} -func (m *Entity) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Entity.Marshal(b, m, deterministic) -} -func (m *Entity) XXX_Merge(src proto.Message) { - xxx_messageInfo_Entity.Merge(m, src) -} -func (m *Entity) XXX_Size() int { - return xxx_messageInfo_Entity.Size(m) -} -func (m *Entity) XXX_DiscardUnknown() { - xxx_messageInfo_Entity.DiscardUnknown(m) -} - -var xxx_messageInfo_Entity proto.InternalMessageInfo - -func (m *Entity) GetUri() string { - if m != nil { - return m.Uri - } - return "" -} - -func (m *Entity) GetFacts() []*Fact { - if m != nil { - return m.Facts - } - return nil -} - -type Fact struct { - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *Fact) Reset() { *m = Fact{} } -func (m *Fact) String() string { return proto.CompactTextString(m) } -func (*Fact) ProtoMessage() {} -func (*Fact) Descriptor() ([]byte, []int) { - return fileDescriptor_70be9028e322f9d8, []int{11} -} - -func (m *Fact) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Fact.Unmarshal(m, b) -} -func (m *Fact) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Fact.Marshal(b, m, deterministic) -} -func (m *Fact) XXX_Merge(src proto.Message) { - xxx_messageInfo_Fact.Merge(m, src) -} -func (m *Fact) XXX_Size() int { - return xxx_messageInfo_Fact.Size(m) -} -func (m *Fact) XXX_DiscardUnknown() { - xxx_messageInfo_Fact.DiscardUnknown(m) -} - -var xxx_messageInfo_Fact proto.InternalMessageInfo - -func (m *Fact) GetName() string { - if m != nil { - return m.Name - } - return "" -} - -func (m *Fact) GetValue() string { - if m != nil { - return m.Value - } - return "" -} - -func init() { - proto.RegisterType((*ListEntitiesRequest)(nil), "spotify.backstage.inventory.v1.ListEntitiesRequest") - proto.RegisterType((*ListEntitiesReply)(nil), "spotify.backstage.inventory.v1.ListEntitiesReply") - proto.RegisterType((*GetEntityRequest)(nil), "spotify.backstage.inventory.v1.GetEntityRequest") - proto.RegisterType((*GetEntityReply)(nil), "spotify.backstage.inventory.v1.GetEntityReply") - proto.RegisterType((*CreateEntityRequest)(nil), "spotify.backstage.inventory.v1.CreateEntityRequest") - proto.RegisterType((*CreateEntityReply)(nil), "spotify.backstage.inventory.v1.CreateEntityReply") - proto.RegisterType((*SetFactRequest)(nil), "spotify.backstage.inventory.v1.SetFactRequest") - proto.RegisterType((*SetFactReply)(nil), "spotify.backstage.inventory.v1.SetFactReply") - proto.RegisterType((*GetFactRequest)(nil), "spotify.backstage.inventory.v1.GetFactRequest") - proto.RegisterType((*GetFactReply)(nil), "spotify.backstage.inventory.v1.GetFactReply") - proto.RegisterType((*Entity)(nil), "spotify.backstage.inventory.v1.Entity") - proto.RegisterType((*Fact)(nil), "spotify.backstage.inventory.v1.Fact") -} - -func init() { proto.RegisterFile("inventory/v1/inventory.proto", fileDescriptor_70be9028e322f9d8) } - -var fileDescriptor_70be9028e322f9d8 = []byte{ - // 428 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x55, 0x4f, 0x6b, 0xe2, 0x40, - 0x14, 0x27, 0x1a, 0xdd, 0xcd, 0xd3, 0x15, 0x1d, 0xf7, 0x10, 0x44, 0x16, 0x09, 0xcb, 0xe2, 0x61, - 0x89, 0x46, 0x2f, 0xcb, 0x1e, 0x7a, 0xb0, 0xb4, 0x69, 0xa1, 0x07, 0x89, 0xd8, 0x96, 0xde, 0xa2, - 0x8c, 0x32, 0x54, 0x13, 0x9b, 0x4c, 0x42, 0xf3, 0xdd, 0xfa, 0xe1, 0xca, 0x4c, 0xe2, 0x18, 0x5b, - 0x69, 0x22, 0x7a, 0xcb, 0xbc, 0x37, 0xbf, 0x3f, 0xf3, 0x66, 0x7e, 0x04, 0xda, 0xc4, 0x09, 0xb1, - 0x43, 0x5d, 0x2f, 0xea, 0x85, 0x46, 0x4f, 0x2c, 0xf4, 0x8d, 0xe7, 0x52, 0x17, 0xfd, 0xf2, 0x37, - 0x2e, 0x25, 0x8b, 0x48, 0x9f, 0xd9, 0xf3, 0x67, 0x9f, 0xda, 0x4b, 0xac, 0xef, 0xb6, 0x84, 0x86, - 0x36, 0x84, 0xe6, 0x1d, 0xf1, 0xe9, 0x95, 0x43, 0x09, 0x25, 0xd8, 0xb7, 0xf0, 0x4b, 0x80, 0x7d, - 0x8a, 0xda, 0xa0, 0x04, 0x1e, 0x19, 0x7b, 0x78, 0x41, 0x5e, 0x55, 0xa9, 0x23, 0x75, 0x15, 0x6b, - 0x57, 0xd0, 0x1e, 0xa0, 0xb1, 0x0f, 0xda, 0xac, 0x22, 0x34, 0x82, 0xef, 0x38, 0x29, 0xa8, 0x52, - 0xa7, 0xd8, 0xad, 0x0c, 0xfe, 0xe8, 0x5f, 0x8b, 0xeb, 0x9c, 0x20, 0xb2, 0x04, 0x4e, 0xb3, 0xa0, - 0x6e, 0x62, 0x9a, 0x94, 0x13, 0x2b, 0x17, 0x50, 0xe6, 0xfd, 0x88, 0xfb, 0xc8, 0xcf, 0x9a, 0xa0, - 0xb4, 0x31, 0xd4, 0x52, 0x9c, 0xcc, 0xe9, 0xa9, 0x8c, 0x53, 0x68, 0x5e, 0x7a, 0xd8, 0xa6, 0xf8, - 0xbc, 0x46, 0x27, 0xd0, 0xd8, 0xa7, 0x3d, 0x87, 0xd7, 0x47, 0xa8, 0x4d, 0x30, 0xbd, 0xb6, 0xe7, - 0x34, 0x75, 0xb5, 0x71, 0x6f, 0xea, 0x91, 0xed, 0xd5, 0x8a, 0x02, 0x42, 0x20, 0x3b, 0xf6, 0x1a, - 0xab, 0x05, 0xde, 0xe0, 0xdf, 0xe8, 0x27, 0x94, 0x42, 0x7b, 0x15, 0x60, 0xb5, 0xc8, 0x8b, 0xf1, - 0x42, 0xbb, 0x81, 0xaa, 0x60, 0x66, 0x4e, 0xff, 0x81, 0xbc, 0xb0, 0xe7, 0x34, 0xf1, 0xf9, 0x3b, - 0xcb, 0x27, 0x07, 0x72, 0x84, 0x36, 0xe2, 0x37, 0x74, 0x92, 0x47, 0xe6, 0xc6, 0x3c, 0x8f, 0x9b, - 0x7b, 0x28, 0xc7, 0x33, 0x44, 0x75, 0x28, 0x06, 0x42, 0x9f, 0x7d, 0xa2, 0xff, 0x50, 0x62, 0x7b, - 0x7c, 0xb5, 0xc0, 0x1f, 0x78, 0x3e, 0xda, 0x18, 0xa2, 0xf5, 0x41, 0x66, 0x4b, 0xe1, 0x5e, 0x3a, - 0x34, 0xe1, 0x42, 0x6a, 0xc2, 0x83, 0x37, 0x19, 0x94, 0xdb, 0x2d, 0x1d, 0x0a, 0xa1, 0x9a, 0x0e, - 0x1d, 0x1a, 0x66, 0x89, 0x1f, 0xc8, 0x75, 0xcb, 0x38, 0x0e, 0xc4, 0x26, 0xb9, 0x06, 0x45, 0xe4, - 0x07, 0xf5, 0xb3, 0xf0, 0x1f, 0xe3, 0xdb, 0xd2, 0x8f, 0x40, 0x30, 0xb9, 0x10, 0xaa, 0xe9, 0x14, - 0x64, 0x1f, 0xf3, 0x40, 0x14, 0xb3, 0x8f, 0xf9, 0x39, 0x68, 0x4b, 0xf8, 0x96, 0x3c, 0x67, 0x94, - 0x69, 0x79, 0x3f, 0x51, 0xad, 0xbf, 0xb9, 0xf7, 0x27, 0x42, 0x66, 0x5e, 0x21, 0xf3, 0x48, 0xa1, - 0x74, 0x04, 0x46, 0x3f, 0x9e, 0x2a, 0xa2, 0x19, 0x1a, 0xb3, 0x32, 0xff, 0x21, 0x0c, 0xdf, 0x03, - 0x00, 0x00, 0xff, 0xff, 0xce, 0x45, 0x7f, 0xc5, 0x30, 0x06, 0x00, 0x00, -} - -// Reference imports to suppress errors if they are not otherwise used. -var _ context.Context -var _ grpc.ClientConnInterface - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the grpc package it is being compiled against. -const _ = grpc.SupportPackageIsVersion6 - -// InventoryClient is the client API for Inventory service. -// -// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. -type InventoryClient interface { - ListEntities(ctx context.Context, in *ListEntitiesRequest, opts ...grpc.CallOption) (*ListEntitiesReply, error) - GetEntity(ctx context.Context, in *GetEntityRequest, opts ...grpc.CallOption) (*GetEntityReply, error) - CreateEntity(ctx context.Context, in *CreateEntityRequest, opts ...grpc.CallOption) (*CreateEntityReply, error) - SetFact(ctx context.Context, in *SetFactRequest, opts ...grpc.CallOption) (*SetFactReply, error) - GetFact(ctx context.Context, in *GetFactRequest, opts ...grpc.CallOption) (*GetFactReply, error) -} - -type inventoryClient struct { - cc grpc.ClientConnInterface -} - -func NewInventoryClient(cc grpc.ClientConnInterface) InventoryClient { - return &inventoryClient{cc} -} - -func (c *inventoryClient) ListEntities(ctx context.Context, in *ListEntitiesRequest, opts ...grpc.CallOption) (*ListEntitiesReply, error) { - out := new(ListEntitiesReply) - err := c.cc.Invoke(ctx, "/spotify.backstage.inventory.v1.Inventory/ListEntities", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *inventoryClient) GetEntity(ctx context.Context, in *GetEntityRequest, opts ...grpc.CallOption) (*GetEntityReply, error) { - out := new(GetEntityReply) - err := c.cc.Invoke(ctx, "/spotify.backstage.inventory.v1.Inventory/GetEntity", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *inventoryClient) CreateEntity(ctx context.Context, in *CreateEntityRequest, opts ...grpc.CallOption) (*CreateEntityReply, error) { - out := new(CreateEntityReply) - err := c.cc.Invoke(ctx, "/spotify.backstage.inventory.v1.Inventory/CreateEntity", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *inventoryClient) SetFact(ctx context.Context, in *SetFactRequest, opts ...grpc.CallOption) (*SetFactReply, error) { - out := new(SetFactReply) - err := c.cc.Invoke(ctx, "/spotify.backstage.inventory.v1.Inventory/SetFact", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *inventoryClient) GetFact(ctx context.Context, in *GetFactRequest, opts ...grpc.CallOption) (*GetFactReply, error) { - out := new(GetFactReply) - err := c.cc.Invoke(ctx, "/spotify.backstage.inventory.v1.Inventory/GetFact", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -// InventoryServer is the server API for Inventory service. -type InventoryServer interface { - ListEntities(context.Context, *ListEntitiesRequest) (*ListEntitiesReply, error) - GetEntity(context.Context, *GetEntityRequest) (*GetEntityReply, error) - CreateEntity(context.Context, *CreateEntityRequest) (*CreateEntityReply, error) - SetFact(context.Context, *SetFactRequest) (*SetFactReply, error) - GetFact(context.Context, *GetFactRequest) (*GetFactReply, error) -} - -// UnimplementedInventoryServer can be embedded to have forward compatible implementations. -type UnimplementedInventoryServer struct { -} - -func (*UnimplementedInventoryServer) ListEntities(ctx context.Context, req *ListEntitiesRequest) (*ListEntitiesReply, error) { - return nil, status.Errorf(codes.Unimplemented, "method ListEntities not implemented") -} -func (*UnimplementedInventoryServer) GetEntity(ctx context.Context, req *GetEntityRequest) (*GetEntityReply, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetEntity not implemented") -} -func (*UnimplementedInventoryServer) CreateEntity(ctx context.Context, req *CreateEntityRequest) (*CreateEntityReply, error) { - return nil, status.Errorf(codes.Unimplemented, "method CreateEntity not implemented") -} -func (*UnimplementedInventoryServer) SetFact(ctx context.Context, req *SetFactRequest) (*SetFactReply, error) { - return nil, status.Errorf(codes.Unimplemented, "method SetFact not implemented") -} -func (*UnimplementedInventoryServer) GetFact(ctx context.Context, req *GetFactRequest) (*GetFactReply, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetFact not implemented") -} - -func RegisterInventoryServer(s *grpc.Server, srv InventoryServer) { - s.RegisterService(&_Inventory_serviceDesc, srv) -} - -func _Inventory_ListEntities_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ListEntitiesRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(InventoryServer).ListEntities(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/spotify.backstage.inventory.v1.Inventory/ListEntities", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(InventoryServer).ListEntities(ctx, req.(*ListEntitiesRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _Inventory_GetEntity_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetEntityRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(InventoryServer).GetEntity(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/spotify.backstage.inventory.v1.Inventory/GetEntity", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(InventoryServer).GetEntity(ctx, req.(*GetEntityRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _Inventory_CreateEntity_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(CreateEntityRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(InventoryServer).CreateEntity(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/spotify.backstage.inventory.v1.Inventory/CreateEntity", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(InventoryServer).CreateEntity(ctx, req.(*CreateEntityRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _Inventory_SetFact_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(SetFactRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(InventoryServer).SetFact(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/spotify.backstage.inventory.v1.Inventory/SetFact", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(InventoryServer).SetFact(ctx, req.(*SetFactRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _Inventory_GetFact_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetFactRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(InventoryServer).GetFact(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/spotify.backstage.inventory.v1.Inventory/GetFact", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(InventoryServer).GetFact(ctx, req.(*GetFactRequest)) - } - return interceptor(ctx, in, info, handler) -} - -var _Inventory_serviceDesc = grpc.ServiceDesc{ - ServiceName: "spotify.backstage.inventory.v1.Inventory", - HandlerType: (*InventoryServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "ListEntities", - Handler: _Inventory_ListEntities_Handler, - }, - { - MethodName: "GetEntity", - Handler: _Inventory_GetEntity_Handler, - }, - { - MethodName: "CreateEntity", - Handler: _Inventory_CreateEntity_Handler, - }, - { - MethodName: "SetFact", - Handler: _Inventory_SetFact_Handler, - }, - { - MethodName: "GetFact", - Handler: _Inventory_GetFact_Handler, - }, - }, - Streams: []grpc.StreamDesc{}, - Metadata: "inventory/v1/inventory.proto", -} diff --git a/backend/proto/scaffolder/v1/scaffolder.pb.go b/backend/proto/scaffolder/v1/scaffolder.pb.go deleted file mode 100644 index 9e52b9b59f..0000000000 --- a/backend/proto/scaffolder/v1/scaffolder.pb.go +++ /dev/null @@ -1,429 +0,0 @@ -// Code generated by protoc-gen-go. DO NOT EDIT. -// source: scaffolder/v1/scaffolder.proto - -package scaffolderv1 - -import ( - context "context" - fmt "fmt" - proto "github.com/golang/protobuf/proto" - _struct "github.com/golang/protobuf/ptypes/struct" - v1 "github.com/spotify/backstage/backend/proto/identity/v1" - grpc "google.golang.org/grpc" - codes "google.golang.org/grpc/codes" - status "google.golang.org/grpc/status" - math "math" -) - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package - -type Empty struct { - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *Empty) Reset() { *m = Empty{} } -func (m *Empty) String() string { return proto.CompactTextString(m) } -func (*Empty) ProtoMessage() {} -func (*Empty) Descriptor() ([]byte, []int) { - return fileDescriptor_6737326b433dc57d, []int{0} -} - -func (m *Empty) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Empty.Unmarshal(m, b) -} -func (m *Empty) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Empty.Marshal(b, m, deterministic) -} -func (m *Empty) XXX_Merge(src proto.Message) { - xxx_messageInfo_Empty.Merge(m, src) -} -func (m *Empty) XXX_Size() int { - return xxx_messageInfo_Empty.Size(m) -} -func (m *Empty) XXX_DiscardUnknown() { - xxx_messageInfo_Empty.DiscardUnknown(m) -} - -var xxx_messageInfo_Empty proto.InternalMessageInfo - -type ListTemplatesReply struct { - Templates []*Template `protobuf:"bytes,1,rep,name=templates,proto3" json:"templates,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *ListTemplatesReply) Reset() { *m = ListTemplatesReply{} } -func (m *ListTemplatesReply) String() string { return proto.CompactTextString(m) } -func (*ListTemplatesReply) ProtoMessage() {} -func (*ListTemplatesReply) Descriptor() ([]byte, []int) { - return fileDescriptor_6737326b433dc57d, []int{1} -} - -func (m *ListTemplatesReply) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ListTemplatesReply.Unmarshal(m, b) -} -func (m *ListTemplatesReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ListTemplatesReply.Marshal(b, m, deterministic) -} -func (m *ListTemplatesReply) XXX_Merge(src proto.Message) { - xxx_messageInfo_ListTemplatesReply.Merge(m, src) -} -func (m *ListTemplatesReply) XXX_Size() int { - return xxx_messageInfo_ListTemplatesReply.Size(m) -} -func (m *ListTemplatesReply) XXX_DiscardUnknown() { - xxx_messageInfo_ListTemplatesReply.DiscardUnknown(m) -} - -var xxx_messageInfo_ListTemplatesReply proto.InternalMessageInfo - -func (m *ListTemplatesReply) GetTemplates() []*Template { - if m != nil { - return m.Templates - } - return nil -} - -type CreateReply struct { - ComponentId string `protobuf:"bytes,1,opt,name=component_id,json=componentId,proto3" json:"component_id,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *CreateReply) Reset() { *m = CreateReply{} } -func (m *CreateReply) String() string { return proto.CompactTextString(m) } -func (*CreateReply) ProtoMessage() {} -func (*CreateReply) Descriptor() ([]byte, []int) { - return fileDescriptor_6737326b433dc57d, []int{2} -} - -func (m *CreateReply) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_CreateReply.Unmarshal(m, b) -} -func (m *CreateReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_CreateReply.Marshal(b, m, deterministic) -} -func (m *CreateReply) XXX_Merge(src proto.Message) { - xxx_messageInfo_CreateReply.Merge(m, src) -} -func (m *CreateReply) XXX_Size() int { - return xxx_messageInfo_CreateReply.Size(m) -} -func (m *CreateReply) XXX_DiscardUnknown() { - xxx_messageInfo_CreateReply.DiscardUnknown(m) -} - -var xxx_messageInfo_CreateReply proto.InternalMessageInfo - -func (m *CreateReply) GetComponentId() string { - if m != nil { - return m.ComponentId - } - return "" -} - -type CreateRequest struct { - TemplateId string `protobuf:"bytes,1,opt,name=template_id,json=templateId,proto3" json:"template_id,omitempty"` - Org string `protobuf:"bytes,2,opt,name=org,proto3" json:"org,omitempty"` - ComponentId string `protobuf:"bytes,3,opt,name=component_id,json=componentId,proto3" json:"component_id,omitempty"` - Private bool `protobuf:"varint,4,opt,name=private,proto3" json:"private,omitempty"` - // here's the cookiecutter.json that is used for the request. - // make as a struct so that we can pass through the data in a nice way - // withouth having to mess around with stuff and special types. - Metadata *_struct.Struct `protobuf:"bytes,5,opt,name=metadata,proto3" json:"metadata,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *CreateRequest) Reset() { *m = CreateRequest{} } -func (m *CreateRequest) String() string { return proto.CompactTextString(m) } -func (*CreateRequest) ProtoMessage() {} -func (*CreateRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_6737326b433dc57d, []int{3} -} - -func (m *CreateRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_CreateRequest.Unmarshal(m, b) -} -func (m *CreateRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_CreateRequest.Marshal(b, m, deterministic) -} -func (m *CreateRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_CreateRequest.Merge(m, src) -} -func (m *CreateRequest) XXX_Size() int { - return xxx_messageInfo_CreateRequest.Size(m) -} -func (m *CreateRequest) XXX_DiscardUnknown() { - xxx_messageInfo_CreateRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_CreateRequest proto.InternalMessageInfo - -func (m *CreateRequest) GetTemplateId() string { - if m != nil { - return m.TemplateId - } - return "" -} - -func (m *CreateRequest) GetOrg() string { - if m != nil { - return m.Org - } - return "" -} - -func (m *CreateRequest) GetComponentId() string { - if m != nil { - return m.ComponentId - } - return "" -} - -func (m *CreateRequest) GetPrivate() bool { - if m != nil { - return m.Private - } - return false -} - -func (m *CreateRequest) GetMetadata() *_struct.Struct { - if m != nil { - return m.Metadata - } - return nil -} - -type Template struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` - Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` - User *v1.User `protobuf:"bytes,4,opt,name=user,proto3" json:"user,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *Template) Reset() { *m = Template{} } -func (m *Template) String() string { return proto.CompactTextString(m) } -func (*Template) ProtoMessage() {} -func (*Template) Descriptor() ([]byte, []int) { - return fileDescriptor_6737326b433dc57d, []int{4} -} - -func (m *Template) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Template.Unmarshal(m, b) -} -func (m *Template) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Template.Marshal(b, m, deterministic) -} -func (m *Template) XXX_Merge(src proto.Message) { - xxx_messageInfo_Template.Merge(m, src) -} -func (m *Template) XXX_Size() int { - return xxx_messageInfo_Template.Size(m) -} -func (m *Template) XXX_DiscardUnknown() { - xxx_messageInfo_Template.DiscardUnknown(m) -} - -var xxx_messageInfo_Template proto.InternalMessageInfo - -func (m *Template) GetId() string { - if m != nil { - return m.Id - } - return "" -} - -func (m *Template) GetName() string { - if m != nil { - return m.Name - } - return "" -} - -func (m *Template) GetDescription() string { - if m != nil { - return m.Description - } - return "" -} - -func (m *Template) GetUser() *v1.User { - if m != nil { - return m.User - } - return nil -} - -func init() { - proto.RegisterType((*Empty)(nil), "spotify.backstage.scaffolder.v1.Empty") - proto.RegisterType((*ListTemplatesReply)(nil), "spotify.backstage.scaffolder.v1.ListTemplatesReply") - proto.RegisterType((*CreateReply)(nil), "spotify.backstage.scaffolder.v1.CreateReply") - proto.RegisterType((*CreateRequest)(nil), "spotify.backstage.scaffolder.v1.CreateRequest") - proto.RegisterType((*Template)(nil), "spotify.backstage.scaffolder.v1.Template") -} - -func init() { proto.RegisterFile("scaffolder/v1/scaffolder.proto", fileDescriptor_6737326b433dc57d) } - -var fileDescriptor_6737326b433dc57d = []byte{ - // 411 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x52, 0xd1, 0x8a, 0xd3, 0x40, - 0x14, 0x25, 0x6d, 0x77, 0xb7, 0x7b, 0xb3, 0xbb, 0xc8, 0xbc, 0x18, 0x82, 0xb8, 0x31, 0x82, 0x54, - 0x90, 0xa9, 0x6d, 0x1f, 0x7c, 0x57, 0x44, 0x16, 0x7c, 0xca, 0xea, 0x8b, 0x20, 0x32, 0x4d, 0x6e, - 0xca, 0x60, 0x92, 0x19, 0x67, 0x6e, 0x03, 0xf9, 0x04, 0xff, 0xc7, 0x2f, 0xf2, 0x4b, 0xa4, 0x53, - 0x27, 0xdd, 0x65, 0x0b, 0xd9, 0xb7, 0x7b, 0xcf, 0xbd, 0xe7, 0xce, 0xe1, 0x9c, 0x81, 0xe7, 0x36, - 0x17, 0x65, 0xa9, 0xaa, 0x02, 0xcd, 0xbc, 0x5d, 0xcc, 0x0f, 0x1d, 0xd7, 0x46, 0x91, 0x62, 0xd7, - 0x56, 0x2b, 0x92, 0x65, 0xc7, 0xd7, 0x22, 0xff, 0x69, 0x49, 0x6c, 0x90, 0xdf, 0xd9, 0x69, 0x17, - 0x71, 0x2c, 0x0b, 0x6c, 0x48, 0x52, 0xb7, 0xa3, 0xfb, 0x7a, 0x4f, 0x8e, 0x9f, 0x6d, 0x94, 0xda, - 0x54, 0x38, 0x77, 0xdd, 0x7a, 0x5b, 0xce, 0x2d, 0x99, 0x6d, 0x4e, 0xfb, 0x69, 0x7a, 0x06, 0x27, - 0x1f, 0x6b, 0x4d, 0x5d, 0xfa, 0x1d, 0xd8, 0x67, 0x69, 0xe9, 0x0b, 0xd6, 0xba, 0x12, 0x84, 0x36, - 0x43, 0x5d, 0x75, 0xec, 0x13, 0x9c, 0x93, 0x47, 0xa2, 0x20, 0x19, 0xcf, 0xc2, 0xe5, 0x6b, 0x3e, - 0xa0, 0x86, 0xfb, 0x1b, 0xd9, 0x81, 0x9b, 0xbe, 0x85, 0xf0, 0x83, 0xc1, 0x1d, 0xe8, 0xee, 0xbe, - 0x80, 0x8b, 0x5c, 0xd5, 0x5a, 0x35, 0xd8, 0xd0, 0x0f, 0x59, 0x44, 0x41, 0x12, 0xcc, 0xce, 0xb3, - 0xb0, 0xc7, 0x6e, 0x8a, 0xf4, 0x4f, 0x00, 0x97, 0x9e, 0xf2, 0x6b, 0x8b, 0x96, 0xd8, 0x35, 0x84, - 0xfe, 0xe0, 0x81, 0x03, 0x1e, 0xba, 0x29, 0xd8, 0x13, 0x18, 0x2b, 0xb3, 0x89, 0x46, 0x6e, 0xb0, - 0x2b, 0x1f, 0xbc, 0x33, 0x7e, 0xf0, 0x0e, 0x8b, 0xe0, 0x4c, 0x1b, 0xd9, 0x0a, 0xc2, 0x68, 0x92, - 0x04, 0xb3, 0x69, 0xe6, 0x5b, 0xb6, 0x82, 0x69, 0x8d, 0x24, 0x0a, 0x41, 0x22, 0x3a, 0x49, 0x82, - 0x59, 0xb8, 0x7c, 0xca, 0xf7, 0x66, 0x72, 0x6f, 0x26, 0xbf, 0x75, 0x66, 0x66, 0xfd, 0x62, 0xfa, - 0x3b, 0x80, 0xa9, 0x37, 0x80, 0x5d, 0xc1, 0xa8, 0x17, 0x3a, 0x92, 0x05, 0x63, 0x30, 0x69, 0x44, - 0x8d, 0xff, 0x15, 0xba, 0x9a, 0x25, 0x10, 0x16, 0x68, 0x73, 0x23, 0x35, 0x49, 0xd5, 0x78, 0x85, - 0x77, 0x20, 0xf6, 0x0e, 0x26, 0x5b, 0x8b, 0xc6, 0xc9, 0x0b, 0x97, 0x2f, 0x8f, 0xf8, 0xdf, 0x47, - 0xde, 0x2e, 0xf8, 0x57, 0x8b, 0x26, 0x73, 0x84, 0xe5, 0xdf, 0x00, 0xe0, 0xb6, 0x8f, 0x86, 0x55, - 0x70, 0x79, 0x2f, 0x62, 0xf6, 0x6a, 0x30, 0x4a, 0xf7, 0x37, 0xe2, 0xd5, 0xe0, 0xde, 0x91, 0xaf, - 0x53, 0xc2, 0xe9, 0x3e, 0x3e, 0xc6, 0x07, 0xe9, 0xf7, 0x72, 0x8e, 0xdf, 0x3c, 0x7a, 0x5f, 0x57, - 0xdd, 0xfb, 0xab, 0x6f, 0x17, 0x87, 0x61, 0xbb, 0x58, 0x9f, 0xba, 0x6c, 0x56, 0xff, 0x02, 0x00, - 0x00, 0xff, 0xff, 0xfc, 0x1f, 0xfc, 0xf0, 0x55, 0x03, 0x00, 0x00, -} - -// Reference imports to suppress errors if they are not otherwise used. -var _ context.Context -var _ grpc.ClientConnInterface - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the grpc package it is being compiled against. -const _ = grpc.SupportPackageIsVersion6 - -// ScaffolderClient is the client API for Scaffolder service. -// -// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. -type ScaffolderClient interface { - ListTemplates(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*ListTemplatesReply, error) - Create(ctx context.Context, in *CreateRequest, opts ...grpc.CallOption) (*CreateReply, error) -} - -type scaffolderClient struct { - cc grpc.ClientConnInterface -} - -func NewScaffolderClient(cc grpc.ClientConnInterface) ScaffolderClient { - return &scaffolderClient{cc} -} - -func (c *scaffolderClient) ListTemplates(ctx context.Context, in *Empty, opts ...grpc.CallOption) (*ListTemplatesReply, error) { - out := new(ListTemplatesReply) - err := c.cc.Invoke(ctx, "/spotify.backstage.scaffolder.v1.Scaffolder/ListTemplates", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *scaffolderClient) Create(ctx context.Context, in *CreateRequest, opts ...grpc.CallOption) (*CreateReply, error) { - out := new(CreateReply) - err := c.cc.Invoke(ctx, "/spotify.backstage.scaffolder.v1.Scaffolder/Create", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -// ScaffolderServer is the server API for Scaffolder service. -type ScaffolderServer interface { - ListTemplates(context.Context, *Empty) (*ListTemplatesReply, error) - Create(context.Context, *CreateRequest) (*CreateReply, error) -} - -// UnimplementedScaffolderServer can be embedded to have forward compatible implementations. -type UnimplementedScaffolderServer struct { -} - -func (*UnimplementedScaffolderServer) ListTemplates(ctx context.Context, req *Empty) (*ListTemplatesReply, error) { - return nil, status.Errorf(codes.Unimplemented, "method ListTemplates not implemented") -} -func (*UnimplementedScaffolderServer) Create(ctx context.Context, req *CreateRequest) (*CreateReply, error) { - return nil, status.Errorf(codes.Unimplemented, "method Create not implemented") -} - -func RegisterScaffolderServer(s *grpc.Server, srv ScaffolderServer) { - s.RegisterService(&_Scaffolder_serviceDesc, srv) -} - -func _Scaffolder_ListTemplates_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(Empty) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ScaffolderServer).ListTemplates(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/spotify.backstage.scaffolder.v1.Scaffolder/ListTemplates", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ScaffolderServer).ListTemplates(ctx, req.(*Empty)) - } - return interceptor(ctx, in, info, handler) -} - -func _Scaffolder_Create_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(CreateRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ScaffolderServer).Create(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/spotify.backstage.scaffolder.v1.Scaffolder/Create", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ScaffolderServer).Create(ctx, req.(*CreateRequest)) - } - return interceptor(ctx, in, info, handler) -} - -var _Scaffolder_serviceDesc = grpc.ServiceDesc{ - ServiceName: "spotify.backstage.scaffolder.v1.Scaffolder", - HandlerType: (*ScaffolderServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "ListTemplates", - Handler: _Scaffolder_ListTemplates_Handler, - }, - { - MethodName: "Create", - Handler: _Scaffolder_Create_Handler, - }, - }, - Streams: []grpc.StreamDesc{}, - Metadata: "scaffolder/v1/scaffolder.proto", -} diff --git a/backend/proxy/Dockerfile b/backend/proxy/Dockerfile deleted file mode 100644 index cb7522cad2..0000000000 --- a/backend/proxy/Dockerfile +++ /dev/null @@ -1,5 +0,0 @@ -FROM envoyproxy/envoy:v1.13.0 - -COPY ./envoy.yaml /etc/envoy/envoy.yaml - -CMD /usr/local/bin/envoy -c /etc/envoy/envoy.yaml diff --git a/backend/proxy/envoy.yaml b/backend/proxy/envoy.yaml deleted file mode 100644 index a769f45dd8..0000000000 --- a/backend/proxy/envoy.yaml +++ /dev/null @@ -1,91 +0,0 @@ -admin: - access_log_path: /dev/stdout - address: - socket_address: - address: 0.0.0.0 - port_value: 8001 - -static_resources: - listeners: - - name: listener_0 - address: - socket_address: - address: 0.0.0.0 - port_value: 80 - filter_chains: - - filters: - - name: envoy.http_connection_manager - config: - codec_type: auto - stat_prefix: ingress_http - route_config: - name: local_route - virtual_hosts: - - name: local_service - domains: ['*'] - routes: - - match: { prefix: '/spotify.backstage.identity.v1.Identity/' } - route: - cluster: identity_service - max_grpc_timeout: 0s - - match: { prefix: '/spotify.backstage.builds.v1.Builds/' } - route: - cluster: builds_service - max_grpc_timeout: 0s - - match: { prefix: '/spotify.backstage.inventory.v1.Inventory/' } - route: - cluster: inventory_service - max_grpc_timeout: 0s - - match: { prefix: '/spotify.backstage.scaffolder.v1.Scaffolder/' } - route: - cluster: scaffolder_service - max_grpc_timeout: 0s - cors: - allow_origin_string_match: - - prefix: '*' - allow_methods: GET, PUT, DELETE, POST, OPTIONS - allow_headers: keep-alive,user-agent,cache-control,content-type,content-transfer-encoding,custom-header-1,x-accept-content-transfer-encoding,x-accept-response-streaming,x-user-agent,x-grpc-web,grpc-timeout - max_age: '1728000' - expose_headers: custom-header-1,grpc-status,grpc-message - http_filters: - - name: envoy.grpc_web - - name: envoy.cors - - name: envoy.router - - clusters: - - name: identity_service - connect_timeout: 0.25s - type: logical_dns - http2_protocol_options: {} - lb_policy: round_robin - hosts: - - socket_address: - address: identity - port_value: 50051 - - name: builds_service - connect_timeout: 0.25s - type: logical_dns - http2_protocol_options: {} - lb_policy: round_robin - hosts: - - socket_address: - address: builds - port_value: 50051 - - name: inventory_service - connect_timeout: 0.25s - type: logical_dns - http2_protocol_options: {} - lb_policy: round_robin - hosts: - - socket_address: - address: inventory - port_value: 50051 - - name: scaffolder_service - connect_timeout: 0.25s - type: logical_dns - http2_protocol_options: {} - lb_policy: round_robin - hosts: - - socket_address: - address: scaffolder - port_value: 50051 diff --git a/backend/scaffolder/app/server.go b/backend/scaffolder/app/server.go deleted file mode 100644 index 55fb404716..0000000000 --- a/backend/scaffolder/app/server.go +++ /dev/null @@ -1,160 +0,0 @@ -package app - -import ( - "context" - "fmt" - "github.com/golang/protobuf/jsonpb" - identity "github.com/spotify/backstage/backend/proto/identity/v1" - inventory "github.com/spotify/backstage/backend/proto/inventory/v1" - pb "github.com/spotify/backstage/backend/proto/scaffolder/v1" - "github.com/spotify/backstage/scaffolder/fs" - "github.com/spotify/backstage/scaffolder/lib" - "github.com/spotify/backstage/scaffolder/repository" - "google.golang.org/grpc" - "google.golang.org/grpc/codes" - "google.golang.org/grpc/status" - "log" - "os" -) - -// Server is the inventory Grpc server -type Server struct { - repository *repository.Repository - github *lib.Github - fs *fs.Filesystem - cookie *lib.Cutter - git *lib.Git - inventory inventory.InventoryClient -} - -// NewServer creates a new server for with all the things -func NewServer() *Server { - conn, err := grpc.Dial("inventory:50051", grpc.WithInsecure()) - - if err != nil { - log.Fatal("Cannot connect to inventory service") - } - - return &Server{ - github: lib.NewGithubClient(), - inventory: inventory.NewInventoryClient(conn), - } -} - -// Create scaffolds the repo in github and then will create push to the repository -func (s *Server) Create(ctx context.Context, req *pb.CreateRequest) (*pb.CreateReply, error) { - // first create the repository with github - log.Printf("Creating repository for Component %s", req.ComponentId) - repo := lib.Repository{ - Name: req.ComponentId, - Org: req.Org, - Private: req.Private, - } - - if _, err := s.github.CreateRepository(repo); err != nil { - return nil, status.Error(codes.Internal, fmt.Sprintf("Could not create repository %s/%s %s", req.Org, req.ComponentId, err)) - } - - // move the template into a temporary directory - tempFolder, err := s.fs.PrepareTemplate( - fs.Template{ - ID: req.TemplateId, - }, - ) - - if err != nil { - return nil, status.Error(codes.Internal, fmt.Sprintf("Could not prepare the template %s", err)) - } - - // get the optional metadatafields from the json - marshaler := &jsonpb.Marshaler{} - cutterMetadata, err := marshaler.MarshalToString(req.Metadata) - - if err != nil { - return nil, status.Error(codes.Internal, fmt.Sprintf("Could not marshal the cookiecutter metadata %s", err)) - } - - cookieTemplate := lib.CookieCutterTemplate{ - Path: tempFolder, - ComponentID: req.ComponentId, - Metadata: cutterMetadata, - } - - // create the cookicutter json - if err := s.cookie.WriteMetadata(cookieTemplate); err != nil { - return nil, status.Error(codes.Internal, "Could not write cookie metadata") - } - - // run the cookiecutter on the folder - if err := s.cookie.Run(cookieTemplate); err != nil { - return nil, status.Error(codes.Internal, "Failed to run the cookie cutter") - } - - // push to github - pushOptions := lib.PushRepositoryOptions{ - TempFolder: tempFolder, - ComponentID: req.ComponentId, - Org: req.Org, - } - - if err := s.git.Push(pushOptions); err != nil { - return nil, status.Error(codes.Internal, fmt.Sprintf("Failed to push the repository to Github %s", err)) - } - - // notify the inventory service - _, err = s.inventory.CreateEntity(ctx, &inventory.CreateEntityRequest{ - Entity: &inventory.Entity{ - Uri: fmt.Sprintf("entity:service:%s", req.ComponentId), - Facts: []*inventory.Fact{ - { - Name: "githubOwner", - Value: os.Getenv("BOSS_GH_USERNAME"), - }, - { - Name: "githubRepo", - Value: req.ComponentId, - }, - { - Name: "backstageTemplate", - Value: req.TemplateId, - }, - }, - }, - }) - - if err != nil { - return nil, status.Error(codes.Internal, fmt.Sprintf("Failed to register the entity in the inventory %s", err)) - } - - return &pb.CreateReply{ - ComponentId: req.ComponentId, - }, nil -} - -// ListTemplates returns the local templatess -func (s *Server) ListTemplates(ctx context.Context, req *pb.Empty) (*pb.ListTemplatesReply, error) { - // TODO(blam): yes we currently read the disk on every load. but it's fine for now 🤷‍♂️ - definitions, err := s.repository.Load() - var templates []*pb.Template - - for _, definition := range definitions { - template := &pb.Template{ - Id: definition.ID, - Name: definition.Name, - Description: definition.Description, - - // need to actually call the idenity service here to get the - // actual user and propgate back when needed. - User: &identity.User{ - Id: "spotify", - Name: "Spotify", - }, - } - - templates = append(templates, template) - } - - return &pb.ListTemplatesReply{ - Templates: templates, - }, err -} diff --git a/backend/scaffolder/app/server_test.go b/backend/scaffolder/app/server_test.go deleted file mode 100644 index 4e2597edef..0000000000 --- a/backend/scaffolder/app/server_test.go +++ /dev/null @@ -1,8 +0,0 @@ -package app - -import ( - "testing" -) - -func TestSample(t *testing.T) { -} diff --git a/backend/scaffolder/fs/fs.go b/backend/scaffolder/fs/fs.go deleted file mode 100644 index de4d720e66..0000000000 --- a/backend/scaffolder/fs/fs.go +++ /dev/null @@ -1,87 +0,0 @@ -package fs - -import ( - "fmt" - "io" - "io/ioutil" - "os" - "path" -) - -// Filesystem Repository -type Filesystem struct { -} - -func file(src, dst string) error { - var err error - var srcfd *os.File - var dstfd *os.File - var srcinfo os.FileInfo - - if srcfd, err = os.Open(src); err != nil { - return err - } - defer srcfd.Close() - - if dstfd, err = os.Create(dst); err != nil { - return err - } - defer dstfd.Close() - - if _, err = io.Copy(dstfd, srcfd); err != nil { - return err - } - if srcinfo, err = os.Stat(src); err != nil { - return err - } - return os.Chmod(dst, srcinfo.Mode()) -} - -func dir(src string, dst string) error { - var err error - var fds []os.FileInfo - var srcinfo os.FileInfo - - if srcinfo, err = os.Stat(src); err != nil { - return err - } - - if err = os.MkdirAll(dst, srcinfo.Mode()); err != nil { - return err - } - - if fds, err = ioutil.ReadDir(src); err != nil { - return err - } - for _, fd := range fds { - srcfp := path.Join(src, fd.Name()) - dstfp := path.Join(dst, fd.Name()) - - if fd.IsDir() { - if err = dir(srcfp, dstfp); err != nil { - fmt.Println(err) - } - } else { - if err = file(srcfp, dstfp); err != nil { - fmt.Println(err) - } - } - } - return nil -} - -// Template holds the template ID for copying -type Template struct { - ID string -} - -// PrepareTemplate will copy the local template to temp folder -// and return the temp location -func (f *Filesystem) PrepareTemplate(template Template) (string, error) { - tempDirectory, _ := ioutil.TempDir(os.TempDir(), template.ID) - if err := dir("./templates/"+template.ID, tempDirectory); err != nil { - return "", err - } - - return tempDirectory, nil -} diff --git a/backend/scaffolder/go.mod b/backend/scaffolder/go.mod deleted file mode 100644 index dd7fad4812..0000000000 --- a/backend/scaffolder/go.mod +++ /dev/null @@ -1,18 +0,0 @@ -module github.com/spotify/backstage/scaffolder - -go 1.13 - -replace ( - github.com/spotify/backstage/backend/proto => ./../proto - github.com/spotify/backstage/proto => ../proto -) - -require ( - github.com/golang/protobuf v1.3.3 - github.com/google/go-github/v29 v29.0.2 - github.com/spotify/backstage/backend/proto v0.0.0-00010101000000-000000000000 - github.com/spotify/backstage/proto v0.0.0-00010101000000-000000000000 - golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be - google.golang.org/grpc v1.27.0 - gopkg.in/src-d/go-git.v4 v4.13.1 -) diff --git a/backend/scaffolder/go.sum b/backend/scaffolder/go.sum deleted file mode 100644 index a49ade72a3..0000000000 --- a/backend/scaffolder/go.sum +++ /dev/null @@ -1,115 +0,0 @@ -cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/alcortesm/tgz v0.0.0-20161220082320-9c5fe88206d7/go.mod h1:6zEj6s6u/ghQa61ZWa/C2Aw3RkjiTBOix7dkqa1VLIs= -github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYUyUczH0OGQWaF5ceTx0UBShxjsH6f8oGKYe2c= -github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= -github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/emirpasic/gods v1.12.0 h1:QAUIPSaCu4G+POclxeqb3F+WPpdKqFGlw36+yOzGlrg= -github.com/emirpasic/gods v1.12.0/go.mod h1:YfzfFFoVP/catgzJb4IKIqXjX78Ha8FMSDh3ymbK86o= -github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= -github.com/gliderlabs/ssh v0.2.2/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= -github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58= -github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.2 h1:6nsPYzhq5kReh6QImI3k5qWzO4PEbvbIW2cwSfR/6xs= -github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.3 h1:gyjaxf+svBWX08ZjK86iN9geUJF0H6gp2IRKX6Nf6/I= -github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/google/go-cmp v0.2.0 h1:+dTQ8DZQJz0Mb/HjFlkptS1FeQ4cWSnN941F8aEG4SQ= -github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= -github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-github v17.0.0+incompatible h1:N0LgJ1j65A7kfXrZnUDaYCs/Sf4rEjNlfyDHW9dolSY= -github.com/google/go-github/v29 v29.0.2 h1:opYN6Wc7DOz7Ku3Oh4l7prmkOMwEcQxpFtxdU8N8Pts= -github.com/google/go-github/v29 v29.0.2/go.mod h1:CHKiKKPHJ0REzfwc14QMklvtHwCveD0PxlMjLlzAM5E= -github.com/google/go-querystring v1.0.0 h1:Xkwi/a1rcvNg1PPYe5vI8GbeBY/jrVuDX5ASuANWTrk= -github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= -github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A= -github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo= -github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= -github.com/kevinburke/ssh_config v0.0.0-20190725054713-01f96b0aa0cd h1:Coekwdh0v2wtGp9Gmz1Ze3eVRAWJMLokvN3QjdzCHLY= -github.com/kevinburke/ssh_config v0.0.0-20190725054713-01f96b0aa0cd/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM= -github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/pty v1.1.8/go.mod h1:O1sed60cT9XZ5uDucP5qwvh+TE3NnUj51EiZO/lmSfw= -github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= -github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/pelletier/go-buffruneio v0.2.0/go.mod h1:JkE26KsDizTr40EUHkXVtNPvgGtbSNq5BcowyYOWdKo= -github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/sergi/go-diff v1.0.0 h1:Kpca3qRNrduNnOQeazBd0ysaKrUJiIuISHxogkT9RPQ= -github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= -github.com/src-d/gcfg v1.4.0 h1:xXbNR5AlLSA315x2UO+fTSSAXCDf+Ar38/6oyGbDKQ4= -github.com/src-d/gcfg v1.4.0/go.mod h1:p/UMsR43ujA89BJY9duynAwIpvqEujIH/jFlfL7jWoI= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= -github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -github.com/xanzy/ssh-agent v0.2.1 h1:TCbipTQL2JiiCprBWx9frJ2eJlCYT00NmctrHxVAr70= -github.com/xanzy/ssh-agent v0.2.1/go.mod h1:mLlQY/MoOhWBj+gOGMQkOeiEvkx+8pJSI+0Bx9h2kr4= -golang.org/x/crypto v0.0.0-20190219172222-a4c6cb3142f2/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2 h1:VklqNMn3ovrHsnt90PveolxSbWFaJdECFbxSq0Mqo2M= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4 h1:HuIa8hRrWRSrqYzx1qI49NNxhdi2PrY7gxVSq1JjLDc= -golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= -golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190311183353-d8887717615a h1:oWX7TPOiFAMXLq8o0ikBYfCJVlRHBcsciT5bXOrH628= -golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190724013045-ca1201d0de80 h1:Ao/3l156eZf2AW5wK8a7/smtodRU+gha3+BeqJ69lRk= -golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be h1:vEDujvNQGv4jgYKudGeI/+DAX4Jffq6hpD55MmoEvKs= -golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a h1:1BGLXjeY4akVXGgbC9HugT3Jv3hCI0z56oJR5vAMgBU= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190221075227-b4e8571b14e0/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e h1:D5TXcfTk7xF7hvieo4QErS3qqCB4teTffacDWr7CI+0= -golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= -golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= -golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= -golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190729092621-ff9f1409240a/go.mod h1:jcCCGcm9btYwXyDqrUWc6MKQKKGJCWEQ3AfLSRIbEuI= -google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= -google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55 h1:gSJIx1SDwno+2ElGhA4+qG2zF97qiUzTM+rQ0klBOcE= -google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= -google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.27.0 h1:rRYRFMVgRv6E0D70Skyfsr28tDXIuuPZyWGMPdMcnXg= -google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/src-d/go-billy.v4 v4.3.2 h1:0SQA1pRztfTFx2miS8sA97XvooFeNOmvUenF4o0EcVg= -gopkg.in/src-d/go-billy.v4 v4.3.2/go.mod h1:nDjArDMp+XMs1aFAESLRjfGSgfvoYN0hDfzEk0GjC98= -gopkg.in/src-d/go-git-fixtures.v3 v3.5.0/go.mod h1:dLBcvytrw/TYZsNTWCnkNF2DSIlzWYqTe3rJR56Ac7g= -gopkg.in/src-d/go-git.v4 v4.13.1 h1:SRtFyV8Kxc0UP7aCHcijOMQGPxHSmMOPrzulQWolkYE= -gopkg.in/src-d/go-git.v4 v4.13.1/go.mod h1:nx5NYcxdKxq5fpltdHnPa2Exj4Sx0EclMWZQbYDu2z8= -gopkg.in/warnings.v0 v0.1.2 h1:wFXVbFY8DY5/xOe1ECiWdKCzZlxgshcYVNkBHstARME= -gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= -honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/backend/scaffolder/lib/cutter.go b/backend/scaffolder/lib/cutter.go deleted file mode 100644 index 98b313761c..0000000000 --- a/backend/scaffolder/lib/cutter.go +++ /dev/null @@ -1,62 +0,0 @@ -package lib - -import ( - "encoding/json" - "fmt" - "log" - "os" - "os/exec" -) - -// Cutter is the wrapper around cookiecutter -type Cutter struct { -} - -// CookieCutterTemplate holds the template ID and metadata for copying -type CookieCutterTemplate struct { - Path string - Metadata string - ComponentID string -} - -// WriteMetadata runs cookiecutter in the folder provided -func (c *Cutter) WriteMetadata(template CookieCutterTemplate) error { - var temporaryCookieCutter map[string]interface{} - err := json.Unmarshal([]byte(template.Metadata), &temporaryCookieCutter) - if err != nil { - return err - } - - temporaryCookieCutter["component_id"] = template.ComponentID - temporaryCookieCutter["_copy_without_render"] = []string{".github/workflows/*"} - finalMetadata, _ := json.Marshal(temporaryCookieCutter) - - file, err := os.Create(fmt.Sprintf("%s/cookiecutter.json", template.Path)) - - if err != nil { - return err - } - - defer file.Close() - - _, err = file.Write(finalMetadata) - - return err -} - -// Run will run the cookie cutter -func (c *Cutter) Run(template CookieCutterTemplate) error { - // TODO(blam): Probably need to wrap this in a timeout or something to avoid waiting to long - log.Printf("Running cookiecutter on %s", template.Path) - log.Printf("With metadata %s", template.Metadata) - - cmd := exec.Command("cookiecutter", "--no-input", "-v", template.Path) - cmd.Dir = template.Path - output, err := cmd.Output() - - if err != nil { - log.Printf("Cookie cutter failed with output: %s", output) - } - - return err -} diff --git a/backend/scaffolder/lib/git.go b/backend/scaffolder/lib/git.go deleted file mode 100644 index 455fae5850..0000000000 --- a/backend/scaffolder/lib/git.go +++ /dev/null @@ -1,94 +0,0 @@ -package lib - -import ( - "fmt" - "gopkg.in/src-d/go-git.v4" - "gopkg.in/src-d/go-git.v4/config" - "gopkg.in/src-d/go-git.v4/plumbing/object" - "log" - "os" - "time" -) - -// Git is the wrapper around Git -type Git struct{} - -// PushRepositoryOptions holds the arguments for the push -type PushRepositoryOptions struct { - TempFolder string - ComponentID string - Org string -} - -// Push will push the repository to github -func (g *Git) Push(options PushRepositoryOptions) error { - // use git bindings to add the remote with access token and push to the directory - repo, err := git.PlainInit( - fmt.Sprintf("%s/%s", options.TempFolder, options.ComponentID), - false, - ) - - if err != nil { - log.Printf("Failed to init the git repository") - return err - } - - worktree, err := repo.Worktree() - if err != nil { - log.Printf("Failed to create the worktree") - return err - } - - _, err = worktree.Add(".") - if err != nil { - log.Printf("Failed to add the files to the worktre") - return err - } - - _, err = worktree.Commit("Initial Commit", &git.CommitOptions{ - Author: &object.Signature{ - Name: "Backstage", - Email: "backstage@spotfy.com", - When: time.Now(), - }, - }) - - if err != nil { - log.Printf("Failed to create the initial commit") - return err - } - - var org string = os.Getenv("BOSS_GH_USERNAME") - if options.Org != "" { - org = options.Org - } - - remote := fmt.Sprintf( - "https://%s:%s@github.com/%s/%s.git", - os.Getenv("BOSS_GH_USERNAME"), - os.Getenv("BOSS_GH_ACCESS_TOKEN"), - org, - options.ComponentID, - ) - - _, err = repo.CreateRemote(&config.RemoteConfig{ - Name: "github", - URLs: []string{remote}, - }) - - if err != nil { - log.Printf("Failed to create the remote") - return err - } - - err = repo.Push(&git.PushOptions{ - RemoteName: "github", - }) - - if err != nil { - log.Printf("Failled to push the repository") - return err - } - - return nil -} diff --git a/backend/scaffolder/lib/github.go b/backend/scaffolder/lib/github.go deleted file mode 100644 index 8c7f03bdf1..0000000000 --- a/backend/scaffolder/lib/github.go +++ /dev/null @@ -1,61 +0,0 @@ -package lib - -import ( - "context" - gh "github.com/google/go-github/v29/github" - "golang.org/x/oauth2" - "log" - "os" -) - -// Github is the exported struct -type Github struct { - client *gh.Client - ctx *context.Context -} - -// NewGithubClient returns a new client with the correct access token enabled -func NewGithubClient() *Github { - accessToken := os.Getenv("BOSS_GH_ACCESS_TOKEN") - - if accessToken == "" { - log.Fatal("No BOSS_GH_ACCESS_TOKEN set. Cannot continue") - } - - ctx := context.Background() - ts := oauth2.StaticTokenSource( - &oauth2.Token{AccessToken: accessToken}, - ) - tc := oauth2.NewClient(ctx, ts) - client := gh.NewClient(tc) - - return &Github{ - client: client, - ctx: &ctx, - } -} - -// Repository holds the information of the created repo -type Repository struct { - Org string - Name string - Private bool -} - -// CreateRepository will create the repository in Github ready for use by the scaffolder -func (g *Github) CreateRepository(repo Repository) (*gh.Repository, error) { - ghRepo := &gh.Repository{ - Name: &repo.Name, - Private: &repo.Private, - } - - var org string - - if repo.Org != "" { - org = repo.Org - } - - created, _, err := g.client.Repositories.Create(*g.ctx, org, ghRepo) - - return created, err -} diff --git a/backend/scaffolder/main.go b/backend/scaffolder/main.go deleted file mode 100644 index 8bd6f3f5c0..0000000000 --- a/backend/scaffolder/main.go +++ /dev/null @@ -1,28 +0,0 @@ -package main - -import ( - "log" - "net" - - pb "github.com/spotify/backstage/backend/proto/scaffolder/v1" - "github.com/spotify/backstage/scaffolder/app" - "google.golang.org/grpc" -) - -const ( - port = ":50051" -) - -func main() { - lis, err := net.Listen("tcp", port) - if err != nil { - log.Fatalf("failed to listen: %v", err) - } - - grpcServer := grpc.NewServer() - serverHandler := app.NewServer() - - pb.RegisterScaffolderServer(grpcServer, serverHandler) - log.Println("Serving Scaffolder Service") - grpcServer.Serve(lis) -} diff --git a/backend/scaffolder/repository/repository.go b/backend/scaffolder/repository/repository.go deleted file mode 100644 index 25b4cfce09..0000000000 --- a/backend/scaffolder/repository/repository.go +++ /dev/null @@ -1,50 +0,0 @@ -package repository - -import ( - "encoding/json" - "fmt" - "io/ioutil" - "path/filepath" -) - -// Repository Repository -type Repository struct{} - -// TemplateDefinition maps to whats stored in the repo -type TemplateDefinition struct { - ID string - Name string - Description string - OwnerID string -} - -// Load will return all the Repository templates -func (s *Repository) Load() ([]*TemplateDefinition, error) { - var templateDefinitions []*TemplateDefinition - - templateInfoFilePaths, err := filepath.Glob("templates/**/template-info.json") - - if err != nil { - fmt.Errorf("failed to load template-info files") - return nil, err - } - - for _, templatePath := range templateInfoFilePaths { - content, err := ioutil.ReadFile(templatePath) - if err != nil { - fmt.Errorf("failed to load path for %s", templatePath) - continue - } - - definition := TemplateDefinition{} - err = json.Unmarshal([]byte(content), &definition) - if err != nil { - fmt.Errorf("failed to unmarshal %s", templatePath) - continue - } - - templateDefinitions = append(templateDefinitions, &definition) - } - - return templateDefinitions, nil -} diff --git a/backend/scaffolder/templates/android-kotlin-app-template/cookiecutter.json b/backend/scaffolder/templates/android-kotlin-app-template/cookiecutter.json deleted file mode 100644 index 3a1db16624..0000000000 --- a/backend/scaffolder/templates/android-kotlin-app-template/cookiecutter.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "app_id": "com.example.app", - "app_name": "SampleApp", - "owner": "", - "description": "We promise to update this description /{{cookiecutter.owner}}" -} diff --git a/backend/scaffolder/templates/android-kotlin-app-template/custom-fields.json b/backend/scaffolder/templates/android-kotlin-app-template/custom-fields.json deleted file mode 100644 index c976b6785e..0000000000 --- a/backend/scaffolder/templates/android-kotlin-app-template/custom-fields.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "schema": [ - { - "id": "app_name", - "title": "App name", - "type": "text", - "description": "App name used to generate Android Studio files and class names. CamelCase e.g. 'MyAndroidApp'", - "validators": [ - { - "type": "required" - }, - { - "type": "regex", - "match": "^[A-Z][A-Za-z]+$", - "message": "Project name must be CamelCase" - } - ] - }, - { - "id": "app_id", - "title": "App ID", - "type": "text", - "description": "App id used as package for the new app. FQDN e.g. 'com.example.app'", - "validators": [ - { - "type": "required" - }, - { - "type": "regex", - "match": "^[a-z][a-z.]+$", - "message": "App ID must be a fully qualified domain name" - } - ] - }, - { - "id": "owner", - "title": "owner", - "type": "text", - "description": "The owner name used to identify the owner of this component", - "validators": [ - { - "type": "required" - }, - { - "type": "string-range", - "min": 4, - "max": 33 - }, - { - "type": "regex", - "match": "^[a-z][a-z0-9]+$", - "message": "Owner names must consist only of lowercase letters" - } - ] - } - ] -} diff --git a/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/.gitignore b/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/.gitignore deleted file mode 100644 index 603b140773..0000000000 --- a/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/.gitignore +++ /dev/null @@ -1,14 +0,0 @@ -*.iml -.gradle -/local.properties -/.idea/caches -/.idea/libraries -/.idea/modules.xml -/.idea/workspace.xml -/.idea/navEditor.xml -/.idea/assetWizardSettings.xml -.DS_Store -/build -/captures -.externalNativeBuild -.cxx diff --git a/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/app/.gitignore b/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/app/.gitignore deleted file mode 100644 index 796b96d1c4..0000000000 --- a/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/app/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/build diff --git a/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/app/build.gradle b/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/app/build.gradle deleted file mode 100644 index 3f985e756e..0000000000 --- a/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/app/build.gradle +++ /dev/null @@ -1,37 +0,0 @@ -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'kotlin-android-extensions' - -android { - compileSdkVersion 29 - buildToolsVersion "29.0.2" - - defaultConfig { - applicationId "{{cookiecutter.app_id}}" - minSdkVersion 21 - targetSdkVersion 29 - versionCode 1 - versionName "1.0" - - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - } - - buildTypes { - release { - minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' - } - } - -} - -dependencies { - implementation fileTree(dir: 'libs', include: ['*.jar']) - implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" - implementation 'androidx.appcompat:appcompat:1.1.0' - implementation 'androidx.core:core-ktx:1.1.0' - implementation 'androidx.constraintlayout:constraintlayout:1.1.3' - testImplementation 'junit:junit:4.12' - androidTestImplementation 'androidx.test.ext:junit:1.1.1' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' -} diff --git a/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/app/proguard-rules.pro b/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/app/proguard-rules.pro deleted file mode 100644 index f1b424510d..0000000000 --- a/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/app/proguard-rules.pro +++ /dev/null @@ -1,21 +0,0 @@ -# Add project specific ProGuard rules here. -# You can control the set of applied configuration files using the -# proguardFiles setting in build.gradle. -# -# For more details, see -# http://developer.android.com/guide/developing/tools/proguard.html - -# If your project uses WebView with JS, uncomment the following -# and specify the fully qualified class name to the JavaScript interface -# class: -#-keepclassmembers class fqcn.of.javascript.interface.for.webview { -# public *; -#} - -# Uncomment this to preserve the line number information for -# debugging stack traces. -#-keepattributes SourceFile,LineNumberTable - -# If you keep the line number information, uncomment this to -# hide the original source file name. -#-renamesourcefileattribute SourceFile diff --git a/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/app/src/androidTest/java/{{cookiecutter.app_id}}/ExampleInstrumentedTest.kt b/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/app/src/androidTest/java/{{cookiecutter.app_id}}/ExampleInstrumentedTest.kt deleted file mode 100644 index 8007f73724..0000000000 --- a/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/app/src/androidTest/java/{{cookiecutter.app_id}}/ExampleInstrumentedTest.kt +++ /dev/null @@ -1,24 +0,0 @@ -package {{cookiecutter.app_id}} - -import androidx.test.platform.app.InstrumentationRegistry -import androidx.test.ext.junit.runners.AndroidJUnit4 - -import org.junit.Test -import org.junit.runner.RunWith - -import org.junit.Assert.* - -/** - * Instrumented test, which will execute on an Android device. - * - * See [testing documentation](http://d.android.com/tools/testing). - */ -@RunWith(AndroidJUnit4::class) -class ExampleInstrumentedTest { - @Test - fun useAppContext() { - // Context of the app under test. - val appContext = InstrumentationRegistry.getInstrumentation().targetContext - assertEquals("com.example.mytemplate", appContext.packageName) - } -} diff --git a/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/app/src/main/AndroidManifest.xml b/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/app/src/main/AndroidManifest.xml deleted file mode 100644 index ed5c38fd5b..0000000000 --- a/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/app/src/main/AndroidManifest.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - \ No newline at end of file diff --git a/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/app/src/main/java/{{cookiecutter.app_id}}/MainActivity.kt b/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/app/src/main/java/{{cookiecutter.app_id}}/MainActivity.kt deleted file mode 100644 index 52875c19ff..0000000000 --- a/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/app/src/main/java/{{cookiecutter.app_id}}/MainActivity.kt +++ /dev/null @@ -1,12 +0,0 @@ -package {{cookiecutter.app_id}} - -import androidx.appcompat.app.AppCompatActivity -import android.os.Bundle - -class MainActivity : AppCompatActivity() { - - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - setContentView(R.layout.activity_main) - } -} diff --git a/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/app/src/main/res/drawable-v24/ic_launcher_foreground.xml deleted file mode 100644 index 2b068d1146..0000000000 --- a/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/app/src/main/res/drawable-v24/ic_launcher_foreground.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/app/src/main/res/drawable/ic_launcher_background.xml b/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/app/src/main/res/drawable/ic_launcher_background.xml deleted file mode 100644 index 07d5da9cbf..0000000000 --- a/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/app/src/main/res/drawable/ic_launcher_background.xml +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/app/src/main/res/layout/activity_main.xml b/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/app/src/main/res/layout/activity_main.xml deleted file mode 100644 index 385886aa1b..0000000000 --- a/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/app/src/main/res/layout/activity_main.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml deleted file mode 100644 index eca70cfe52..0000000000 --- a/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml deleted file mode 100644 index eca70cfe52..0000000000 --- a/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/app/src/main/res/mipmap-hdpi/ic_launcher.png b/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/app/src/main/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index a571e60098..0000000000 Binary files a/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/app/src/main/res/mipmap-hdpi/ic_launcher.png and /dev/null differ diff --git a/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/app/src/main/res/mipmap-hdpi/ic_launcher_round.png deleted file mode 100644 index 61da551c55..0000000000 Binary files a/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/app/src/main/res/mipmap-hdpi/ic_launcher_round.png and /dev/null differ diff --git a/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/app/src/main/res/mipmap-mdpi/ic_launcher.png b/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/app/src/main/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index c41dd28531..0000000000 Binary files a/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/app/src/main/res/mipmap-mdpi/ic_launcher.png and /dev/null differ diff --git a/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/app/src/main/res/mipmap-mdpi/ic_launcher_round.png deleted file mode 100644 index db5080a752..0000000000 Binary files a/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/app/src/main/res/mipmap-mdpi/ic_launcher_round.png and /dev/null differ diff --git a/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/app/src/main/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index 6dba46dab1..0000000000 Binary files a/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/app/src/main/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ diff --git a/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png deleted file mode 100644 index da31a871c8..0000000000 Binary files a/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png and /dev/null differ diff --git a/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/app/src/main/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index 15ac681720..0000000000 Binary files a/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/app/src/main/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ diff --git a/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png deleted file mode 100644 index b216f2d313..0000000000 Binary files a/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png and /dev/null differ diff --git a/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index f25a419744..0000000000 Binary files a/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ diff --git a/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png deleted file mode 100644 index e96783ccce..0000000000 Binary files a/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png and /dev/null differ diff --git a/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/app/src/main/res/values/colors.xml b/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/app/src/main/res/values/colors.xml deleted file mode 100644 index 030098fe0f..0000000000 --- a/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/app/src/main/res/values/colors.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - #6200EE - #3700B3 - #03DAC5 - diff --git a/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/app/src/main/res/values/strings.xml b/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/app/src/main/res/values/strings.xml deleted file mode 100644 index 7536cf0385..0000000000 --- a/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/app/src/main/res/values/strings.xml +++ /dev/null @@ -1,3 +0,0 @@ - - {{cookiecutter.app_name}} - diff --git a/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/app/src/main/res/values/styles.xml b/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/app/src/main/res/values/styles.xml deleted file mode 100644 index 5885930df6..0000000000 --- a/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/app/src/main/res/values/styles.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - diff --git a/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/app/src/test/java/{{cookiecutter.app_id}}/ExampleUnitTest.kt b/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/app/src/test/java/{{cookiecutter.app_id}}/ExampleUnitTest.kt deleted file mode 100644 index ab799dcad8..0000000000 --- a/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/app/src/test/java/{{cookiecutter.app_id}}/ExampleUnitTest.kt +++ /dev/null @@ -1,17 +0,0 @@ -package {{cookiecutter.app_id}} - -import org.junit.Test - -import org.junit.Assert.* - -/** - * Example local unit test, which will execute on the development machine (host). - * - * See [testing documentation](http://d.android.com/tools/testing). - */ -class ExampleUnitTest { - @Test - fun addition_isCorrect() { - assertEquals(4, 2 + 2) - } -} diff --git a/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/build.gradle b/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/build.gradle deleted file mode 100644 index e946d57290..0000000000 --- a/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/build.gradle +++ /dev/null @@ -1,29 +0,0 @@ -// Top-level build file where you can add configuration options common to all sub-projects/modules. - -buildscript { - ext.kotlin_version = '1.3.61' - repositories { - google() - jcenter() - - } - dependencies { - classpath 'com.android.tools.build:gradle:3.6.0-rc01' - classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" - - // NOTE: Do not place your application dependencies here; they belong - // in the individual module build.gradle files - } -} - -allprojects { - repositories { - google() - jcenter() - - } -} - -task clean(type: Delete) { - delete rootProject.buildDir -} diff --git a/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/gradle.properties b/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/gradle.properties deleted file mode 100644 index 23339e0df6..0000000000 --- a/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/gradle.properties +++ /dev/null @@ -1,21 +0,0 @@ -# Project-wide Gradle settings. -# IDE (e.g. Android Studio) users: -# Gradle settings configured through the IDE *will override* -# any settings specified in this file. -# For more details on how to configure your build environment visit -# http://www.gradle.org/docs/current/userguide/build_environment.html -# Specifies the JVM arguments used for the daemon process. -# The setting is particularly useful for tweaking memory settings. -org.gradle.jvmargs=-Xmx1536m -# When configured, Gradle will run in incubating parallel mode. -# This option should only be used with decoupled projects. More details, visit -# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects -# org.gradle.parallel=true -# AndroidX package structure to make it clearer which packages are bundled with the -# Android operating system, and which are packaged with your app's APK -# https://developer.android.com/topic/libraries/support-library/androidx-rn -android.useAndroidX=true -# Automatically convert third-party libraries to use AndroidX -android.enableJetifier=true -# Kotlin code style for this project: "official" or "obsolete": -kotlin.code.style=official diff --git a/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/gradle/wrapper/gradle-wrapper.jar b/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/gradle/wrapper/gradle-wrapper.jar deleted file mode 100644 index f3d88b1c2f..0000000000 Binary files a/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/gradle/wrapper/gradle-wrapper.jar and /dev/null differ diff --git a/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/gradle/wrapper/gradle-wrapper.properties b/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/gradle/wrapper/gradle-wrapper.properties deleted file mode 100644 index 4e1cc9db6b..0000000000 --- a/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/gradle/wrapper/gradle-wrapper.properties +++ /dev/null @@ -1,5 +0,0 @@ -distributionBase=GRADLE_USER_HOME -distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip -zipStoreBase=GRADLE_USER_HOME -zipStorePath=wrapper/dists diff --git a/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/gradlew b/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/gradlew deleted file mode 100755 index 2fe81a7d95..0000000000 --- a/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/gradlew +++ /dev/null @@ -1,183 +0,0 @@ -#!/usr/bin/env sh - -# -# Copyright 2015 the original author or authors. -# -# Licensed 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 -# -# https://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. -# - -############################################################################## -## -## Gradle start up script for UN*X -## -############################################################################## - -# Attempt to set APP_HOME -# Resolve links: $0 may be a link -PRG="$0" -# Need this for relative symlinks. -while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG=`dirname "$PRG"`"/$link" - fi -done -SAVED="`pwd`" -cd "`dirname \"$PRG\"`/" >/dev/null -APP_HOME="`pwd -P`" -cd "$SAVED" >/dev/null - -APP_NAME="Gradle" -APP_BASE_NAME=`basename "$0"` - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' - -# Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD="maximum" - -warn () { - echo "$*" -} - -die () { - echo - echo "$*" - echo - exit 1 -} - -# OS specific support (must be 'true' or 'false'). -cygwin=false -msys=false -darwin=false -nonstop=false -case "`uname`" in - CYGWIN* ) - cygwin=true - ;; - Darwin* ) - darwin=true - ;; - MINGW* ) - msys=true - ;; - NONSTOP* ) - nonstop=true - ;; -esac - -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar - -# Determine the Java command to use to start the JVM. -if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - if [ ! -x "$JAVACMD" ] ; then - die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." - fi -else - JAVACMD="java" - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." -fi - -# Increase the maximum file descriptors if we can. -if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then - MAX_FD_LIMIT=`ulimit -H -n` - if [ $? -eq 0 ] ; then - if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then - MAX_FD="$MAX_FD_LIMIT" - fi - ulimit -n $MAX_FD - if [ $? -ne 0 ] ; then - warn "Could not set maximum file descriptor limit: $MAX_FD" - fi - else - warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" - fi -fi - -# For Darwin, add options to specify how the application appears in the dock -if $darwin; then - GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" -fi - -# For Cygwin or MSYS, switch paths to Windows format before running java -if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then - APP_HOME=`cygpath --path --mixed "$APP_HOME"` - CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` - JAVACMD=`cygpath --unix "$JAVACMD"` - - # We build the pattern for arguments to be converted via cygpath - ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` - SEP="" - for dir in $ROOTDIRSRAW ; do - ROOTDIRS="$ROOTDIRS$SEP$dir" - SEP="|" - done - OURCYGPATTERN="(^($ROOTDIRS))" - # Add a user-defined pattern to the cygpath arguments - if [ "$GRADLE_CYGPATTERN" != "" ] ; then - OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" - fi - # Now convert the arguments - kludge to limit ourselves to /bin/sh - i=0 - for arg in "$@" ; do - CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` - CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option - - if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition - eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` - else - eval `echo args$i`="\"$arg\"" - fi - i=`expr $i + 1` - done - case $i in - 0) set -- ;; - 1) set -- "$args0" ;; - 2) set -- "$args0" "$args1" ;; - 3) set -- "$args0" "$args1" "$args2" ;; - 4) set -- "$args0" "$args1" "$args2" "$args3" ;; - 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; - esac -fi - -# Escape application args -save () { - for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done - echo " " -} -APP_ARGS=`save "$@"` - -# Collect all arguments for the java command, following the shell quoting and substitution rules -eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" - -exec "$JAVACMD" "$@" diff --git a/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/gradlew.bat b/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/gradlew.bat deleted file mode 100644 index 24467a141f..0000000000 --- a/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/gradlew.bat +++ /dev/null @@ -1,100 +0,0 @@ -@rem -@rem Copyright 2015 the original author or authors. -@rem -@rem Licensed under the Apache License, Version 2.0 (the "License"); -@rem you may not use this file except in compliance with the License. -@rem You may obtain a copy of the License at -@rem -@rem https://www.apache.org/licenses/LICENSE-2.0 -@rem -@rem Unless required by applicable law or agreed to in writing, software -@rem distributed under the License is distributed on an "AS IS" BASIS, -@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -@rem See the License for the specific language governing permissions and -@rem limitations under the License. -@rem - -@if "%DEBUG%" == "" @echo off -@rem ########################################################################## -@rem -@rem Gradle startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal - -set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" - -@rem Find java.exe -if defined JAVA_HOME goto findJavaFromJavaHome - -set JAVA_EXE=java.exe -%JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto init - -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto init - -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:init -@rem Get command-line arguments, handling Windows variants - -if not "%OS%" == "Windows_NT" goto win9xME_args - -:win9xME_args -@rem Slurp the command line arguments. -set CMD_LINE_ARGS= -set _SKIP=2 - -:win9xME_args_slurp -if "x%~1" == "x" goto execute - -set CMD_LINE_ARGS=%* - -:execute -@rem Setup the command line - -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar - -@rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% - -:end -@rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega diff --git a/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/settings.gradle b/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/settings.gradle deleted file mode 100644 index ff0da436dc..0000000000 --- a/backend/scaffolder/templates/android-kotlin-app-template/{{cookiecutter.app_name}}/settings.gradle +++ /dev/null @@ -1,2 +0,0 @@ -rootProject.name='{{cookiecutter.app_name}}' -include ':app' diff --git a/backend/scaffolder/templates/android-kotlin-module-template/cookiecutter.json b/backend/scaffolder/templates/android-kotlin-module-template/cookiecutter.json deleted file mode 100644 index 3e454acc28..0000000000 --- a/backend/scaffolder/templates/android-kotlin-module-template/cookiecutter.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "module_id": "com.example.module", - "module_name": "SampleModule", - "owner": "", - "description": "We promise to update this description /{{cookiecutter.owner}}" -} diff --git a/backend/scaffolder/templates/android-kotlin-module-template/custom-fields.json b/backend/scaffolder/templates/android-kotlin-module-template/custom-fields.json deleted file mode 100644 index 1dc68ee741..0000000000 --- a/backend/scaffolder/templates/android-kotlin-module-template/custom-fields.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "schema": [ - { - "id": "module_name", - "title": "Module name", - "type": "text", - "description": "Module name used to generate Android Studio files and class names. CamelCase e.g. 'MyNewModule'", - "validators": [ - { - "type": "required" - }, - { - "type": "regex", - "match": "^[A-Z][A-Za-z]+$", - "message": "Module name must be CamelCase" - } - ] - }, - { - "id": "module_id", - "title": "Module ID", - "type": "text", - "description": "Module id used as package for the new module. FQDN e.g. 'com.example.module'", - "validators": [ - { - "type": "required" - }, - { - "type": "regex", - "match": "^[a-z][a-z.]+$", - "message": "Module ID must be a fully qualified domain name" - } - ] - }, - { - "id": "owner", - "title": "owner", - "type": "text", - "description": "The owner name used to identify the owner of this component", - "validators": [ - { - "type": "required" - }, - { - "type": "string-range", - "min": 4, - "max": 33 - }, - { - "type": "regex", - "match": "^[a-z][a-z0-9]+$", - "message": "Owner names must consist only of lowercase letters" - } - ] - } - ] -} diff --git a/backend/scaffolder/templates/android-kotlin-module-template/out/SampleModule/.gitignore b/backend/scaffolder/templates/android-kotlin-module-template/out/SampleModule/.gitignore deleted file mode 100644 index 796b96d1c4..0000000000 --- a/backend/scaffolder/templates/android-kotlin-module-template/out/SampleModule/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/build diff --git a/backend/scaffolder/templates/android-kotlin-module-template/out/SampleModule/build.gradle b/backend/scaffolder/templates/android-kotlin-module-template/out/SampleModule/build.gradle deleted file mode 100644 index 468d82a835..0000000000 --- a/backend/scaffolder/templates/android-kotlin-module-template/out/SampleModule/build.gradle +++ /dev/null @@ -1,36 +0,0 @@ -apply plugin: 'com.android.library' -apply plugin: 'kotlin-android' -apply plugin: 'kotlin-android-extensions' - -android { - compileSdkVersion 29 - buildToolsVersion "29.0.2" - - defaultConfig { - minSdkVersion 21 - targetSdkVersion 29 - versionCode 1 - versionName "1.0" - - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - consumerProguardFiles 'consumer-rules.pro' - } - - buildTypes { - release { - minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' - } - } - -} - -dependencies { - implementation fileTree(dir: 'libs', include: ['*.jar']) - implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" - implementation 'androidx.appcompat:appcompat:1.1.0' - implementation 'androidx.core:core-ktx:1.2.0' - testImplementation 'junit:junit:4.12' - androidTestImplementation 'androidx.test.ext:junit:1.1.1' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' -} diff --git a/backend/scaffolder/templates/android-kotlin-module-template/out/SampleModule/consumer-rules.pro b/backend/scaffolder/templates/android-kotlin-module-template/out/SampleModule/consumer-rules.pro deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/backend/scaffolder/templates/android-kotlin-module-template/out/SampleModule/proguard-rules.pro b/backend/scaffolder/templates/android-kotlin-module-template/out/SampleModule/proguard-rules.pro deleted file mode 100644 index f1b424510d..0000000000 --- a/backend/scaffolder/templates/android-kotlin-module-template/out/SampleModule/proguard-rules.pro +++ /dev/null @@ -1,21 +0,0 @@ -# Add project specific ProGuard rules here. -# You can control the set of applied configuration files using the -# proguardFiles setting in build.gradle. -# -# For more details, see -# http://developer.android.com/guide/developing/tools/proguard.html - -# If your project uses WebView with JS, uncomment the following -# and specify the fully qualified class name to the JavaScript interface -# class: -#-keepclassmembers class fqcn.of.javascript.interface.for.webview { -# public *; -#} - -# Uncomment this to preserve the line number information for -# debugging stack traces. -#-keepattributes SourceFile,LineNumberTable - -# If you keep the line number information, uncomment this to -# hide the original source file name. -#-renamesourcefileattribute SourceFile diff --git a/backend/scaffolder/templates/android-kotlin-module-template/out/SampleModule/src/androidTest/java/com.example.module/ExampleInstrumentedTest.kt b/backend/scaffolder/templates/android-kotlin-module-template/out/SampleModule/src/androidTest/java/com.example.module/ExampleInstrumentedTest.kt deleted file mode 100644 index 3e5ff59ba7..0000000000 --- a/backend/scaffolder/templates/android-kotlin-module-template/out/SampleModule/src/androidTest/java/com.example.module/ExampleInstrumentedTest.kt +++ /dev/null @@ -1,24 +0,0 @@ -package com.example.module - -import androidx.test.platform.app.InstrumentationRegistry -import androidx.test.ext.junit.runners.AndroidJUnit4 - -import org.junit.Test -import org.junit.runner.RunWith - -import org.junit.Assert.* - -/** - * Instrumented test, which will execute on an Android device. - * - * See [testing documentation](http://d.android.com/tools/testing). - */ -@RunWith(AndroidJUnit4::class) -class ExampleInstrumentedTest { - @Test - fun useAppContext() { - // Context of the app under test. - val appContext = InstrumentationRegistry.getInstrumentation().targetContext - assertEquals("com.example.mylibrary.test", appContext.packageName) - } -} diff --git a/backend/scaffolder/templates/android-kotlin-module-template/out/SampleModule/src/main/AndroidManifest.xml b/backend/scaffolder/templates/android-kotlin-module-template/out/SampleModule/src/main/AndroidManifest.xml deleted file mode 100644 index 6b99aadb41..0000000000 --- a/backend/scaffolder/templates/android-kotlin-module-template/out/SampleModule/src/main/AndroidManifest.xml +++ /dev/null @@ -1,2 +0,0 @@ - diff --git a/backend/scaffolder/templates/android-kotlin-module-template/out/SampleModule/src/main/java/com.example.module/ExampleModuleClass.kt b/backend/scaffolder/templates/android-kotlin-module-template/out/SampleModule/src/main/java/com.example.module/ExampleModuleClass.kt deleted file mode 100644 index a37d158a99..0000000000 --- a/backend/scaffolder/templates/android-kotlin-module-template/out/SampleModule/src/main/java/com.example.module/ExampleModuleClass.kt +++ /dev/null @@ -1,8 +0,0 @@ -package com.example.module - -/** - * This is just an entry point for your new module - */ -class ExampleModuleClass { - -} diff --git a/backend/scaffolder/templates/android-kotlin-module-template/out/SampleModule/src/test/java/com.example.module/ExampleUnitTest.kt b/backend/scaffolder/templates/android-kotlin-module-template/out/SampleModule/src/test/java/com.example.module/ExampleUnitTest.kt deleted file mode 100644 index c4a02135f3..0000000000 --- a/backend/scaffolder/templates/android-kotlin-module-template/out/SampleModule/src/test/java/com.example.module/ExampleUnitTest.kt +++ /dev/null @@ -1,17 +0,0 @@ -package com.example.module - -import org.junit.Test - -import org.junit.Assert.* - -/** - * Example local unit test, which will execute on the development machine (host). - * - * See [testing documentation](http://d.android.com/tools/testing). - */ -class ExampleUnitTest { - @Test - fun addition_isCorrect() { - assertEquals(4, 2 + 2) - } -} diff --git a/backend/scaffolder/templates/android-kotlin-module-template/template-info.json b/backend/scaffolder/templates/android-kotlin-module-template/template-info.json deleted file mode 100644 index 45d4e158b9..0000000000 --- a/backend/scaffolder/templates/android-kotlin-module-template/template-info.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "id": "android-kotlin-module-template", - "name": "Kotlin Module", - "description": "Kotlin module sample", - "ownerId": "ownerId" -} \ No newline at end of file diff --git a/backend/scaffolder/templates/android-kotlin-module-template/{{cookiecutter.module_name}}/.gitignore b/backend/scaffolder/templates/android-kotlin-module-template/{{cookiecutter.module_name}}/.gitignore deleted file mode 100644 index 796b96d1c4..0000000000 --- a/backend/scaffolder/templates/android-kotlin-module-template/{{cookiecutter.module_name}}/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/build diff --git a/backend/scaffolder/templates/android-kotlin-module-template/{{cookiecutter.module_name}}/build.gradle b/backend/scaffolder/templates/android-kotlin-module-template/{{cookiecutter.module_name}}/build.gradle deleted file mode 100644 index 468d82a835..0000000000 --- a/backend/scaffolder/templates/android-kotlin-module-template/{{cookiecutter.module_name}}/build.gradle +++ /dev/null @@ -1,36 +0,0 @@ -apply plugin: 'com.android.library' -apply plugin: 'kotlin-android' -apply plugin: 'kotlin-android-extensions' - -android { - compileSdkVersion 29 - buildToolsVersion "29.0.2" - - defaultConfig { - minSdkVersion 21 - targetSdkVersion 29 - versionCode 1 - versionName "1.0" - - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - consumerProguardFiles 'consumer-rules.pro' - } - - buildTypes { - release { - minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' - } - } - -} - -dependencies { - implementation fileTree(dir: 'libs', include: ['*.jar']) - implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" - implementation 'androidx.appcompat:appcompat:1.1.0' - implementation 'androidx.core:core-ktx:1.2.0' - testImplementation 'junit:junit:4.12' - androidTestImplementation 'androidx.test.ext:junit:1.1.1' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' -} diff --git a/backend/scaffolder/templates/android-kotlin-module-template/{{cookiecutter.module_name}}/consumer-rules.pro b/backend/scaffolder/templates/android-kotlin-module-template/{{cookiecutter.module_name}}/consumer-rules.pro deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/backend/scaffolder/templates/android-kotlin-module-template/{{cookiecutter.module_name}}/proguard-rules.pro b/backend/scaffolder/templates/android-kotlin-module-template/{{cookiecutter.module_name}}/proguard-rules.pro deleted file mode 100644 index f1b424510d..0000000000 --- a/backend/scaffolder/templates/android-kotlin-module-template/{{cookiecutter.module_name}}/proguard-rules.pro +++ /dev/null @@ -1,21 +0,0 @@ -# Add project specific ProGuard rules here. -# You can control the set of applied configuration files using the -# proguardFiles setting in build.gradle. -# -# For more details, see -# http://developer.android.com/guide/developing/tools/proguard.html - -# If your project uses WebView with JS, uncomment the following -# and specify the fully qualified class name to the JavaScript interface -# class: -#-keepclassmembers class fqcn.of.javascript.interface.for.webview { -# public *; -#} - -# Uncomment this to preserve the line number information for -# debugging stack traces. -#-keepattributes SourceFile,LineNumberTable - -# If you keep the line number information, uncomment this to -# hide the original source file name. -#-renamesourcefileattribute SourceFile diff --git a/backend/scaffolder/templates/android-kotlin-module-template/{{cookiecutter.module_name}}/src/androidTest/java/{{cookiecutter.module_id}}/ExampleInstrumentedTest.kt b/backend/scaffolder/templates/android-kotlin-module-template/{{cookiecutter.module_name}}/src/androidTest/java/{{cookiecutter.module_id}}/ExampleInstrumentedTest.kt deleted file mode 100644 index 8c900adf7b..0000000000 --- a/backend/scaffolder/templates/android-kotlin-module-template/{{cookiecutter.module_name}}/src/androidTest/java/{{cookiecutter.module_id}}/ExampleInstrumentedTest.kt +++ /dev/null @@ -1,24 +0,0 @@ -package {{cookiecutter.module_id}} - -import androidx.test.platform.app.InstrumentationRegistry -import androidx.test.ext.junit.runners.AndroidJUnit4 - -import org.junit.Test -import org.junit.runner.RunWith - -import org.junit.Assert.* - -/** - * Instrumented test, which will execute on an Android device. - * - * See [testing documentation](http://d.android.com/tools/testing). - */ -@RunWith(AndroidJUnit4::class) -class ExampleInstrumentedTest { - @Test - fun useAppContext() { - // Context of the app under test. - val appContext = InstrumentationRegistry.getInstrumentation().targetContext - assertEquals("com.example.mylibrary.test", appContext.packageName) - } -} diff --git a/backend/scaffolder/templates/android-kotlin-module-template/{{cookiecutter.module_name}}/src/main/AndroidManifest.xml b/backend/scaffolder/templates/android-kotlin-module-template/{{cookiecutter.module_name}}/src/main/AndroidManifest.xml deleted file mode 100644 index 98ec238da0..0000000000 --- a/backend/scaffolder/templates/android-kotlin-module-template/{{cookiecutter.module_name}}/src/main/AndroidManifest.xml +++ /dev/null @@ -1,2 +0,0 @@ - diff --git a/backend/scaffolder/templates/android-kotlin-module-template/{{cookiecutter.module_name}}/src/main/java/{{cookiecutter.module_id}}/ExampleModuleClass.kt b/backend/scaffolder/templates/android-kotlin-module-template/{{cookiecutter.module_name}}/src/main/java/{{cookiecutter.module_id}}/ExampleModuleClass.kt deleted file mode 100644 index 17f98324b0..0000000000 --- a/backend/scaffolder/templates/android-kotlin-module-template/{{cookiecutter.module_name}}/src/main/java/{{cookiecutter.module_id}}/ExampleModuleClass.kt +++ /dev/null @@ -1,8 +0,0 @@ -package {{cookiecutter.module_id}} - -/** - * This is just an entry point for your new module - */ -class ExampleModuleClass { - -} diff --git a/backend/scaffolder/templates/android-kotlin-module-template/{{cookiecutter.module_name}}/src/test/java/{{cookiecutter.module_id}}/ExampleUnitTest.kt b/backend/scaffolder/templates/android-kotlin-module-template/{{cookiecutter.module_name}}/src/test/java/{{cookiecutter.module_id}}/ExampleUnitTest.kt deleted file mode 100644 index d245652f81..0000000000 --- a/backend/scaffolder/templates/android-kotlin-module-template/{{cookiecutter.module_name}}/src/test/java/{{cookiecutter.module_id}}/ExampleUnitTest.kt +++ /dev/null @@ -1,17 +0,0 @@ -package {{cookiecutter.module_id}} - -import org.junit.Test - -import org.junit.Assert.* - -/** - * Example local unit test, which will execute on the development machine (host). - * - * See [testing documentation](http://d.android.com/tools/testing). - */ -class ExampleUnitTest { - @Test - fun addition_isCorrect() { - assertEquals(4, 2 + 2) - } -} diff --git a/backend/scaffolder/templates/ios-swift-app-template/cookiecutter.json b/backend/scaffolder/templates/ios-swift-app-template/cookiecutter.json deleted file mode 100644 index d1813da0fa..0000000000 --- a/backend/scaffolder/templates/ios-swift-app-template/cookiecutter.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "component_id": "", - "owner": "", - "description": "We promise to update this description /{{cookiecutter.owner}}" -} diff --git a/backend/scaffolder/templates/ios-swift-app-template/custom-fields.json b/backend/scaffolder/templates/ios-swift-app-template/custom-fields.json deleted file mode 100644 index bff05e95c7..0000000000 --- a/backend/scaffolder/templates/ios-swift-app-template/custom-fields.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "schema": [ - { - "id": "component_id", - "title": "Project name", - "type": "text", - "description": "Project name used to generate Xcode files and class names. CamelCase e.g. 'MyProject'", - "validators": [ - { - "type": "required" - }, - { - "type": "regex", - "match": "^[A-Z][A-Za-z]+$", - "message": "Project name must be CamelCase" - } - ] - }, - { - "id": "owner", - "title": "owner", - "type": "text", - "description": "The owner name used to identify the owner of this component", - "validators": [ - { - "type": "required" - }, - { - "type": "string-range", - "min": 4, - "max": 33 - }, - { - "type": "regex", - "match": "^[a-z][a-z0-9]+$", - "message": "Owner names must consist only of lowercase letters" - } - ] - } - ] -} diff --git a/backend/scaffolder/templates/ios-swift-app-template/template-info.json b/backend/scaffolder/templates/ios-swift-app-template/template-info.json deleted file mode 100644 index 4e29396ce6..0000000000 --- a/backend/scaffolder/templates/ios-swift-app-template/template-info.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "id": "ios-swift-app-template", - "name": "Swift App", - "description": "The a sample swift app", - "ownerId": "ownerId" -} \ No newline at end of file diff --git a/backend/scaffolder/templates/ios-swift-app-template/{{cookiecutter.component_id}}/README.md b/backend/scaffolder/templates/ios-swift-app-template/{{cookiecutter.component_id}}/README.md deleted file mode 100644 index 20dd1dad67..0000000000 --- a/backend/scaffolder/templates/ios-swift-app-template/{{cookiecutter.component_id}}/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# iOS App - -This project provides a template project to generate an iOS App written in Swift. - -## Building and Testing - -You can directly open the `xcodeproj` and build from Xcode or run `build.sh` from the command line. \ No newline at end of file diff --git a/backend/scaffolder/templates/ios-swift-app-template/{{cookiecutter.component_id}}/build.sh b/backend/scaffolder/templates/ios-swift-app-template/{{cookiecutter.component_id}}/build.sh deleted file mode 100755 index b40a44923e..0000000000 --- a/backend/scaffolder/templates/ios-swift-app-template/{{cookiecutter.component_id}}/build.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/bash - -PLATFORM="platform=iOS Simulator,OS=13.0,name=iPhone 11" -SDK="iphonesimulator" - -set -e -function trap_handler() { - echo -e "\n\nFailed to build project" - exit 255 -} -trap trap_handler INT TERM EXIT - -echo "Building {{cookiecutter.component_id}}." -xcodebuild \ - -project {{cookiecutter.component_id}}.xcodeproj \ - -scheme {{cookiecutter.component_id}} \ - -sdk "$SDK" \ - -destination "$PLATFORM" \ - build -trap - EXIT -exit 0 diff --git a/backend/scaffolder/templates/ios-swift-app-template/{{cookiecutter.component_id}}/{{cookiecutter.component_id}}.xcodeproj/project.pbxproj b/backend/scaffolder/templates/ios-swift-app-template/{{cookiecutter.component_id}}/{{cookiecutter.component_id}}.xcodeproj/project.pbxproj deleted file mode 100644 index b48e86d615..0000000000 --- a/backend/scaffolder/templates/ios-swift-app-template/{{cookiecutter.component_id}}/{{cookiecutter.component_id}}.xcodeproj/project.pbxproj +++ /dev/null @@ -1,470 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 50; - objects = { - -/* Begin PBXBuildFile section */ - C5B1973423EAFA6D007C9A28 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = C5B1973323EAFA6D007C9A28 /* AppDelegate.swift */; }; - C5B1973623EAFA6D007C9A28 /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = C5B1973523EAFA6D007C9A28 /* SceneDelegate.swift */; }; - C5B1973823EAFA6D007C9A28 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C5B1973723EAFA6D007C9A28 /* ViewController.swift */; }; - C5B1973B23EAFA6D007C9A28 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = C5B1973923EAFA6D007C9A28 /* Main.storyboard */; }; - C5B1973D23EAFA6E007C9A28 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C5B1973C23EAFA6E007C9A28 /* Assets.xcassets */; }; - C5B1974023EAFA6E007C9A28 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = C5B1973E23EAFA6E007C9A28 /* LaunchScreen.storyboard */; }; - C5B1974B23EAFA6E007C9A28 /* {{cookiecutter.component_id}}Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C5B1974A23EAFA6E007C9A28 /* {{cookiecutter.component_id}}Tests.swift */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - C5B1974723EAFA6E007C9A28 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = C5B1972823EAFA6D007C9A28 /* Project object */; - proxyType = 1; - remoteGlobalIDString = C5B1972F23EAFA6D007C9A28; - remoteInfo = {{cookiecutter.component_id}}; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXFileReference section */ - C5B1973023EAFA6D007C9A28 /* {{cookiecutter.component_id}}.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = {{cookiecutter.component_id}}.app; sourceTree = BUILT_PRODUCTS_DIR; }; - C5B1973323EAFA6D007C9A28 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; - C5B1973523EAFA6D007C9A28 /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = ""; }; - C5B1973723EAFA6D007C9A28 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; - C5B1973A23EAFA6D007C9A28 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; - C5B1973C23EAFA6E007C9A28 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - C5B1973F23EAFA6E007C9A28 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; - C5B1974123EAFA6E007C9A28 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - C5B1974623EAFA6E007C9A28 /* {{cookiecutter.component_id}}Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = {{cookiecutter.component_id}}Tests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - C5B1974A23EAFA6E007C9A28 /* {{cookiecutter.component_id}}Tests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = {{cookiecutter.component_id}}Tests.swift; sourceTree = ""; }; - C5B1974C23EAFA6E007C9A28 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - C5B1972D23EAFA6D007C9A28 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - C5B1974323EAFA6E007C9A28 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - C5B1972723EAFA6D007C9A28 = { - isa = PBXGroup; - children = ( - C5B1973223EAFA6D007C9A28 /* {{cookiecutter.component_id}} */, - C5B1974923EAFA6E007C9A28 /* {{cookiecutter.component_id}}Tests */, - C5B1973123EAFA6D007C9A28 /* Products */, - ); - sourceTree = ""; - }; - C5B1973123EAFA6D007C9A28 /* Products */ = { - isa = PBXGroup; - children = ( - C5B1973023EAFA6D007C9A28 /* {{cookiecutter.component_id}}.app */, - C5B1974623EAFA6E007C9A28 /* {{cookiecutter.component_id}}Tests.xctest */, - ); - name = Products; - sourceTree = ""; - }; - C5B1973223EAFA6D007C9A28 /* {{cookiecutter.component_id}} */ = { - isa = PBXGroup; - children = ( - C5B1973323EAFA6D007C9A28 /* AppDelegate.swift */, - C5B1973523EAFA6D007C9A28 /* SceneDelegate.swift */, - C5B1973723EAFA6D007C9A28 /* ViewController.swift */, - C5B1973923EAFA6D007C9A28 /* Main.storyboard */, - C5B1973C23EAFA6E007C9A28 /* Assets.xcassets */, - C5B1973E23EAFA6E007C9A28 /* LaunchScreen.storyboard */, - C5B1974123EAFA6E007C9A28 /* Info.plist */, - ); - path = {{cookiecutter.component_id}}; - sourceTree = ""; - }; - C5B1974923EAFA6E007C9A28 /* {{cookiecutter.component_id}}Tests */ = { - isa = PBXGroup; - children = ( - C5B1974A23EAFA6E007C9A28 /* {{cookiecutter.component_id}}Tests.swift */, - C5B1974C23EAFA6E007C9A28 /* Info.plist */, - ); - path = {{cookiecutter.component_id}}Tests; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - C5B1972F23EAFA6D007C9A28 /* {{cookiecutter.component_id}} */ = { - isa = PBXNativeTarget; - buildConfigurationList = C5B1974F23EAFA6E007C9A28 /* Build configuration list for PBXNativeTarget "{{cookiecutter.component_id}}" */; - buildPhases = ( - C5B1972C23EAFA6D007C9A28 /* Sources */, - C5B1972D23EAFA6D007C9A28 /* Frameworks */, - C5B1972E23EAFA6D007C9A28 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = {{cookiecutter.component_id}}; - productName = {{cookiecutter.component_id}}; - productReference = C5B1973023EAFA6D007C9A28 /* {{cookiecutter.component_id}}.app */; - productType = "com.apple.product-type.application"; - }; - C5B1974523EAFA6E007C9A28 /* {{cookiecutter.component_id}}Tests */ = { - isa = PBXNativeTarget; - buildConfigurationList = C5B1975223EAFA6E007C9A28 /* Build configuration list for PBXNativeTarget "{{cookiecutter.component_id}}Tests" */; - buildPhases = ( - C5B1974223EAFA6E007C9A28 /* Sources */, - C5B1974323EAFA6E007C9A28 /* Frameworks */, - C5B1974423EAFA6E007C9A28 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - C5B1974823EAFA6E007C9A28 /* PBXTargetDependency */, - ); - name = {{cookiecutter.component_id}}Tests; - productName = {{cookiecutter.component_id}}Tests; - productReference = C5B1974623EAFA6E007C9A28 /* {{cookiecutter.component_id}}Tests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - C5B1972823EAFA6D007C9A28 /* Project object */ = { - isa = PBXProject; - attributes = { - LastSwiftUpdateCheck = 1100; - LastUpgradeCheck = 1100; - ORGANIZATIONNAME = Organization; - TargetAttributes = { - C5B1972F23EAFA6D007C9A28 = { - CreatedOnToolsVersion = 11.0; - }; - C5B1974523EAFA6E007C9A28 = { - CreatedOnToolsVersion = 11.0; - TestTargetID = C5B1972F23EAFA6D007C9A28; - }; - }; - }; - buildConfigurationList = C5B1972B23EAFA6D007C9A28 /* Build configuration list for PBXProject "{{cookiecutter.component_id}}" */; - compatibilityVersion = "Xcode 9.3"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = C5B1972723EAFA6D007C9A28; - productRefGroup = C5B1973123EAFA6D007C9A28 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - C5B1972F23EAFA6D007C9A28 /* {{cookiecutter.component_id}} */, - C5B1974523EAFA6E007C9A28 /* {{cookiecutter.component_id}}Tests */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - C5B1972E23EAFA6D007C9A28 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - C5B1974023EAFA6E007C9A28 /* LaunchScreen.storyboard in Resources */, - C5B1973D23EAFA6E007C9A28 /* Assets.xcassets in Resources */, - C5B1973B23EAFA6D007C9A28 /* Main.storyboard in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - C5B1974423EAFA6E007C9A28 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - C5B1972C23EAFA6D007C9A28 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - C5B1973823EAFA6D007C9A28 /* ViewController.swift in Sources */, - C5B1973423EAFA6D007C9A28 /* AppDelegate.swift in Sources */, - C5B1973623EAFA6D007C9A28 /* SceneDelegate.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - C5B1974223EAFA6E007C9A28 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - C5B1974B23EAFA6E007C9A28 /* {{cookiecutter.component_id}}Tests.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - C5B1974823EAFA6E007C9A28 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = C5B1972F23EAFA6D007C9A28 /* {{cookiecutter.component_id}} */; - targetProxy = C5B1974723EAFA6E007C9A28 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin PBXVariantGroup section */ - C5B1973923EAFA6D007C9A28 /* Main.storyboard */ = { - isa = PBXVariantGroup; - children = ( - C5B1973A23EAFA6D007C9A28 /* Base */, - ); - name = Main.storyboard; - sourceTree = ""; - }; - C5B1973E23EAFA6E007C9A28 /* LaunchScreen.storyboard */ = { - isa = PBXVariantGroup; - children = ( - C5B1973F23EAFA6E007C9A28 /* Base */, - ); - name = LaunchScreen.storyboard; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - C5B1974D23EAFA6E007C9A28 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - }; - name = Debug; - }; - C5B1974E23EAFA6E007C9A28 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - SDKROOT = iphoneos; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - C5B1975023EAFA6E007C9A28 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_STYLE = Automatic; - INFOPLIST_FILE = {{cookiecutter.component_id}}/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.organization.{{cookiecutter.component_id}}; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - C5B1975123EAFA6E007C9A28 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_STYLE = Automatic; - INFOPLIST_FILE = {{cookiecutter.component_id}}/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.organization.{{cookiecutter.component_id}}; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Release; - }; - C5B1975323EAFA6E007C9A28 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - BUNDLE_LOADER = "$(TEST_HOST)"; - CODE_SIGN_STYLE = Automatic; - INFOPLIST_FILE = {{cookiecutter.component_id}}Tests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.organization.{{cookiecutter.component_id}}Tests; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/{{cookiecutter.component_id}}.app/{{cookiecutter.component_id}}"; - }; - name = Debug; - }; - C5B1975423EAFA6E007C9A28 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - BUNDLE_LOADER = "$(TEST_HOST)"; - CODE_SIGN_STYLE = Automatic; - INFOPLIST_FILE = {{cookiecutter.component_id}}Tests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.organization.{{cookiecutter.component_id}}Tests; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/{{cookiecutter.component_id}}.app/{{cookiecutter.component_id}}"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - C5B1972B23EAFA6D007C9A28 /* Build configuration list for PBXProject "{{cookiecutter.component_id}}" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - C5B1974D23EAFA6E007C9A28 /* Debug */, - C5B1974E23EAFA6E007C9A28 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - C5B1974F23EAFA6E007C9A28 /* Build configuration list for PBXNativeTarget "{{cookiecutter.component_id}}" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - C5B1975023EAFA6E007C9A28 /* Debug */, - C5B1975123EAFA6E007C9A28 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - C5B1975223EAFA6E007C9A28 /* Build configuration list for PBXNativeTarget "{{cookiecutter.component_id}}Tests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - C5B1975323EAFA6E007C9A28 /* Debug */, - C5B1975423EAFA6E007C9A28 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = C5B1972823EAFA6D007C9A28 /* Project object */; -} diff --git a/backend/scaffolder/templates/ios-swift-app-template/{{cookiecutter.component_id}}/{{cookiecutter.component_id}}.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/backend/scaffolder/templates/ios-swift-app-template/{{cookiecutter.component_id}}/{{cookiecutter.component_id}}.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index fab8bef75c..0000000000 --- a/backend/scaffolder/templates/ios-swift-app-template/{{cookiecutter.component_id}}/{{cookiecutter.component_id}}.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/backend/scaffolder/templates/ios-swift-app-template/{{cookiecutter.component_id}}/{{cookiecutter.component_id}}.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/backend/scaffolder/templates/ios-swift-app-template/{{cookiecutter.component_id}}/{{cookiecutter.component_id}}.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist deleted file mode 100644 index 18d981003d..0000000000 --- a/backend/scaffolder/templates/ios-swift-app-template/{{cookiecutter.component_id}}/{{cookiecutter.component_id}}.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ /dev/null @@ -1,8 +0,0 @@ - - - - - IDEDidComputeMac32BitWarning - - - diff --git a/backend/scaffolder/templates/ios-swift-app-template/{{cookiecutter.component_id}}/{{cookiecutter.component_id}}.xcodeproj/project.xcworkspace/xcuserdata/patrickb.xcuserdatad/UserInterfaceState.xcuserstate b/backend/scaffolder/templates/ios-swift-app-template/{{cookiecutter.component_id}}/{{cookiecutter.component_id}}.xcodeproj/project.xcworkspace/xcuserdata/patrickb.xcuserdatad/UserInterfaceState.xcuserstate deleted file mode 100644 index db2ac7d09b..0000000000 Binary files a/backend/scaffolder/templates/ios-swift-app-template/{{cookiecutter.component_id}}/{{cookiecutter.component_id}}.xcodeproj/project.xcworkspace/xcuserdata/patrickb.xcuserdatad/UserInterfaceState.xcuserstate and /dev/null differ diff --git a/backend/scaffolder/templates/ios-swift-app-template/{{cookiecutter.component_id}}/{{cookiecutter.component_id}}.xcodeproj/xcuserdata/patrickb.xcuserdatad/xcschemes/xcschememanagement.plist b/backend/scaffolder/templates/ios-swift-app-template/{{cookiecutter.component_id}}/{{cookiecutter.component_id}}.xcodeproj/xcuserdata/patrickb.xcuserdatad/xcschemes/xcschememanagement.plist deleted file mode 100644 index abde0216f9..0000000000 --- a/backend/scaffolder/templates/ios-swift-app-template/{{cookiecutter.component_id}}/{{cookiecutter.component_id}}.xcodeproj/xcuserdata/patrickb.xcuserdatad/xcschemes/xcschememanagement.plist +++ /dev/null @@ -1,14 +0,0 @@ - - - - - SchemeUserState - - {{cookiecutter.component_id}}.xcscheme_^#shared#^_ - - orderHint - 0 - - - - diff --git a/backend/scaffolder/templates/ios-swift-app-template/{{cookiecutter.component_id}}/{{cookiecutter.component_id}}/AppDelegate.swift b/backend/scaffolder/templates/ios-swift-app-template/{{cookiecutter.component_id}}/{{cookiecutter.component_id}}/AppDelegate.swift deleted file mode 100644 index bdcc2c1309..0000000000 --- a/backend/scaffolder/templates/ios-swift-app-template/{{cookiecutter.component_id}}/{{cookiecutter.component_id}}/AppDelegate.swift +++ /dev/null @@ -1,36 +0,0 @@ -// -// AppDelegate.swift -// {{cookiecutter.component_id}} -// -// Copyright © 2020 Organization. All rights reserved. -// - -import UIKit - -@UIApplicationMain -class AppDelegate: UIResponder, UIApplicationDelegate { - - - - func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { - // Override point for customization after application launch. - return true - } - - // MARK: UISceneSession Lifecycle - - func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration { - // Called when a new scene session is being created. - // Use this method to select a configuration to create the new scene with. - return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role) - } - - func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set) { - // Called when the user discards a scene session. - // If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions. - // Use this method to release any resources that were specific to the discarded scenes, as they will not return. - } - - -} - diff --git a/backend/scaffolder/templates/ios-swift-app-template/{{cookiecutter.component_id}}/{{cookiecutter.component_id}}/Assets.xcassets/AppIcon.appiconset/Contents.json b/backend/scaffolder/templates/ios-swift-app-template/{{cookiecutter.component_id}}/{{cookiecutter.component_id}}/Assets.xcassets/AppIcon.appiconset/Contents.json deleted file mode 100644 index d8db8d65fd..0000000000 --- a/backend/scaffolder/templates/ios-swift-app-template/{{cookiecutter.component_id}}/{{cookiecutter.component_id}}/Assets.xcassets/AppIcon.appiconset/Contents.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "images" : [ - { - "idiom" : "iphone", - "size" : "20x20", - "scale" : "2x" - }, - { - "idiom" : "iphone", - "size" : "20x20", - "scale" : "3x" - }, - { - "idiom" : "iphone", - "size" : "29x29", - "scale" : "2x" - }, - { - "idiom" : "iphone", - "size" : "29x29", - "scale" : "3x" - }, - { - "idiom" : "iphone", - "size" : "40x40", - "scale" : "2x" - }, - { - "idiom" : "iphone", - "size" : "40x40", - "scale" : "3x" - }, - { - "idiom" : "iphone", - "size" : "60x60", - "scale" : "2x" - }, - { - "idiom" : "iphone", - "size" : "60x60", - "scale" : "3x" - }, - { - "idiom" : "ipad", - "size" : "20x20", - "scale" : "1x" - }, - { - "idiom" : "ipad", - "size" : "20x20", - "scale" : "2x" - }, - { - "idiom" : "ipad", - "size" : "29x29", - "scale" : "1x" - }, - { - "idiom" : "ipad", - "size" : "29x29", - "scale" : "2x" - }, - { - "idiom" : "ipad", - "size" : "40x40", - "scale" : "1x" - }, - { - "idiom" : "ipad", - "size" : "40x40", - "scale" : "2x" - }, - { - "idiom" : "ipad", - "size" : "76x76", - "scale" : "1x" - }, - { - "idiom" : "ipad", - "size" : "76x76", - "scale" : "2x" - }, - { - "idiom" : "ipad", - "size" : "83.5x83.5", - "scale" : "2x" - }, - { - "idiom" : "ios-marketing", - "size" : "1024x1024", - "scale" : "1x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/backend/scaffolder/templates/ios-swift-app-template/{{cookiecutter.component_id}}/{{cookiecutter.component_id}}/Assets.xcassets/Contents.json b/backend/scaffolder/templates/ios-swift-app-template/{{cookiecutter.component_id}}/{{cookiecutter.component_id}}/Assets.xcassets/Contents.json deleted file mode 100644 index da4a164c91..0000000000 --- a/backend/scaffolder/templates/ios-swift-app-template/{{cookiecutter.component_id}}/{{cookiecutter.component_id}}/Assets.xcassets/Contents.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/backend/scaffolder/templates/ios-swift-app-template/{{cookiecutter.component_id}}/{{cookiecutter.component_id}}/Base.lproj/LaunchScreen.storyboard b/backend/scaffolder/templates/ios-swift-app-template/{{cookiecutter.component_id}}/{{cookiecutter.component_id}}/Base.lproj/LaunchScreen.storyboard deleted file mode 100644 index 865e9329f3..0000000000 --- a/backend/scaffolder/templates/ios-swift-app-template/{{cookiecutter.component_id}}/{{cookiecutter.component_id}}/Base.lproj/LaunchScreen.storyboard +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/backend/scaffolder/templates/ios-swift-app-template/{{cookiecutter.component_id}}/{{cookiecutter.component_id}}/Base.lproj/Main.storyboard b/backend/scaffolder/templates/ios-swift-app-template/{{cookiecutter.component_id}}/{{cookiecutter.component_id}}/Base.lproj/Main.storyboard deleted file mode 100644 index 25a763858e..0000000000 --- a/backend/scaffolder/templates/ios-swift-app-template/{{cookiecutter.component_id}}/{{cookiecutter.component_id}}/Base.lproj/Main.storyboard +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/backend/scaffolder/templates/ios-swift-app-template/{{cookiecutter.component_id}}/{{cookiecutter.component_id}}/Info.plist b/backend/scaffolder/templates/ios-swift-app-template/{{cookiecutter.component_id}}/{{cookiecutter.component_id}}/Info.plist deleted file mode 100644 index 2a3483c0d2..0000000000 --- a/backend/scaffolder/templates/ios-swift-app-template/{{cookiecutter.component_id}}/{{cookiecutter.component_id}}/Info.plist +++ /dev/null @@ -1,64 +0,0 @@ - - - - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - $(PRODUCT_BUNDLE_PACKAGE_TYPE) - CFBundleShortVersionString - 1.0 - CFBundleVersion - 1 - LSRequiresIPhoneOS - - UIApplicationSceneManifest - - UIApplicationSupportsMultipleScenes - - UISceneConfigurations - - UIWindowSceneSessionRoleApplication - - - UISceneConfigurationName - Default Configuration - UISceneDelegateClassName - $(PRODUCT_MODULE_NAME).SceneDelegate - UISceneStoryboardFile - Main - - - - - UILaunchStoryboardName - LaunchScreen - UIMainStoryboardFile - Main - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - UISupportedInterfaceOrientations~ipad - - UIInterfaceOrientationPortrait - UIInterfaceOrientationPortraitUpsideDown - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - - diff --git a/backend/scaffolder/templates/ios-swift-app-template/{{cookiecutter.component_id}}/{{cookiecutter.component_id}}/SceneDelegate.swift b/backend/scaffolder/templates/ios-swift-app-template/{{cookiecutter.component_id}}/{{cookiecutter.component_id}}/SceneDelegate.swift deleted file mode 100644 index 4919f3a006..0000000000 --- a/backend/scaffolder/templates/ios-swift-app-template/{{cookiecutter.component_id}}/{{cookiecutter.component_id}}/SceneDelegate.swift +++ /dev/null @@ -1,52 +0,0 @@ -// -// SceneDelegate.swift -// {{cookiecutter.component_id}} -// -// Copyright © 2020 Organization. All rights reserved. -// - -import UIKit - -class SceneDelegate: UIResponder, UIWindowSceneDelegate { - - var window: UIWindow? - - - func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { - // Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`. - // If using a storyboard, the `window` property will automatically be initialized and attached to the scene. - // This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingSceneSession` instead). - guard let _ = (scene as? UIWindowScene) else { return } - } - - func sceneDidDisconnect(_ scene: UIScene) { - // Called as the scene is being released by the system. - // This occurs shortly after the scene enters the background, or when its session is discarded. - // Release any resources associated with this scene that can be re-created the next time the scene connects. - // The scene may re-connect later, as its session was not neccessarily discarded (see `application:didDiscardSceneSessions` instead). - } - - func sceneDidBecomeActive(_ scene: UIScene) { - // Called when the scene has moved from an inactive state to an active state. - // Use this method to restart any tasks that were paused (or not yet started) when the scene was inactive. - } - - func sceneWillResignActive(_ scene: UIScene) { - // Called when the scene will move from an active state to an inactive state. - // This may occur due to temporary interruptions (ex. an incoming phone call). - } - - func sceneWillEnterForeground(_ scene: UIScene) { - // Called as the scene transitions from the background to the foreground. - // Use this method to undo the changes made on entering the background. - } - - func sceneDidEnterBackground(_ scene: UIScene) { - // Called as the scene transitions from the foreground to the background. - // Use this method to save data, release shared resources, and store enough scene-specific state information - // to restore the scene back to its current state. - } - - -} - diff --git a/backend/scaffolder/templates/ios-swift-app-template/{{cookiecutter.component_id}}/{{cookiecutter.component_id}}/ViewController.swift b/backend/scaffolder/templates/ios-swift-app-template/{{cookiecutter.component_id}}/{{cookiecutter.component_id}}/ViewController.swift deleted file mode 100644 index 9e2c5fb077..0000000000 --- a/backend/scaffolder/templates/ios-swift-app-template/{{cookiecutter.component_id}}/{{cookiecutter.component_id}}/ViewController.swift +++ /dev/null @@ -1,19 +0,0 @@ -// -// ViewController.swift -// {{cookiecutter.component_id}} -// -// Copyright © 2020 Organization. All rights reserved. -// - -import UIKit - -class ViewController: UIViewController { - - override func viewDidLoad() { - super.viewDidLoad() - // Do any additional setup after loading the view. - } - - -} - diff --git a/backend/scaffolder/templates/ios-swift-app-template/{{cookiecutter.component_id}}/{{cookiecutter.component_id}}Tests/Info.plist b/backend/scaffolder/templates/ios-swift-app-template/{{cookiecutter.component_id}}/{{cookiecutter.component_id}}Tests/Info.plist deleted file mode 100644 index 64d65ca495..0000000000 --- a/backend/scaffolder/templates/ios-swift-app-template/{{cookiecutter.component_id}}/{{cookiecutter.component_id}}Tests/Info.plist +++ /dev/null @@ -1,22 +0,0 @@ - - - - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - $(PRODUCT_BUNDLE_PACKAGE_TYPE) - CFBundleShortVersionString - 1.0 - CFBundleVersion - 1 - - diff --git a/backend/scaffolder/templates/ios-swift-app-template/{{cookiecutter.component_id}}/{{cookiecutter.component_id}}Tests/{{cookiecutter.component_id}}Tests.swift b/backend/scaffolder/templates/ios-swift-app-template/{{cookiecutter.component_id}}/{{cookiecutter.component_id}}Tests/{{cookiecutter.component_id}}Tests.swift deleted file mode 100644 index 3ccb2e1662..0000000000 --- a/backend/scaffolder/templates/ios-swift-app-template/{{cookiecutter.component_id}}/{{cookiecutter.component_id}}Tests/{{cookiecutter.component_id}}Tests.swift +++ /dev/null @@ -1,33 +0,0 @@ -// -// {{cookiecutter.component_id}}Tests.swift -// {{cookiecutter.component_id}}Tests -// -// Copyright © 2020 Organization. All rights reserved. -// - -import XCTest -@testable import {{cookiecutter.component_id}} - -class {{cookiecutter.component_id}}Tests: XCTestCase { - - override func setUp() { - // Put setup code here. This method is called before the invocation of each test method in the class. - } - - override func tearDown() { - // Put teardown code here. This method is called after the invocation of each test method in the class. - } - - func testExample() { - // This is an example of a functional test case. - // Use XCTAssert and related functions to verify your tests produce the correct results. - } - - func testPerformanceExample() { - // This is an example of a performance test case. - self.measure { - // Put the code you want to measure the time of here. - } - } - -} diff --git a/backend/scaffolder/templates/react-ssr-template/hooks/post_gen_project.sh b/backend/scaffolder/templates/react-ssr-template/hooks/post_gen_project.sh deleted file mode 100644 index c6d477d91a..0000000000 --- a/backend/scaffolder/templates/react-ssr-template/hooks/post_gen_project.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/bash - -# package name is "__component_id__" so that yarn doesn't throw an error -# about invalid characters when running yarn commands. here we replace it with the actual name -sed -i -e "s/__component_id__/{{ cookiecutter.component_id }}/g" package.json - -# node_modules was moved out of the template folder, during the pre_gen hook, -# to avoid cookie_cutter from copying all of them. time to move it back -mv ../../node_modules.tmp ../../\{\{cookiecutter.component_id\}\}/node_modules 2>/dev/null ||: - -# move back the build directory that was moved out in the pre_gen hook (if it exists) -mv ../../build.tmp ../../\{\{cookiecutter.component_id\}\}/build 2>/dev/null ||: \ No newline at end of file diff --git a/backend/scaffolder/templates/react-ssr-template/hooks/pre_gen_project.sh b/backend/scaffolder/templates/react-ssr-template/hooks/pre_gen_project.sh deleted file mode 100644 index 142fda9ad9..0000000000 --- a/backend/scaffolder/templates/react-ssr-template/hooks/pre_gen_project.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash - -# no way to ignore files in cookiecutter, so move node_modules out while building -# to avoid cookiecutter from copying all of them -mv ../../\{\{cookiecutter.component_id\}\}/node_modules ../../node_modules.tmp 2>/dev/null ||: - -# cookicutter really doesn't like the next.js build directory, so if the app has -# been built from inside the template folder, that folders needs to be moved out as well -mv ../../\{\{cookiecutter.component_id\}\}/build ../../build.tmp 2>/dev/null ||: diff --git a/backend/scaffolder/templates/react-ssr-template/template-info.json b/backend/scaffolder/templates/react-ssr-template/template-info.json deleted file mode 100644 index f1d3efd9fe..0000000000 --- a/backend/scaffolder/templates/react-ssr-template/template-info.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "id": "react-ssr-template", - "name": "React SSR", - "description": "Next.js application skeleton for creating isomorphic web applications.", - "ownerId": "ownerId" -} \ No newline at end of file diff --git a/backend/scaffolder/templates/react-ssr-template/{{cookiecutter.component_id}}/.editorconfig b/backend/scaffolder/templates/react-ssr-template/{{cookiecutter.component_id}}/.editorconfig deleted file mode 100644 index 23c3268a0f..0000000000 --- a/backend/scaffolder/templates/react-ssr-template/{{cookiecutter.component_id}}/.editorconfig +++ /dev/null @@ -1,13 +0,0 @@ -# editorconfig.org -root = true - -[*] -indent_style = space -indent_size = 2 -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -[*.md] -insert_final_newline = false \ No newline at end of file diff --git a/backend/scaffolder/templates/react-ssr-template/{{cookiecutter.component_id}}/.eslintignore b/backend/scaffolder/templates/react-ssr-template/{{cookiecutter.component_id}}/.eslintignore deleted file mode 100644 index 8b13789179..0000000000 --- a/backend/scaffolder/templates/react-ssr-template/{{cookiecutter.component_id}}/.eslintignore +++ /dev/null @@ -1 +0,0 @@ - diff --git a/backend/scaffolder/templates/react-ssr-template/{{cookiecutter.component_id}}/.eslintrc.js b/backend/scaffolder/templates/react-ssr-template/{{cookiecutter.component_id}}/.eslintrc.js deleted file mode 100644 index 8623614899..0000000000 --- a/backend/scaffolder/templates/react-ssr-template/{{cookiecutter.component_id}}/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('@spotify/web-scripts/config/eslintrc.js'); diff --git a/backend/scaffolder/templates/react-ssr-template/{{cookiecutter.component_id}}/.github/workflows/build.yml b/backend/scaffolder/templates/react-ssr-template/{{cookiecutter.component_id}}/.github/workflows/build.yml deleted file mode 100644 index b82f29562e..0000000000 --- a/backend/scaffolder/templates/react-ssr-template/{{cookiecutter.component_id}}/.github/workflows/build.yml +++ /dev/null @@ -1,36 +0,0 @@ -name: Frontend CI - -on: [push] - -jobs: - build: - runs-on: ubuntu-latest - - strategy: - matrix: - node-version: [12.x] - - steps: - - name: checkout code - uses: actions/checkout@v1 - - name: get yarn cache - id: yarn-cache - run: echo "::set-output name=dir::$(yarn cache dir)" - - uses: actions/cache@v1 - with: - path: ${{ steps.yarn-cache.outputs.dir }} - key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} - restore-keys: | - ${{ runner.os }}-yarn- - - name: use node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 - with: - node-version: ${{ matrix.node-version }} - - name: yarn install, build, and test - working-directory: . - run: | - yarn install - yarn build --if-present - yarn test - env: - CI: true diff --git a/backend/scaffolder/templates/react-ssr-template/{{cookiecutter.component_id}}/.gitignore b/backend/scaffolder/templates/react-ssr-template/{{cookiecutter.component_id}}/.gitignore deleted file mode 100644 index 4d1e0d9635..0000000000 --- a/backend/scaffolder/templates/react-ssr-template/{{cookiecutter.component_id}}/.gitignore +++ /dev/null @@ -1,18 +0,0 @@ -# See https://help.github.com/ignore-files/ for more about ignoring files. - -# dependencies -/node_modules - -# testing -/coverage -junit.xml - -# build -/build - -# misc -.DS_Store - -npm-debug.log* -yarn-debug.log* -yarn-error.log* diff --git a/backend/scaffolder/templates/react-ssr-template/{{cookiecutter.component_id}}/.nvmrc b/backend/scaffolder/templates/react-ssr-template/{{cookiecutter.component_id}}/.nvmrc deleted file mode 100644 index b009dfb9d9..0000000000 --- a/backend/scaffolder/templates/react-ssr-template/{{cookiecutter.component_id}}/.nvmrc +++ /dev/null @@ -1 +0,0 @@ -lts/* diff --git a/backend/scaffolder/templates/react-ssr-template/{{cookiecutter.component_id}}/README.md b/backend/scaffolder/templates/react-ssr-template/{{cookiecutter.component_id}}/README.md deleted file mode 100644 index 415065179b..0000000000 --- a/backend/scaffolder/templates/react-ssr-template/{{cookiecutter.component_id}}/README.md +++ /dev/null @@ -1,14 +0,0 @@ -# {{ cookiecutter.component_id }} - -## Description - -{{ cookiecutter.description }} - -## Develop - -```bash -# install dependencies -$ yarn -# start development server -$ yarn dev -``` \ No newline at end of file diff --git a/backend/scaffolder/templates/react-ssr-template/{{cookiecutter.component_id}}/babel.config.js b/backend/scaffolder/templates/react-ssr-template/{{cookiecutter.component_id}}/babel.config.js deleted file mode 100644 index 038a71835e..0000000000 --- a/backend/scaffolder/templates/react-ssr-template/{{cookiecutter.component_id}}/babel.config.js +++ /dev/null @@ -1,9 +0,0 @@ -module.exports = { - plugins: [ - 'babel-plugin-styled-components' - ], - presets: [ - 'next/babel', - '@zeit/next-typescript/babel' - ] -}; diff --git a/backend/scaffolder/templates/react-ssr-template/{{cookiecutter.component_id}}/jest.config.js b/backend/scaffolder/templates/react-ssr-template/{{cookiecutter.component_id}}/jest.config.js deleted file mode 100644 index 0dc2a9c0ca..0000000000 --- a/backend/scaffolder/templates/react-ssr-template/{{cookiecutter.component_id}}/jest.config.js +++ /dev/null @@ -1,8 +0,0 @@ -module.exports = { - ...require('@spotify/web-scripts/config/jest.config.js'), - testEnvironment: 'jsdom', - testPathIgnorePatterns: ['/node_modules/', '/build/'], - transform: { - '^.+\\.tsx?$': 'babel-jest', - }, -}; diff --git a/backend/scaffolder/templates/react-ssr-template/{{cookiecutter.component_id}}/next-env.d.ts b/backend/scaffolder/templates/react-ssr-template/{{cookiecutter.component_id}}/next-env.d.ts deleted file mode 100644 index fd10310f68..0000000000 --- a/backend/scaffolder/templates/react-ssr-template/{{cookiecutter.component_id}}/next-env.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -// read more about this file here ---> https://github.com/zeit/next.js/blob/canary/docs/basic-features/typescript.md -/* eslint spaced-comment: ["error", "always", { "markers": ["/"] }] */ - -/// -/// diff --git a/backend/scaffolder/templates/react-ssr-template/{{cookiecutter.component_id}}/next.config.js b/backend/scaffolder/templates/react-ssr-template/{{cookiecutter.component_id}}/next.config.js deleted file mode 100644 index be8b159307..0000000000 --- a/backend/scaffolder/templates/react-ssr-template/{{cookiecutter.component_id}}/next.config.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = { - distDir: 'build', -}; diff --git a/backend/scaffolder/templates/react-ssr-template/{{cookiecutter.component_id}}/package.json b/backend/scaffolder/templates/react-ssr-template/{{cookiecutter.component_id}}/package.json deleted file mode 100644 index cf9d469e39..0000000000 --- a/backend/scaffolder/templates/react-ssr-template/{{cookiecutter.component_id}}/package.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "name": "__component_id__", - "version": "0.0.0", - "description": "{{ cookiecutter.description }}", - "license": "UNLICENSED", - "scripts": { - "dev": "next", - "build": "next build", - "start": "next start", - "lint": "web-scripts lint --ignore-path=.gitignore", - "test": "web-scripts test --config jest.config.js", - "pretest:ci": "yarn lint", - "test:ci": "yarn test --ci --coverage --reporters=default --reporters=jest-junit" - }, - "dependencies": { - "@zeit/next-typescript": "^1.1.1", - "babel-plugin-styled-components": "^1.10.6", - "next": "^9.1.1", - "react": "^16.8.5", - "react-dom": "^16.8.5", - "styled-components": "^4.3.2" - }, - "devDependencies": { - "@spotify/tsconfig": "^5.0.0", - "@spotify/web-scripts": "^5.0.0", - "@testing-library/react": "^8.0.1", - "@types/node": "^13.1.4", - "@types/react": "^16.8.7", - "@types/react-dom": "^16.8.2", - "@types/styled-components": "^4.1.18", - "husky": "^2.7.0", - "jest-junit": "^8.0.0", - "typescript": "^3.4.5" - }, - "husky": { - "hooks": { - "pre-commit": "web-scripts precommit" - } - }, - "browserslist": { - "production": [ - ">0.2%", - "not dead", - "not op_mini all" - ], - "development": [ - "last 1 chrome version", - "last 1 firefox version", - "last 1 safari version" - ] - } -} diff --git a/backend/scaffolder/templates/react-ssr-template/{{cookiecutter.component_id}}/prettier.config.js b/backend/scaffolder/templates/react-ssr-template/{{cookiecutter.component_id}}/prettier.config.js deleted file mode 100644 index 93df970dd6..0000000000 --- a/backend/scaffolder/templates/react-ssr-template/{{cookiecutter.component_id}}/prettier.config.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('@spotify/web-scripts/config/prettier.config.js'); diff --git a/backend/scaffolder/templates/react-ssr-template/{{cookiecutter.component_id}}/public/static/fonts.css b/backend/scaffolder/templates/react-ssr-template/{{cookiecutter.component_id}}/public/static/fonts.css deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/backend/scaffolder/templates/react-ssr-template/{{cookiecutter.component_id}}/src/__tests__/index.test.tsx b/backend/scaffolder/templates/react-ssr-template/{{cookiecutter.component_id}}/src/__tests__/index.test.tsx deleted file mode 100644 index 8612ead08f..0000000000 --- a/backend/scaffolder/templates/react-ssr-template/{{cookiecutter.component_id}}/src/__tests__/index.test.tsx +++ /dev/null @@ -1,13 +0,0 @@ -import React from 'react'; -import { cleanup, render } from '@testing-library/react'; - -import Index from '../pages/index'; - -afterEach(cleanup); - -describe('Index', () => { - it('Says hello', () => { - const { queryByText } = render(); - expect(queryByText('Hello!')).toBeTruthy(); - }); -}); diff --git a/backend/scaffolder/templates/react-ssr-template/{{cookiecutter.component_id}}/src/components/Header.tsx b/backend/scaffolder/templates/react-ssr-template/{{cookiecutter.component_id}}/src/components/Header.tsx deleted file mode 100644 index eebee43662..0000000000 --- a/backend/scaffolder/templates/react-ssr-template/{{cookiecutter.component_id}}/src/components/Header.tsx +++ /dev/null @@ -1,7 +0,0 @@ -import React from 'react'; - -export const Header = () => ( -

- Header -

-) diff --git a/backend/scaffolder/templates/react-ssr-template/{{cookiecutter.component_id}}/src/pages/_app.tsx b/backend/scaffolder/templates/react-ssr-template/{{cookiecutter.component_id}}/src/pages/_app.tsx deleted file mode 100644 index a3853e47c9..0000000000 --- a/backend/scaffolder/templates/react-ssr-template/{{cookiecutter.component_id}}/src/pages/_app.tsx +++ /dev/null @@ -1,37 +0,0 @@ -import React from 'react'; -import App from 'next/app'; -import Head from 'next/head'; -import styled from 'styled-components'; -import { Header } from '../components/Header'; - -const StyledApp = styled.div` - > * { - padding-left: 16px; - padding-right: 16px; - } -`; - -const Main = styled.div` - margin: 2em auto; - height: 85vh; -`; - -class CustomApp extends App { - render() { - const { Component, pageProps } = this.props; - - return ( - - - - -
-
- -
- - ); - } -} - -export default CustomApp; diff --git a/backend/scaffolder/templates/react-ssr-template/{{cookiecutter.component_id}}/src/pages/_document.tsx b/backend/scaffolder/templates/react-ssr-template/{{cookiecutter.component_id}}/src/pages/_document.tsx deleted file mode 100644 index 210de6412c..0000000000 --- a/backend/scaffolder/templates/react-ssr-template/{{cookiecutter.component_id}}/src/pages/_document.tsx +++ /dev/null @@ -1,41 +0,0 @@ -/** - * This file extends the and injects the server side rendered styles into the - * By server-side rendering CSS we avoid visual changes in the layout while loading the JS. - * - * Taken from this example: - * https://github.com/zeit/next.js/tree/master/examples/with-styled-components - */ - -import React from 'react'; -import Document, { DocumentContext, DocumentInitialProps } from 'next/document'; -import { ServerStyleSheet } from 'styled-components'; - -export default class MyDocument extends Document { - static async getInitialProps( - ctx: DocumentContext, - ): Promise { - const sheet = new ServerStyleSheet(); - const originalRenderPage = ctx.renderPage; - - try { - ctx.renderPage = () => - originalRenderPage({ - enhanceApp: (App: any) => props => - sheet.collectStyles(), - }); - - const initialProps = await Document.getInitialProps(ctx); - return { - ...initialProps, - styles: ( - <> - {initialProps.styles} - {sheet.getStyleElement()} - - ), - }; - } finally { - sheet.seal(); - } - } -} diff --git a/backend/scaffolder/templates/react-ssr-template/{{cookiecutter.component_id}}/src/pages/api/ping.ts b/backend/scaffolder/templates/react-ssr-template/{{cookiecutter.component_id}}/src/pages/api/ping.ts deleted file mode 100644 index 8bc772c182..0000000000 --- a/backend/scaffolder/templates/react-ssr-template/{{cookiecutter.component_id}}/src/pages/api/ping.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { NextApiRequest, NextApiResponse } from 'next'; - -export default function handle(_: NextApiRequest, res: NextApiResponse) { - res.status(200).send('ok'); -} diff --git a/backend/scaffolder/templates/react-ssr-template/{{cookiecutter.component_id}}/src/pages/index.tsx b/backend/scaffolder/templates/react-ssr-template/{{cookiecutter.component_id}}/src/pages/index.tsx deleted file mode 100644 index c01d844f9f..0000000000 --- a/backend/scaffolder/templates/react-ssr-template/{{cookiecutter.component_id}}/src/pages/index.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import React from 'react'; - -const Index = () =>

Hello!

; - -export default Index; diff --git a/backend/scaffolder/templates/react-ssr-template/{{cookiecutter.component_id}}/tsconfig.json b/backend/scaffolder/templates/react-ssr-template/{{cookiecutter.component_id}}/tsconfig.json deleted file mode 100644 index 03508ff043..0000000000 --- a/backend/scaffolder/templates/react-ssr-template/{{cookiecutter.component_id}}/tsconfig.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "extends": "@spotify/tsconfig", - "compilerOptions": { - "target": "es5", - "lib": ["dom", "dom.iterable", "esnext"], - "allowJs": true, - "skipLibCheck": true, - "strict": false, - "forceConsistentCasingInFileNames": true, - "noEmit": true, - "esModuleInterop": true, - "module": "esnext", - "moduleResolution": "node", - "resolveJsonModule": true, - "isolatedModules": true, - "jsx": "preserve" - }, - "exclude": ["node_modules", "output/node_modules"], - "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"] -} diff --git a/proto/README.md b/proto/README.md deleted file mode 100644 index 29362645e8..0000000000 --- a/proto/README.md +++ /dev/null @@ -1,58 +0,0 @@ -# Backstage proto - -Collection of all Backstage protobuf definitions. - -## Usage - -Prodobuf definitions are managed with [Prototool](https://github.com/uber/prototool). - -## Installing Dependencies - -### Prototool - -See [installation instructions](https://github.com/uber/prototool/blob/dev/docs/install.md). On MacOS you can use `brew install prototool`. - -### Go - -You will need to have Go installed, along with a properly set up `GOPATH` and `$GOPATH/bin` added to your `PATH`, follow the instructions [here](https://golang.org/doc/install#install). - -### protoc-gen-go - -This will enable code generation for Go. You will need to have `protoc-gen-go` available in your path. You can find out more information here: https://github.com/golang/protobuf - -```bash -$ go get -u github.com/golang/protobuf/protoc-gen-go -$ protoc-gen-go # should now be available in your path providing you GOPATH + GOBIN paths are setup correctly. -``` - -### protoc-gen-grpc-web - -This will enable code generation for interacting with gRPC-Web. - -Installation instructions are found at https://github.com/grpc/grpc-web#code-generator-plugin - -## Generating Code - -To generate the Protobuf definitions in Go and TypeScript, run the following command inside the `proto/` directory with [Prototool](https://github.com/uber/prototool): - -```bash -$ prototool generate -``` - -This will generate the respective "generated" files in the `backend/proto` folder. - -All generated code related to Protocol Buffers should be checked in to the repository. - -## Code Examples - -### Import using Go - -This is what you'll need to use for development in any of the `backend` services. - -```go -package spotify.backstage.identity.v1; - -func main() { - identityv1.NewInventoryClient(nil) -} -``` diff --git a/proto/builds/v1/builds.proto b/proto/builds/v1/builds.proto deleted file mode 100644 index 7da136de7a..0000000000 --- a/proto/builds/v1/builds.proto +++ /dev/null @@ -1,50 +0,0 @@ -syntax = "proto3"; - -package spotify.backstage.builds.v1; - -option go_package = "buildsv1"; - -service Builds { - rpc ListBuilds(ListBuildsRequest) returns (ListBuildsReply); - rpc GetBuild(GetBuildRequest) returns (GetBuildReply); -} - -message ListBuildsRequest { - string entity_uri = 1; -} - -message ListBuildsReply { - string entity_uri = 1; - repeated Build builds = 2; -} - -message GetBuildRequest { - string build_uri = 1; -} - -message GetBuildReply { - Build build = 1; - BuildDetails details = 2; -} - -message Build { - string uri = 1; - string commit_id = 2; - string message = 3; - string branch = 4; - BuildStatus status = 5; -} - -message BuildDetails { - string author = 1; - string overview_url = 2; - string log_url = 3; -} - -enum BuildStatus { - NULL = 0; - SUCCESS = 1; - FAILURE = 2; - PENDING = 3; - RUNNING = 4; -} diff --git a/proto/identity/v1/identity.proto b/proto/identity/v1/identity.proto deleted file mode 100644 index 4e4e8291fd..0000000000 --- a/proto/identity/v1/identity.proto +++ /dev/null @@ -1,42 +0,0 @@ -syntax = "proto3"; - -package spotify.backstage.identity.v1; - -option go_package = "identityv1"; - -service Identity { - // Returned user's groups will only have ID field populated - rpc GetUser(GetUserRequest) returns (GetUserReply); - - // Child groups will only have their ID fields populated - // Users in the group will not have their groups popuplated - rpc GetGroup(GetGroupRequest) returns (GetGroupReply); -} - -message GetUserRequest { - string id = 1; -} - -message GetUserReply { - User user = 1; - repeated Group groups = 2; -} - -message GetGroupRequest { - string id = 1; -} - -message GetGroupReply { - Group group = 1; -} - -message User { - string id = 1; - string name = 2; -} - -message Group { - string id = 1; - repeated User users = 2; - repeated Group groups = 3; -} diff --git a/proto/inventory/v1/inventory.proto b/proto/inventory/v1/inventory.proto deleted file mode 100644 index f506f7a04d..0000000000 --- a/proto/inventory/v1/inventory.proto +++ /dev/null @@ -1,66 +0,0 @@ -syntax = "proto3"; - -package spotify.backstage.inventory.v1; - -option go_package = "inventoryv1"; - -service Inventory { - rpc ListEntities(ListEntitiesRequest) returns (ListEntitiesReply); - rpc GetEntity(GetEntityRequest) returns (GetEntityReply); - rpc CreateEntity(CreateEntityRequest) returns (CreateEntityReply); - rpc SetFact(SetFactRequest) returns (SetFactReply); - rpc GetFact(GetFactRequest) returns (GetFactReply); -} - -message ListEntitiesRequest { - string uriPrefix = 1; -} - -message ListEntitiesReply { - repeated Entity entities = 1; -} - -message GetEntityRequest { - Entity entity = 1; -} - -message GetEntityReply { - Entity entity = 1; -} - -message CreateEntityRequest { - Entity entity = 1; -} - -message CreateEntityReply { - Entity entity = 1; -} - -message SetFactRequest { - string entityUri = 1; - string name = 2; - string value = 3; -} - -message SetFactReply { - Fact fact = 1; -} - -message GetFactRequest { - string entityUri = 1; - string name = 2; -} - -message GetFactReply { - Fact fact = 1; -} - -message Entity { - string uri = 1; - repeated Fact facts = 2; -} - -message Fact { - string name = 1; - string value = 2; -} \ No newline at end of file diff --git a/proto/prototool.yaml b/proto/prototool.yaml deleted file mode 100644 index b155ee4e2c..0000000000 --- a/proto/prototool.yaml +++ /dev/null @@ -1,17 +0,0 @@ -protoc: - version: 3.8.0 -lint: - group: uber2 - rules: - remove: - - REQUEST_RESPONSE_TYPES_UNIQUE - file_header: - path: ../LICENSE -generate: - go_options: - import_path: github.com/spotify/backstage/backend - plugins: - - name: go - type: go - flags: plugins=grpc - output: ../backend/proto diff --git a/proto/scaffolder/v1/scaffolder.proto b/proto/scaffolder/v1/scaffolder.proto deleted file mode 100644 index 7b185b7fcd..0000000000 --- a/proto/scaffolder/v1/scaffolder.proto +++ /dev/null @@ -1,43 +0,0 @@ -syntax = "proto3"; - -package spotify.backstage.scaffolder.v1; - -import "identity/v1/identity.proto"; -import "google/protobuf/struct.proto"; - -option go_package = "scaffolderv1"; - -service Scaffolder { - rpc ListTemplates(Empty) returns (ListTemplatesReply); - rpc Create(CreateRequest) returns (CreateReply); -} - -message Empty {} - -message ListTemplatesReply { - repeated Template templates = 1; -} - -message CreateReply { - string component_id = 1; - -} - -message CreateRequest { - string template_id = 1; - string org = 2; - string component_id = 3; - bool private = 4; - - // here's the cookiecutter.json that is used for the request. - // make as a struct so that we can pass through the data in a nice way - // withouth having to mess around with stuff and special types. - google.protobuf.Struct metadata = 5; -} - -message Template { - string id = 1; - string name = 2; - string description = 3; - spotify.backstage.identity.v1.User user = 4; -} \ No newline at end of file