Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/release-version-tag-app-scope.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@shopify/app': patch
---

Fix `app release --version` finding a version with the same tag from a different app
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import {JsonMapType} from '@shopify/cli-kit/node/toml'
import {TypedDocumentNode as DocumentNode} from '@graphql-typed-document-node/core'

export type DevSessionCreateMutationVariables = Types.Exact<{
appId: Types.Scalars['String']['input']
clientId: Types.Scalars['String']['input']
assetsUrl: Types.Scalars['String']['input']
websocketUrl?: Types.InputMaybe<Types.Scalars['String']['input']>
unsafeValidation?: Types.InputMaybe<Types.Scalars['Boolean']['input']>
Expand Down Expand Up @@ -34,7 +34,7 @@ export const DevSessionCreate = {
variableDefinitions: [
{
kind: 'VariableDefinition',
variable: {kind: 'Variable', name: {kind: 'Name', value: 'appId'}},
variable: {kind: 'Variable', name: {kind: 'Name', value: 'clientId'}},
type: {kind: 'NonNullType', type: {kind: 'NamedType', name: {kind: 'Name', value: 'String'}}},
},
{
Expand Down Expand Up @@ -62,8 +62,8 @@ export const DevSessionCreate = {
arguments: [
{
kind: 'Argument',
name: {kind: 'Name', value: 'appId'},
value: {kind: 'Variable', name: {kind: 'Name', value: 'appId'}},
name: {kind: 'Name', value: 'clientId'},
value: {kind: 'Variable', name: {kind: 'Name', value: 'clientId'}},
},
{
kind: 'Argument',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import * as Types from './types.js'
import {TypedDocumentNode as DocumentNode} from '@graphql-typed-document-node/core'

export type DevSessionDeleteMutationVariables = Types.Exact<{
appId: Types.Scalars['String']['input']
clientId: Types.Scalars['String']['input']
}>

export type DevSessionDeleteMutation = {devSessionDelete?: {userErrors: {message: string}[]} | null}
Expand All @@ -19,7 +19,7 @@ export const DevSessionDelete = {
variableDefinitions: [
{
kind: 'VariableDefinition',
variable: {kind: 'Variable', name: {kind: 'Name', value: 'appId'}},
variable: {kind: 'Variable', name: {kind: 'Name', value: 'clientId'}},
type: {kind: 'NonNullType', type: {kind: 'NamedType', name: {kind: 'Name', value: 'String'}}},
},
],
Expand All @@ -32,8 +32,8 @@ export const DevSessionDelete = {
arguments: [
{
kind: 'Argument',
name: {kind: 'Name', value: 'appId'},
value: {kind: 'Variable', name: {kind: 'Name', value: 'appId'}},
name: {kind: 'Name', value: 'clientId'},
value: {kind: 'Variable', name: {kind: 'Name', value: 'clientId'}},
},
],
selectionSet: {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import {JsonMapType} from '@shopify/cli-kit/node/toml'
import {TypedDocumentNode as DocumentNode} from '@graphql-typed-document-node/core'

export type DevSessionUpdateMutationVariables = Types.Exact<{
appId: Types.Scalars['String']['input']
clientId: Types.Scalars['String']['input']
assetsUrl?: Types.InputMaybe<Types.Scalars['String']['input']>
manifest?: Types.InputMaybe<Types.Scalars['JSON']['input']>
inheritedModuleUids: Types.Scalars['String']['input'][] | Types.Scalars['String']['input']
Expand Down Expand Up @@ -35,7 +35,7 @@ export const DevSessionUpdate = {
variableDefinitions: [
{
kind: 'VariableDefinition',
variable: {kind: 'Variable', name: {kind: 'Name', value: 'appId'}},
variable: {kind: 'Variable', name: {kind: 'Name', value: 'clientId'}},
type: {kind: 'NonNullType', type: {kind: 'NamedType', name: {kind: 'Name', value: 'String'}}},
},
{
Expand Down Expand Up @@ -74,8 +74,8 @@ export const DevSessionUpdate = {
arguments: [
{
kind: 'Argument',
name: {kind: 'Name', value: 'appId'},
value: {kind: 'Variable', name: {kind: 'Name', value: 'appId'}},
name: {kind: 'Name', value: 'clientId'},
value: {kind: 'Variable', name: {kind: 'Name', value: 'clientId'}},
},
{
kind: 'Argument',
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
mutation DevSessionCreate($appId: String!, $assetsUrl: String!, $websocketUrl: String, $unsafeValidation: Boolean) {
devSessionCreate(appId: $appId, assetsUrl: $assetsUrl, websocketUrl: $websocketUrl, isUnsafe: $unsafeValidation) {
mutation DevSessionCreate($clientId: String!, $assetsUrl: String!, $websocketUrl: String, $unsafeValidation: Boolean) {
devSessionCreate(clientId: $clientId, assetsUrl: $assetsUrl, websocketUrl: $websocketUrl, isUnsafe: $unsafeValidation) {
devSession {
websocketUrl
updatedAt
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
mutation DevSessionDelete($appId: String!) {
devSessionDelete(appId: $appId) {
mutation DevSessionDelete($clientId: String!) {
devSessionDelete(clientId: $clientId) {
userErrors {
message
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
mutation DevSessionUpdate(
$appId: String!
$clientId: String!
$assetsUrl: String
$manifest: JSON
$inheritedModuleUids: [String!]!
$unsafeValidation: Boolean
) {
devSessionUpdate(
appId: $appId
clientId: $clientId
assetsUrl: $assetsUrl
manifest: $manifest
inheritedModuleUids: $inheritedModuleUids
Expand Down
Original file line number Diff line number Diff line change
@@ -1,42 +1,8 @@
/* eslint-disable @typescript-eslint/consistent-type-definitions */
import * as Types from './types.js'
import {JsonMapType} from '@shopify/cli-kit/node/toml'

import {TypedDocumentNode as DocumentNode} from '@graphql-typed-document-node/core'

export type ActiveAppReleaseQueryVariables = Types.Exact<{
appId: Types.Scalars['ID']['input']
}>

export type ActiveAppReleaseQuery = {
app: {
id: string
key: string
organizationId: string
activeRoot: {grantedShopifyApprovalScopes: string[]; clientCredentials: {secrets: {key: string}[]}}
activeRelease: {
id: string
version: {
name: string
appModules: {
uuid: string
userIdentifier: string
handle: string
config: JsonMapType
target?: string | null
specification: {
identifier: string
externalIdentifier: string
name: string
experience: string
managementExperience: string
}
}[]
}
}
}
}

export type AppVersionInfoFragment = {
id: string
key: string
Expand Down Expand Up @@ -215,140 +181,3 @@ export const AppVersionInfoFragmentDoc = {
},
],
} as unknown as DocumentNode<AppVersionInfoFragment, unknown>
export const ActiveAppRelease = {
kind: 'Document',
definitions: [
{
kind: 'OperationDefinition',
operation: 'query',
name: {kind: 'Name', value: 'activeAppRelease'},
variableDefinitions: [
{
kind: 'VariableDefinition',
variable: {kind: 'Variable', name: {kind: 'Name', value: 'appId'}},
type: {kind: 'NonNullType', type: {kind: 'NamedType', name: {kind: 'Name', value: 'ID'}}},
},
],
selectionSet: {
kind: 'SelectionSet',
selections: [
{
kind: 'Field',
name: {kind: 'Name', value: 'app'},
arguments: [
{
kind: 'Argument',
name: {kind: 'Name', value: 'id'},
value: {kind: 'Variable', name: {kind: 'Name', value: 'appId'}},
},
],
selectionSet: {
kind: 'SelectionSet',
selections: [
{kind: 'FragmentSpread', name: {kind: 'Name', value: 'AppVersionInfo'}},
{kind: 'Field', name: {kind: 'Name', value: '__typename'}},
],
},
},
],
},
},
{
kind: 'FragmentDefinition',
name: {kind: 'Name', value: 'ReleasedAppModule'},
typeCondition: {kind: 'NamedType', name: {kind: 'Name', value: 'AppModule'}},
selectionSet: {
kind: 'SelectionSet',
selections: [
{kind: 'Field', name: {kind: 'Name', value: 'uuid'}},
{kind: 'Field', name: {kind: 'Name', value: 'userIdentifier'}},
{kind: 'Field', name: {kind: 'Name', value: 'handle'}},
{kind: 'Field', name: {kind: 'Name', value: 'config'}},
{kind: 'Field', name: {kind: 'Name', value: 'target'}},
{
kind: 'Field',
name: {kind: 'Name', value: 'specification'},
selectionSet: {
kind: 'SelectionSet',
selections: [
{kind: 'Field', name: {kind: 'Name', value: 'identifier'}},
{kind: 'Field', name: {kind: 'Name', value: 'externalIdentifier'}},
{kind: 'Field', name: {kind: 'Name', value: 'name'}},
{kind: 'Field', name: {kind: 'Name', value: 'experience'}},
{kind: 'Field', name: {kind: 'Name', value: 'managementExperience'}},
],
},
},
],
},
},
{
kind: 'FragmentDefinition',
name: {kind: 'Name', value: 'AppVersionInfo'},
typeCondition: {kind: 'NamedType', name: {kind: 'Name', value: 'App'}},
selectionSet: {
kind: 'SelectionSet',
selections: [
{kind: 'Field', name: {kind: 'Name', value: 'id'}},
{kind: 'Field', name: {kind: 'Name', value: 'key'}},
{kind: 'Field', name: {kind: 'Name', value: 'organizationId'}},
{
kind: 'Field',
name: {kind: 'Name', value: 'activeRoot'},
selectionSet: {
kind: 'SelectionSet',
selections: [
{
kind: 'Field',
name: {kind: 'Name', value: 'clientCredentials'},
selectionSet: {
kind: 'SelectionSet',
selections: [
{
kind: 'Field',
name: {kind: 'Name', value: 'secrets'},
selectionSet: {
kind: 'SelectionSet',
selections: [{kind: 'Field', name: {kind: 'Name', value: 'key'}}],
},
},
],
},
},
{kind: 'Field', name: {kind: 'Name', value: 'grantedShopifyApprovalScopes'}},
],
},
},
{
kind: 'Field',
name: {kind: 'Name', value: 'activeRelease'},
selectionSet: {
kind: 'SelectionSet',
selections: [
{kind: 'Field', name: {kind: 'Name', value: 'id'}},
{
kind: 'Field',
name: {kind: 'Name', value: 'version'},
selectionSet: {
kind: 'SelectionSet',
selections: [
{kind: 'Field', name: {kind: 'Name', value: 'name'}},
{
kind: 'Field',
name: {kind: 'Name', value: 'appModules'},
selectionSet: {
kind: 'SelectionSet',
selections: [{kind: 'FragmentSpread', name: {kind: 'Name', value: 'ReleasedAppModule'}}],
},
},
],
},
},
],
},
},
],
},
},
],
} as unknown as DocumentNode<ActiveAppReleaseQuery, ActiveAppReleaseQueryVariables>
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import * as Types from './types.js'
import {TypedDocumentNode as DocumentNode} from '@graphql-typed-document-node/core'

export type AppInstallCountQueryVariables = Types.Exact<{
appId: Types.Scalars['ID']['input']
clientId: Types.Scalars['String']['input']
}>

export type AppInstallCountQuery = {app: {installCount?: number | null}}
Expand All @@ -19,21 +19,22 @@ export const AppInstallCount = {
variableDefinitions: [
{
kind: 'VariableDefinition',
variable: {kind: 'Variable', name: {kind: 'Name', value: 'appId'}},
type: {kind: 'NonNullType', type: {kind: 'NamedType', name: {kind: 'Name', value: 'ID'}}},
variable: {kind: 'Variable', name: {kind: 'Name', value: 'clientId'}},
type: {kind: 'NonNullType', type: {kind: 'NamedType', name: {kind: 'Name', value: 'String'}}},
},
],
selectionSet: {
kind: 'SelectionSet',
selections: [
{
kind: 'Field',
name: {kind: 'Name', value: 'app'},
alias: {kind: 'Name', value: 'app'},
name: {kind: 'Name', value: 'appByKey'},
arguments: [
{
kind: 'Argument',
name: {kind: 'Name', value: 'id'},
value: {kind: 'Variable', name: {kind: 'Name', value: 'appId'}},
name: {kind: 'Name', value: 'key'},
value: {kind: 'Variable', name: {kind: 'Name', value: 'clientId'}},
},
],
selectionSet: {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import {JsonMapType} from '@shopify/cli-kit/node/toml'
import {TypedDocumentNode as DocumentNode} from '@graphql-typed-document-node/core'

export type AppVersionByTagQueryVariables = Types.Exact<{
clientId: Types.Scalars['String']['input']
versionTag: Types.Scalars['String']['input']
}>

Expand Down Expand Up @@ -37,6 +38,11 @@ export const AppVersionByTag = {
operation: 'query',
name: {kind: 'Name', value: 'AppVersionByTag'},
variableDefinitions: [
{
kind: 'VariableDefinition',
variable: {kind: 'Variable', name: {kind: 'Name', value: 'clientId'}},
type: {kind: 'NonNullType', type: {kind: 'NamedType', name: {kind: 'Name', value: 'String'}}},
},
{
kind: 'VariableDefinition',
variable: {kind: 'Variable', name: {kind: 'Name', value: 'versionTag'}},
Expand All @@ -50,6 +56,11 @@ export const AppVersionByTag = {
kind: 'Field',
name: {kind: 'Name', value: 'versionByTag'},
arguments: [
{
kind: 'Argument',
name: {kind: 'Name', value: 'clientId'},
value: {kind: 'Variable', name: {kind: 'Name', value: 'clientId'}},
},
{
kind: 'Argument',
name: {kind: 'Name', value: 'tag'},
Expand Down
Loading
Loading