diff --git a/.env b/.env
index aebb86911..10c99a9de 100644
--- a/.env
+++ b/.env
@@ -1 +1,2 @@
SASS_PATH="node_modules"
+VUE_APP_GITHUB_PERSONAL_ACCESS_TOKEN=ghp_l6HSDuOHMiBzb6odsqZAa
\ No newline at end of file
diff --git a/apollo.config.js b/apollo.config.js
new file mode 100644
index 000000000..7a9649c22
--- /dev/null
+++ b/apollo.config.js
@@ -0,0 +1,26 @@
+const path = require('path');
+
+// Load .env files
+const { loadEnv } = require('vue-cli-plugin-apollo/utils/load-env');
+const env = loadEnv([
+ path.resolve(__dirname, '.env'),
+ path.resolve(__dirname, '.env.local')
+]);
+
+module.exports = {
+ client: {
+ service: env.VUE_APP_APOLLO_ENGINE_SERVICE,
+ includes: ['src/**/*.{js,jsx,ts,tsx,vue,gql}']
+ },
+ service: {
+ name: env.VUE_APP_APOLLO_ENGINE_SERVICE,
+ localSchemaFile: path.resolve(
+ __dirname,
+ './node_modules/.temp/graphql/schema.json'
+ )
+ },
+ engine: {
+ endpoint: process.env.APOLLO_ENGINE_API_ENDPOINT,
+ apiKey: env.VUE_APP_APOLLO_ENGINE_KEY
+ }
+};
diff --git a/package.json b/package.json
index 9f2c66ece..a237aad3b 100644
--- a/package.json
+++ b/package.json
@@ -5,10 +5,10 @@
"scripts": {
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
- "ci-check": "yarn format:diff",
- "format:diff": "prettier --list-different \"src/**/*.{js,vue,scss}\"",
+ "test:unit": "vue-cli-service test:unit",
"lint": "vue-cli-service lint",
- "test:unit": "vue-cli-service test:unit"
+ "ci-check": "yarn format:diff",
+ "format:diff": "prettier --list-different \"src/**/*.{js,vue,scss}\""
},
"dependencies": {
"@carbon/icons-vue": "^10.30.0",
@@ -17,6 +17,7 @@
"core-js": "^3.11.0",
"mock-apollo-client": "^1.1.0",
"vue": "^2.6.12",
+ "vue-apollo": "^3.0.0-beta.11",
"vue-router": "^3.5.1"
},
"devDependencies": {
@@ -31,13 +32,12 @@
"eslint": "^7.25.0",
"eslint-plugin-prettier": "^3.4.0",
"eslint-plugin-vue": "^7.9.0",
+ "graphql-tag": "^2.9.0",
"sass": "^1.32.11",
"sass-loader": "^10.1.1",
+ "vue-cli-plugin-apollo": "~0.22.2",
"vue-template-compiler": "^2.6.12"
},
- "prettier": {
- "singleQuote": true
- },
"eslintConfig": {
"root": true,
"env": {
@@ -52,6 +52,9 @@
"parser": "babel-eslint"
}
},
+ "prettier": {
+ "singleQuote": true
+ },
"postcss": {
"plugins": {
"autoprefixer": {}
@@ -68,8 +71,10 @@
"json",
"vue"
],
- "setupFiles": ["./tests/setup.js"],
- "transform": {
+ "setupFiles": [
+ "./tests/setup.js"
+ ],
+ "transform": {
"^.+\\.vue$": "vue-jest",
".+\\.(css|styl|less|sass|scss|svg|png|jpg|ttf|woff|woff2)$": "jest-transform-stub",
"^.+\\.jsx?$": "babel-jest"
diff --git a/src/main.js b/src/main.js
index 99abe98a0..9f2275e83 100644
--- a/src/main.js
+++ b/src/main.js
@@ -3,11 +3,13 @@ import App from './App.vue';
import router from './router';
import CarbonComponentsVue from '@carbon/vue';
+import { createProvider } from './vue-apollo';
Vue.use(CarbonComponentsVue);
Vue.config.productionTip = false;
new Vue({
router,
+ apolloProvider: createProvider(),
render: h => h(App)
}).$mount('#app');
diff --git a/src/views/RepoPage/LinkList.vue b/src/views/RepoPage/LinkList.vue
new file mode 100644
index 000000000..545087792
--- /dev/null
+++ b/src/views/RepoPage/LinkList.vue
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
diff --git a/src/views/RepoPage/RepoPage.vue b/src/views/RepoPage/RepoPage.vue
index 60eed062b..c2b38fc21 100644
--- a/src/views/RepoPage/RepoPage.vue
+++ b/src/views/RepoPage/RepoPage.vue
@@ -4,9 +4,12 @@