forgejo/integrations
zeripath 00533d3870 Keys API changes (#4960)
* Add private information to the deploy keys api

This commit adds more information to the deploy keys to allow for back
reference in to the main keys list. It also adds information about the
repository that the key is referring to.

Signed-off-by: Andrew Thornton <art27@cantab.net>

* Add private information to the user keys API

This adjusts the keys API to give out private information to user keys if
the current user is the owner or an admin.

Signed-off-by: Andrew Thornton <art27@cantab.net>

* Add ability to search keys by fingerprint

This commit adds the functionality to search ssh-keys by fingerprint of
the ssh-key. Deploy keys per repository can also be searched. There is
no current clear API point to allow search of all deploy keys by
fingerprint or keyID.

Signed-off-by: Andrew Thornton <art27@cantab.net>

* Add integration test
2018-10-31 23:40:49 -04:00
..
gitea-repositories-meta Fix redirect with non-ascii branch names (#4764) (#4810) 2018-09-06 21:37:02 -04:00
api_admin_test.go feat(repo): support search repository by topic name (#4505) 2018-09-13 10:33:48 +08:00
api_branch_test.go Enforce token on api routes [fixed critical security issue #4357] (#4840) 2018-09-10 12:15:52 -04:00
api_comment_test.go Enforce token on api routes [fixed critical security issue #4357] (#4840) 2018-09-10 12:15:52 -04:00
api_fork_test.go
api_gpg_keys_test.go Enforce token on api routes [fixed critical security issue #4357] (#4840) 2018-09-10 12:15:52 -04:00
api_issue_label_test.go Enforce token on api routes [fixed critical security issue #4357] (#4840) 2018-09-10 12:15:52 -04:00
api_issue_test.go feat(repo): support search repository by topic name (#4505) 2018-09-13 10:33:48 +08:00
api_keys_test.go Keys API changes (#4960) 2018-10-31 23:40:49 -04:00
api_pull_test.go Enforce token on api routes [fixed critical security issue #4357] (#4840) 2018-09-10 12:15:52 -04:00
api_releases_test.go Enforce token on api routes [fixed critical security issue #4357] (#4840) 2018-09-10 12:15:52 -04:00
api_repo_lfs_locks_test.go Fix SSH auth lfs locks (#3152) 2018-01-27 18:48:15 +02:00
api_repo_raw_test.go Enforce token on api routes [fixed critical security issue #4357] (#4840) 2018-09-10 12:15:52 -04:00
api_repo_test.go feat(repo): support search repository by topic name (#4505) 2018-09-13 10:33:48 +08:00
api_team_test.go Enforce token on api routes [fixed critical security issue #4357] (#4840) 2018-09-10 12:15:52 -04:00
api_token_test.go Add ability to delete a token (#4235) 2018-07-06 21:54:30 -04:00
api_user_heatmap_test.go User action heatmap (#5131) 2018-10-23 10:57:42 +08:00
auth_ldap_test.go Fix issue where ecdsa and other key types are not synced from LDAP (#5092) (#5094) 2018-10-30 20:08:30 -04:00
bare_repo_test.go Fix bare-repo bugs (#2199) 2017-07-27 12:23:38 +03:00
benchmarks_test.go Add more bench (#3161) 2017-12-24 02:33:34 +02:00
branches_test.go Use httptest in integration tests (#3080) 2017-12-04 00:46:01 +02:00
change_default_branch_test.go
delete_user_test.go Refactor User Settings (#3900) 2018-05-15 13:07:32 +03:00
editor_test.go Improve English grammar and consistency. (#3614) 2018-04-19 17:24:31 +03:00
explore_repos_test.go fix template error on explore repos (#2319) 2017-08-17 15:20:21 +03:00
git_test.go Enforce token on api routes [fixed critical security issue #4357] (#4840) 2018-09-10 12:15:52 -04:00
html_helper.go Use httptest in integration tests (#3080) 2017-12-04 00:46:01 +02:00
integration_test.go Enforce token on api routes [fixed critical security issue #4357] (#4840) 2018-09-10 12:15:52 -04:00
internal_test.go Use httptest in integration tests (#3080) 2017-12-04 00:46:01 +02:00
issue_test.go Unit tests for routers/repo/issue_label (#3198) 2017-12-15 23:11:02 +02:00
links_test.go Refactor User Settings (#3900) 2018-05-15 13:07:32 +03:00
mysql.ini.tmpl Add integrations tests from git cli (#3377) 2018-01-16 13:07:47 +02:00
nonascii_branches_test.go Fix redirect with non-ascii branch names (#4764) (#4810) 2018-09-06 21:37:02 -04:00
pgsql.ini.tmpl Add integrations tests from git cli (#3377) 2018-01-16 13:07:47 +02:00
pull_compare_test.go Responsive view (#2750) 2017-12-30 18:47:52 -06:00
pull_create_test.go Fix escaping changed title in comments (#3530) 2018-02-18 22:06:37 +02:00
pull_merge_test.go Disable merging a WIP Pull request (#4529) 2018-08-13 22:04:39 +03:00
README.md CN translation of README (#5050) 2018-10-15 12:13:21 +08:00
README_ZH.md CN translation of README (#5050) 2018-10-15 12:13:21 +08:00
release_test.go Unit tests for routers/repo/issue_label (#3198) 2017-12-15 23:11:02 +02:00
repo_activity_test.go Fix escaping changed title in comments (#3530) 2018-02-18 22:06:37 +02:00
repo_branch_test.go Add more bench (#3161) 2017-12-24 02:33:34 +02:00
repo_commits_test.go Enforce token on api routes [fixed critical security issue #4357] (#4840) 2018-09-10 12:15:52 -04:00
repo_fork_test.go Use httptest in integration tests (#3080) 2017-12-04 00:46:01 +02:00
repo_migrate_test.go Add more bench (#3161) 2017-12-24 02:33:34 +02:00
repo_search_test.go Code/repo search (#2582) 2017-10-27 09:10:54 +03:00
repo_test.go Symlink icons (#1416) (#3826) 2018-05-01 10:04:36 +03:00
setting_test.go fix not respecting landing page setting (#4209) 2018-06-15 11:42:46 +08:00
signin_test.go Add integration tests for signin (#2363) 2017-08-23 10:30:33 +03:00
signout_test.go Add integration test for logging out (#2892) 2017-11-11 23:29:07 -06:00
signup_test.go
sqlite.ini Add integrations tests from git cli (#3377) 2018-01-16 13:07:47 +02:00
timetracking_test.go Unit tests for routers/repo/issue_label (#3198) 2017-12-15 23:11:02 +02:00
user_test.go Added user language setting (#3875) 2018-05-05 08:28:30 +08:00
version_test.go Update hard-coded version to 1.3.0-dev (#2390) 2017-10-12 14:40:42 +03:00
xss_test.go Added user language setting (#3875) 2018-05-05 08:28:30 +08:00

Integrations tests

Integration tests can be run with make commands for the appropriate backends, namely:

make test-mysql
make test-pgsql
make test-sqlite

Make sure to perform a clean build before running tests:

make clean build

Run all tests via local drone

drone exec --local --build-event "pull_request"

Run sqlite integrations tests

Start tests

make test-sqlite

Run mysql integrations tests

Setup a mysql database inside docker

docker run -e "MYSQL_DATABASE=test" -e "MYSQL_ALLOW_EMPTY_PASSWORD=yes" --rm --name mysql mysql:5.7 #(just ctrl-c to stop db and clean the container) 

Start tests based on the database container

TEST_MYSQL_HOST="$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' mysql):3306" TEST_MYSQL_DBNAME=test TEST_MYSQL_USERNAME=root TEST_MYSQL_PASSWORD='' make test-mysql

Run pgsql integrations tests

Setup a pgsql database inside docker

docker run -e "POSTGRES_DB=test" --rm --name pgsql postgres:9.5 #(just ctrl-c to stop db and clean the container) 

Start tests based on the database container

TEST_PGSQL_HOST=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' pgsql) TEST_PGSQL_DBNAME=test TEST_PGSQL_USERNAME=postgres TEST_PGSQL_PASSWORD=postgres make test-pgsql

Running individual tests

Example command to run GPG test with sqlite backend:

go test -c code.gitea.io/gitea/integrations \
  -o integrations.sqlite.test -tags 'sqlite' &&
  GITEA_ROOT="$GOPATH/src/code.gitea.io/gitea" \
  GITEA_CONF=integrations/sqlite.ini ./integrations.sqlite.test \
  -test.v -test.run GPG