Commit Graph

164 Commits

Author SHA1 Message Date
Johannes Batzill
0de0d2fcef updating permission check to april milestone 2023-04-19 09:24:38 -07:00
Enver Bisevac
fffb37bfa2 Merge branch 'eb/rbac' of _OKE5H2PQKOUfzFFDuD4FA/default/CODE/gitness (#25) 2023-04-19 15:29:46 +00:00
Johannes Batzill
89bb0f6b99 update gitRPC getBlob api to stream blob content, add 'raw' api. 2023-04-18 11:39:59 -07:00
Enver Bisevac
b092c1b8df added go-rbac dependency 2023-04-18 03:10:30 +02:00
Marko Gaćeša
13e4ffe522 Add code comments 2023-04-13 14:12:01 +02:00
atefeh
309a1a612a fix gitrpc error handling in controller 2023-04-03 11:35:51 -07:00
Atefeh Mohseni-Ejiyeh
5f211bdea5 Merge branch 'atmsn/delete-repo' of _OKE5H2PQKOUfzFFDuD4FA/default/CODE/gitness (#11) 2023-03-31 22:26:16 +00:00
atefeh
5a23824882 Code-161 Add Git Repo Deletion API (GitRPC) and handle creation failure 2023-03-31 15:19:45 -07:00
Enver Bisevac
5c266ad78f fix for merge-check response 2023-03-30 20:51:25 +02:00
Enver Bisevac
75ec201c2b Merge branch 'eb/gitrpc_error_handling' of _OKE5H2PQKOUfzFFDuD4FA/default/CODE/gitness (#8) 2023-03-21 10:19:21 +00:00
Marko Gaćeša
c7c36e49e1 Add git blame API (#346) 2023-03-09 12:55:23 +01:00
Enver Bisevac
56d8f304a6 gitrpc error handling - initial work 2023-03-06 16:36:19 +01:00
Johannes Batzill
b44948bd97 [MISC] Expose Content Encoding as Enum across APIs (#359) 2023-02-27 18:50:52 -08:00
Johannes Batzill
9d894c79cc [MERGE] Enhance PR Merge (Check) Fields. (#342) 2023-02-14 20:18:10 -08:00
Enver Bisevac
82b8679d6f [fix] diff-stats api returns total commits and files changed in compare branches (#323) 2023-02-13 00:47:23 +01:00
Enver Bisevac
13a456e357 [scm-58] Add merge-check and Integrate with PR (#318)
Co-authored-by: Johannes Batzill <johannes.batzill@harness.io>
2023-02-11 23:22:12 -08:00
Johannes Batzill
b0c8c91c08 [MISC] Hide email from public principals API. (#314) 2023-02-06 11:33:41 -08:00
Johannes Batzill
89aa9cd70a [GIT] Set Harness/Gitness as Committer for API Created Commits (#310) 2023-02-03 20:22:24 -08:00
Johannes Batzill
bf9906c4ce [API] Add principals API, move users to admin, simplify user/service/serviceaccount validation (#300) 2023-02-03 00:15:11 -08:00
Enver Bisevac
2b4f06d465 [fix] pr create now returns 409 on duplicate (#296) 2023-02-03 01:13:21 +01:00
Enver Bisevac
f7099d5923 [fix] Pull Req creation for existing PR (#292) 2023-02-02 18:13:34 +01:00
Marko Gaćeša
9dfad8b5e1 Added column comment_count to the PR entity (#280) 2023-02-02 11:31:22 +01:00
Johannes Batzill
c5d92b498b [API] Add GetCommit API (#291) 2023-02-01 18:50:54 -08:00
Johannes Batzill
fe83493623 [API] Add GetBranch API (#290) 2023-02-01 18:13:27 -08:00
Enver Bisevac
43bd045e47 [fix] PR diff files api returns empty body (#285) 2023-02-02 00:05:46 +01:00
Johannes Batzill
83c24913d3 [Webhook] Add pullreq_created and pullreq_reopened webhook triggers (#283) 2023-02-01 13:52:36 -08:00
Enver Bisevac
e2b350e704 [maint] pr statistic is in pr response now (#269) 2023-01-31 15:21:05 +01:00
Marko Gaćeša
ce322ec596 Writing pull req activities in controllers (#263) 2023-01-31 12:34:18 +01:00
Enver Bisevac
baa3822acc [SCM-55] initial work on PR metadata (#262) 2023-01-31 02:08:23 +01:00
Marko Gaćeša
4277c4c66b Simplify handling of PR events (#253) 2023-01-27 16:27:03 -08:00
Johannes Batzill
7da9bce7c1 [Githook] Add GitHook binary (#259)
This PR adds a githook sub-package to our cmd packages, introducing the githook binary.
The binary is linked as pre-receie/update/post-receive by gitrpc if configured.
This is required to have a gitrpc deployment without requiring the one-in-all gitness binary on the same machine.
2023-01-27 13:04:58 -08:00
Johannes Batzill
bfb0466b11 [MISC] Move configurations to their respective packages (#256) 2023-01-26 17:30:26 -08:00
Enver Bisevac
1f86b3c73d [fix] merge commit is blocked with dbtx mutex lock (#245) 2023-01-26 13:41:45 +01:00
Marko Gaćeša
825336d0e4 Added missing context in some of the log calls (#250) 2023-01-25 14:06:48 +01:00
Marko Gaćeša
7a92d8e110 PR events and PR head ref (#244) 2023-01-25 11:19:58 +01:00
Marko Gaćeša
09902b02a3 Extended create PR API with IsDraft field (#242) 2023-01-23 19:49:01 +01:00
Johannes Batzill
085e63422b [MISC] Explicitly type PullReqActivity.Payload (#233) 2023-01-20 12:29:13 -08:00
Marko Gaćeša
d6ce1bc762 Added gitrpc.UpdateRef (#236) 2023-01-20 17:06:35 +01:00
Enver Bisevac
6a7cc4e518 [scm-63] fix for empty commits and diff in PR (#228) 2023-01-20 02:27:51 +01:00
Johannes Batzill
43c497f59c [MISC] Move webhooks to 'services' package (#232) 2023-01-18 19:08:03 -08:00
Johannes Batzill
95a77e072e [MISC] Fix badrequest error in merge API (#231) 2023-01-18 18:17:18 -08:00
Johannes Batzill
335998505e [MISC] Introduce PathStore and Move PathLogic to Controller Layer (#226)
This change is a follow up on the effort to remove transactions and sync stores from the database layer, and move them in the application layer. It is addressing the repo + space store.
The following changes are included:
- Introduce PathStore storing resource paths (repo + space)
- Add foreign key from path.repo_id/space_id to repo.id/space.id
- Add foreign key from repo/space.parent_id to space.id
- Remove repo_sync and space_sync
- Move path creation logic to repo/space controller (for both creating primary paths for new repos/spaces, as well as creating alias spaces)
- Reimplement repo/space moving on controller layer
2023-01-18 11:34:12 -08:00
Marko Gaćeša
ec4003e331 Handling branch events for PRs (#221) 2023-01-18 13:26:20 +01:00
Marko Gaćeša
8151b4591e PR change state API; Removed rejected state (#220) 2023-01-17 16:04:30 +01:00
Enver Bisevac
aafec0a9dc fix merge-base in diff (#206) 2023-01-17 12:36:57 +01:00
Marko Gaćeša
6705c7234d feat: [SCM-60]: return number of duplicate PR, unique partial index for PR branch uniqueness (#214) 2023-01-17 11:42:33 +01:00
Marko Gaćeša
3e92132d83 execute the list PRs API in a readonly tx (#215) 2023-01-17 11:42:08 +01:00
Marko Gaćeša
e5dc9754cd default list of PR states should be empty (#210) 2023-01-13 18:47:42 -08:00
Marko Gaćeša
bacda596fa Added Correct method for enum types (#194) 2023-01-13 13:59:53 +01:00
Johannes Batzill
c827fa5e66 [MISC] Webhook Creation Default To Secure, Fix PR/Compare Commit Listing, Fix Merge Commit Message (#203)
This change is fixing a few things on both UI and backend side:
- update webhook creation screen to default to enable ssl verification (secure by default should always be the move)
- fix pr/compare commit listing to show correct diffs the head branch is ahead of the base branch (NOTE: THIS ONLY SHOWS THE LATEST 20 COMMITS - NO PAGINATION ADDED)
- fix merge commit message to contain the correct head branch, source repo path and pr numbers (similar'ish to github)
2023-01-13 02:49:39 -08:00
Johannes Batzill
65c59d0b5b [MISC] Fix review bugs, regenerate swagger from latest service, fix webhook.has_secret in swagger (#198)
This change contains the following changes:
- allow submitting reviews without comment for approve
- fix openapi for /reviews api and fix UI calls for submitting reviews
- fix recently broken openapi for webhook (it removed has_secret field as part of openapi refactor)
- fix fatal submit review bug (we passed repo.UID not repo.GitUID to gitrpc - not sure how that ever worked?)
- add missing merge pr activity to list of all pr activity enum values
- return all PR states by default
- show Open PRs by default (instead of all) and fix state filtering query
- regenerate code services based on latest swagger
- fix UI code to work with regenerated code service
2023-01-12 22:39:38 -08:00
Hitesh Aringa
fe00db23f9 [SCM-35]: default branch delete protection (#183)
* [SCM-35]: default branch delete protection
2023-01-12 09:59:09 -08:00
Marko Gaćeša
8909037ec7 enum types should have Enum() method (#192) 2023-01-12 17:13:03 +01:00
Johannes Batzill
5b55f48772 [Tags] Adding EVENT and WEBHOOK Support For Tags (#185)
Adding tagcreated, tagupdated, and tagdeleted events.
Adding tag_created, tag_updated, and tag_deleted webhooks
2023-01-11 20:56:00 -08:00
Johannes Batzill
a74d779dc4 [Webhook] Add display_name/description/latest_execution_result to webhook (#180)
This PR adds the following fields to webhooks:
- 'DisplayName' - the display name of the webhook for easier recognition in UI (no uniqueness guarantees)
- 'Description' - an (optional) description of the webhook
 - 'LatestExecutionResult' - contains the result of the latest execution of the webhook
2023-01-11 17:11:10 -08:00
Enver Bisevac
2c62dda460 [maint] added ReadTree method to git adapter (#174)
* added ReadTree method in git adapter

* minor fix and rebase to main
2023-01-11 00:32:51 +01:00
Johannes Batzill
a426cdd69b [GIT] Add Support for Other Git Clients (#171) 2023-01-10 14:35:09 -08:00
Enver Bisevac
63de576d08 [feat] initial work on merging PR (#170)
* initial work on merging PR

* code refactored based on requested changes

* requested changes
2023-01-10 02:09:43 +01:00
Johannes Batzill
1a84e19ce4 [MISC] Add internal API URL to url.Provider (#168) 2023-01-06 14:17:41 -08:00
Johannes Batzill
5cb824debd [feat]: Add Git Server Hook Support (#159)
This change is adding git server hook components:
- githook CLI implementation
- githook api handlers
- githook controler
2023-01-06 12:15:11 -08:00
Marko Gaćeša
65b49a933a pull request reviewers (#167) 2023-01-06 20:29:20 +01:00
Johannes Batzill
2006f769c9 [Webhook] Add url.Provider, Add principal to branch webhooks (#163) 2023-01-06 01:57:26 -08:00
Johannes Batzill
06721dcf20 [Techdebt] merge user/service/serviceaccount stores into single principal store (#160)
This change merges the `UserStore`, `ServiceStore`, and `ServiceAccountStore` into a single `PrincipalStore`.
2023-01-05 15:58:18 -08:00
Johannes Batzill
6c567b38d0 [MISC] Move GitRPC to Read/WriteRequest, Update Create/Delete Branch to use Push, Setup githook Symlink, Accept Incoming X-Request-Id (#157) 2023-01-05 11:03:35 -08:00
Johannes Batzill
d61e876de0 [FIX] Add repo_pullreq_seq to pullreq read APIs (#158) 2023-01-05 01:06:55 -08:00
Johannes Batzill
7ada1af3aa [API] Add after Support to Commit Listing (#155) 2023-01-04 16:59:43 -08:00
Johannes Batzill
1f1118f624 [Webhook] Add Event Processing and Retrigger (#148)
This change includes:
- webhook event processor (includes actual webhook execution)
- webhook retrigger API allowing to retrigger previous webhook executions
2023-01-04 14:43:36 -08:00
Marko Gaćeša
9f7d6cc857 Added payload to create/update PR comment API (#152) 2023-01-04 12:26:25 +01:00
Marko Gaćeša
98ac3d130d techdebt: [SCM-43]: Using opt lock to generate PR number (#151) 2023-01-04 12:24:17 +01:00
Marko Gaćeša
a79e187a88 DB & API refactor: Use snake case (#144)
Update DB and API to follow Harness Standard
2022-12-29 13:53:08 -08:00
Johannes Batzill
44ec7ceb07 [Webhook] Add API and DB Basics (#142)
This change introduces:
- webhook type / store / controller / handler
- webhookExecution type / store / controller / handler
- foreign key fix for sqlite3
2022-12-28 13:07:48 -08:00
Marko Gaćeša
f14731455d Add parent_id column to the pullreq_activities DB table (#143) 2022-12-28 18:51:34 +01:00
Marko Gaćeša
da53331ca1 PR comment: edit and delete APIs (#138) 2022-12-27 14:55:53 +01:00
Marko Gaćeša
b5bdeb8538 create comment API (#137) 2022-12-27 11:46:49 +01:00
Marko Gaćeša
7fc77396a9 Pull request timeline feature: DB and the list API (#136) 2022-12-26 12:17:38 +01:00
Marko Gaćeša
8f5e579001 rename DB table pullreq to pullreqs; added version (#130) 2022-12-22 20:21:15 +01:00
Enver Bisevac
22b0595476 initial work on raw diff (#129) 2022-12-22 14:30:31 +01:00
Marko Gaćeša
204548169d pullreq: update API (#122) 2022-12-13 16:13:27 +01:00
Marko Gaćeša
fe9118e074 PullReq list API: Added pagination headers (#121) 2022-12-09 17:02:45 +01:00
Marko Gaćeša
6bde210adf added branch params to PR list API (#119) 2022-12-09 15:45:02 +01:00
Marko Gaćeša
15163f3daa pullreq: dedicated struct for pulling data from DB (#116) 2022-12-08 12:52:31 +01:00
Marko Gaćeša
efcb047f46 pullreq refactor: fix linter issues (#115) 2022-12-07 14:22:44 +01:00
Marko Gaćeša
9e86875217 Returning author and merger info for PRs (#114) 2022-12-07 14:03:17 +01:00
Marko Gaćeša
8bdb31a4e2 checking branch existence in PR create (#105)
* checking branch existence in PR create
* added new methods to gitrpc: existence check for branch and tag
2022-12-06 12:26:12 +01:00
Enver Bisevac
c64874143d allow line endings from input 2022-11-30 23:30:41 +01:00
Enver Bisevac
7a54ef9d65 fix with file content on commit, fix linter, removed unused provider 2022-11-30 22:36:01 +01:00
Marko Gaćeša
1f4ac7e4b4 pullreq: list API (#99) 2022-11-30 13:56:29 +01:00
Marko Gaćeša
49cd521593 comment fix (#98) 2022-11-29 17:00:28 +01:00
Marko Gaćeša
1eba93695b feat: pull requests (#89)
* feat: pull requests, data layer

* pull requests: api layer

* add pull request number

* added auth check
2022-11-29 13:51:59 +01:00
Enver Bisevac
630c9b553f ordering imports linter and writer (#85) 2022-11-22 23:42:39 +01:00
Enver Bisevac
ad619c7e3c [feat]ability to commit files using REST api (#82)
* initial work on commit files

* minor improvements, grpc server interceptors and more

* compare file old sha and current sha

* added some validation steps

* config immutable, introduce temp repos dir

* handler added to standalone

* fix CI linter, fix minor bug on update

* wire generator files
2022-11-22 19:24:40 +01:00
Johannes Batzill
60f0ea969d [API] Add API For Commit Divergence Calulation (#77)
This commit contains the following changes:
- Add `commits/calculate_divergence` API to calculate commit divergence of reference pairs
- Rename `serviceAccounts` to `service_accounts` to follow REST best practices
2022-11-16 16:53:31 -08:00
Enver Bisevac
07a630c40b repoStore findref fixed 2022-11-14 13:08:28 +01:00
Enver Bisevac
93fc430776 [bug] git clone/pull/push auth using Basic Authorization fixed (#66)
* git clone/pull/push auth using Basic Authorization fixed

* use api key as git login

* middleware renamed to RequiredInGitPath

* remove requiredingitpath middleware

* requested changes

* requested changes

* minor code cleanup
2022-11-11 07:59:32 +01:00
Johannes Batzill
c55c53deab [API] Add Create + Delete Branch API (+ Basic GIT Error Propagation) (#70)
This change adds the following:
- create / delete branch
- basic error propagation from git to user (notfound, conflict, invalidinput)
- create repo root folder in server instead of service constructor
2022-11-10 20:57:31 -08:00
Johannes Batzill
ff2f949e78 add GITURL to repo apis list and create (#64)
- rename repo.url to repo.GitURL to avoid ambiguity
- add support to create / list api
- add default value (http://localhost:3000)
- remove handler backfilling host / port to simplify flow (can be added if needed)
2022-11-08 19:35:49 -08:00
Enver Bisevac
98436fb644 clone url implemented (#63)
Clone URL (http) used for clone/pull/push git operations
2022-11-08 18:32:01 -08:00
Johannes Batzill
3ba0f75c8d Introduce UIDs for Space / Repo / Tokens, Add Custom Harness Validation, ... (#57)
This change adds the following:
- Space UID + Custom harness validation (accountId for top level space, harness identifier for child spaces)
- Repo UID + Custom harness validation (harness identifier)
- Store Unique casing of space / repo path and add Path.ValueUnique (with Unique index) to allow for application layer controlling the case sensitivity (case insensitive standalone vs partially case sensitive harness)
- Token UID (unique index over ownertype + ownerID + tokenUID)
- Add DisplayName for principals (replaces Name to avoid confustion)
- Store Unique casing of principal UID and add Principal.ValueUnique (with unique index) to allow for application layer, per principal type control of case sensitivity (required in embedded mode)
- Generate serviceAccount UID (+Email) Randomly (sa-{space|repo}-{ID}-{random}) - Allows to have a unique UID across all principals while reducing likelyhood of overlaps with users + avoid overlap across spaces / repos.
- Sync casing of space names (accountId orgId projectId) when creating spaces on the fly (to ensure case sensitivity of - harness code) or use the existing space to update casing.
- Update serviceaccount client to match updated NG Manager API
- in embedded mode create spaces for harness resources owning the service account
2022-11-06 23:14:47 -08:00
Enver Bisevac
578dd13d8d [maint] eb/gitrpc refactor (#51)
* pull/push impl done

* Basic auth for harness

* gitrpc as top level package

* New ctor for package

* gitrpcserver instead of server2
2022-11-03 13:17:03 +01:00
Johannes Batzill
2d4db78991 Add Tag Listing API (#49)
This change is adding the List Tags API. To do so, a few changes were necessary:
- Refactor List Branches on giteaAdapter / repo_service
- Expose WalkReferences via giteaAdapter
2022-10-28 13:10:26 -07:00