@aviaratech/ai-delivery 0.3.2 → 0.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -109,8 +109,13 @@ For App roles, set environment variables for the App ID, installation ID and abs
109
109
  private-key path. Secret values and keys stay outside Git. The author App needs
110
110
  Contents, Issues, organization Projects and Pull requests write permissions plus
111
111
  read access to repository issue types and fields. Discovery uses that author
112
- identity; review operations still use the distinct reviewer App (Contents read,
113
- Pull requests write). Existing App author configurations remain valid.
112
+ identity; review operations still use the distinct reviewer App (Contents read
113
+ and Pull requests write suffice to submit a review). For that App's approval to
114
+ satisfy a required-review rule, configure Contents write as well. Contents write
115
+ also grants the App real code-write capability; grant it only when that review
116
+ route is intended. Accept the App's new permissions on its installation and
117
+ obtain fresh installation credentials before relying on the changed grant.
118
+ Existing App author configurations remain valid.
114
119
 
115
120
  To use the host user's GitHub identity for publication, replace only the author
116
121
  role in `deliverySettings`:
@@ -133,11 +138,11 @@ artifacts and policy evidence.
133
138
 
134
139
  | Route | Package behavior | Native required approval |
135
140
  | --- | --- | --- |
136
- | Configured personal author + reviewer App | One App submits the exact-head independent review. | Confirm that GitHub counts it; an eligible independent human may still need to approve. |
137
- | Author App + reviewer App | Existing separate App roles keep their credential and review bindings. | Confirm that GitHub counts the reviewer App approval. |
141
+ | Configured personal author + reviewer App | One App submits the exact-head independent review. | With Contents write accepted on the App installation, confirm that GitHub counts it; an eligible independent human may still need to approve if another rule blocks it. |
142
+ | Author App + reviewer App | Existing separate App roles keep their credential and review bindings. | With Contents write accepted on the reviewer App installation, confirm that GitHub counts its approval. |
138
143
  | Author App + eligible human reviewer | A valid GitHub route for a repository that requires human approval; the current package still needs its configured reviewer App for the formal artifact receipt. | The human reviews and approves in GitHub. |
139
144
 
140
- GitHub requires qualifying approvals under [branch protection](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-protected-branches/about-protected-branches) and [rulesets](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/available-rules-for-rulesets). An App's installation scopes, repository read access, and submitted `APPROVED` review do not prove that its approval satisfies those rules. The live PR `reviewDecision` is the required-review readback; it does not attribute a counted approval to one actor.
145
+ GitHub requires qualifying approvals under [branch protection](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-protected-branches/about-protected-branches) and [rulesets](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/available-rules-for-rulesets). Pull requests write permits submitting a review; it does not grant repository write access for a required approval. When a required-approval rule is visible and the reviewer App's effective Contents grant is read-only, `pr:create --dry-run` reports `approvalEligibility: insufficient-permission` before publication. Unknown grants or rules remain `unknown`. The post-review readback reports `submittedReviewAuthorCanPushToRepository` when GitHub exposes it for the exact submitted review. Neither an App's scopes nor a submitted `APPROVED` review proves that it counted. The live PR `reviewDecision` is the required-review readback; it does not attribute a counted approval to one actor. Recheck it on the current head before merge.
141
146
 
142
147
  The local Git commit author is metadata. The selected author token authenticates
143
148
  the push and PR creation; `issue_pr_info.authorLogin` confirms the actual PR
@@ -4,6 +4,7 @@ import type { DeliveryConfig, DeliveryRole } from '../config/deliveryConfig.js';
4
4
  export interface GitHubClients {
5
5
  authSource: 'app' | 'personal';
6
6
  credentialSource?: string;
7
+ effectiveContentsPermission?: DeliveryPermission | 'admin';
7
8
  role: DeliveryRole;
8
9
  appActorLogin?: () => Promise<string>;
9
10
  authenticatedAuthor?: () => Promise<{
@@ -123,7 +123,7 @@ export async function createDeliveryGitHubClients(input) {
123
123
  }
124
124
  }
125
125
  : undefined;
126
- return buildClients(result.token, 'app', input.role, `app:${credentials.appId}:installation:${credentials.installationId}`, appActorLogin, authenticatedAuthor);
126
+ return buildClients(result.token, 'app', input.role, `app:${credentials.appId}:installation:${credentials.installationId}`, appActorLogin, authenticatedAuthor, result.permissions.contents);
127
127
  }
128
128
  catch (error) {
129
129
  if (error instanceof DeliveryError)
@@ -150,10 +150,11 @@ function personalClients(token, credentialSource) {
150
150
  }
151
151
  });
152
152
  }
153
- function buildClients(token, authSource, role, credentialSource, appActorLogin, authenticatedAuthor) {
153
+ function buildClients(token, authSource, role, credentialSource, appActorLogin, authenticatedAuthor, effectiveContentsPermission) {
154
154
  const clients = {
155
155
  authSource,
156
156
  credentialSource,
157
+ ...(effectiveContentsPermission ? { effectiveContentsPermission } : {}),
157
158
  role,
158
159
  ...(appActorLogin ? { appActorLogin } : {}),
159
160
  ...(authenticatedAuthor ? { authenticatedAuthor } : {}),
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/github/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/github/client.ts"],"names":[],"mappings":"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"}
@@ -76,13 +76,33 @@ vi.mock('./github/client.js', async (importOriginal) => {
76
76
  },
77
77
  },
78
78
  },
79
- graphql: async (query, variables) => query.includes('DeliveryReviewDecision')
80
- ? {
81
- repository: {
82
- pullRequest: { headRefOid: personalRoute.headSha, reviewDecision: 'REVIEW_REQUIRED' },
83
- },
79
+ graphql: async (query, variables) => {
80
+ if (query.includes('DeliveryReviewDecision')) {
81
+ return {
82
+ repository: {
83
+ pullRequest: { headRefOid: personalRoute.headSha, reviewDecision: 'REVIEW_REQUIRED' },
84
+ },
85
+ };
86
+ }
87
+ if (query.includes('DeliveryReviewAccess')) {
88
+ return {
89
+ repository: {
90
+ pullRequest: {
91
+ reviews: {
92
+ nodes: personalRoute.reviews.map((review) => ({
93
+ fullDatabaseId: String(review.id),
94
+ author: { login: review.user.login.replace(/\[bot\]$/u, '') },
95
+ authorCanPushToRepository: false,
96
+ commit: { oid: review.commit_id },
97
+ state: review.state,
98
+ })),
99
+ },
100
+ },
101
+ },
102
+ };
84
103
  }
85
- : syntheticDiscoveryClients().graphql(query, variables),
104
+ return syntheticDiscoveryClients().graphql(query, variables);
105
+ },
86
106
  };
87
107
  }
88
108
  assert.equal(input.identity, 'host-author');
@@ -1791,6 +1811,7 @@ exec "${realGit}" "$@"
1791
1811
  const reviewInput = { issueNumber: 17, prNumber: 23, identity: 'synthetic-reviewer', artifact };
1792
1812
  const first = (await executeTool('issue_pr_review', reviewInput, execution));
1793
1813
  assert.equal(first.reviewState.status, 'still-required');
1814
+ assert.equal(first.reviewState.submittedReviewAuthorCanPushToRepository, false);
1794
1815
  assert.equal(personalRoute.submitted, 1);
1795
1816
  const second = (await executeTool('issue_pr_review', reviewInput, execution));
1796
1817
  assert.equal(second.receiptId, first.receiptId);