Skip to content

Commit

Permalink
Merge pull request #892 from traPtitech/feat/commit-messages
Browse files Browse the repository at this point in the history
Feat/commit messages
  • Loading branch information
motoki317 authored Apr 17, 2024
2 parents 90de442 + 40ebcdf commit 9c4c8c7
Show file tree
Hide file tree
Showing 49 changed files with 3,693 additions and 1,344 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/ci-protoc.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,11 @@ jobs:
go-version-file: ./go.mod
- uses: arduino/setup-protoc@v3
with:
version: "25.1"
version: "25.3"
- name: Install proto tools
run: make init-protoc-tools
- name: Generate code
run: make protoc
run: make gen-proto
env:
GO_REPO_ROOT_PACKAGE: github.com/traPtitech/neoshowcase
- name: Check diff
Expand Down
19 changes: 19 additions & 0 deletions api/proto/neoshowcase/protobuf/gateway.proto
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,13 @@ message Repository {
repeated string owner_ids = 6;
}

message SimpleCommit {
string hash = 1;
string author_name = 2;
google.protobuf.Timestamp commit_date = 3;
string message = 4;
}

// -- Application

enum DeployType {
Expand Down Expand Up @@ -347,6 +354,14 @@ message RepositoryIdRequest {
string repository_id = 1;
}

message GetRepositoryCommitsRequest {
repeated string hashes = 1;
}

message GetRepositoryCommitsResponse {
repeated SimpleCommit commits = 1;
}

message CreateWebsiteRequest {
string fqdn = 1;
string path_prefix = 2;
Expand Down Expand Up @@ -506,6 +521,10 @@ service APIService {
rpc GetRepositories(GetRepositoriesRequest) returns (GetRepositoriesResponse) {
option idempotency_level = NO_SIDE_EFFECTS;
};
// GetRepositoryCommits コミットのメタ情報を取得します
rpc GetRepositoryCommits(GetRepositoryCommitsRequest) returns (GetRepositoryCommitsResponse) {
option idempotency_level = NO_SIDE_EFFECTS;
}
// GetRepository リポジトリを取得します
rpc GetRepository(RepositoryIdRequest) returns (Repository) {
option idempotency_level = NO_SIDE_EFFECTS;
Expand Down
9 changes: 9 additions & 0 deletions cmd/controller/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import (
"github.com/traPtitech/neoshowcase/pkg/infrastructure/webhook"
"github.com/traPtitech/neoshowcase/pkg/usecase/cdservice"
"github.com/traPtitech/neoshowcase/pkg/usecase/cleaner"
commitfetcher "github.com/traPtitech/neoshowcase/pkg/usecase/commit-fetcher"
"github.com/traPtitech/neoshowcase/pkg/usecase/repofetcher"
"github.com/traPtitech/neoshowcase/pkg/usecase/sshserver"
)
Expand All @@ -28,6 +29,7 @@ type Server struct {
SSHServer sshserver.SSHServer
Webhook *webhook.Receiver
CDService cdservice.Service
CommitFetcher commitfetcher.Service
FetcherService repofetcher.Service
CleanerService cleaner.Service
}
Expand All @@ -48,6 +50,10 @@ func (s *Server) Start(ctx context.Context) error {
s.CDService.Run()
return nil
})
eg.Go(func() error {
s.CommitFetcher.Run()
return nil
})
eg.Go(func() error {
s.FetcherService.Run()
return nil
Expand Down Expand Up @@ -80,6 +86,9 @@ func (s *Server) Shutdown(ctx context.Context) error {
eg.Go(func() error {
return s.CDService.Stop(ctx)
})
eg.Go(func() error {
return s.CommitFetcher.Stop(ctx)
})
eg.Go(func() error {
return s.FetcherService.Stop(ctx)
})
Expand Down
3 changes: 3 additions & 0 deletions cmd/providers.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ import (
ubuilder "github.com/traPtitech/neoshowcase/pkg/usecase/builder"
"github.com/traPtitech/neoshowcase/pkg/usecase/cdservice"
"github.com/traPtitech/neoshowcase/pkg/usecase/cleaner"
commitfetcher "github.com/traPtitech/neoshowcase/pkg/usecase/commit-fetcher"
giteaintegration "github.com/traPtitech/neoshowcase/pkg/usecase/gitea-integration"
"github.com/traPtitech/neoshowcase/pkg/usecase/healthcheck"
"github.com/traPtitech/neoshowcase/pkg/usecase/logstream"
Expand All @@ -55,6 +56,7 @@ var providers = wire.NewSet(
cdservice.NewService,
certmanagerv1.NewForConfig,
cleaner.NewService,
commitfetcher.NewService,
dbmanager.NewMariaDBManager,
dbmanager.NewMongoDBManager,
dockerimpl.NewClientFromEnv,
Expand Down Expand Up @@ -85,6 +87,7 @@ var providers = wire.NewSet(
repository.NewBuildRepository,
repository.NewEnvironmentRepository,
repository.NewGitRepositoryRepository,
repository.NewRepositoryCommitRepository,
repository.NewUserRepository,
rest.InClusterConfig,
traefikv1alpha1.NewForConfig,
Expand Down
20 changes: 17 additions & 3 deletions cmd/wire_gen.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions dashboard/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,9 @@
"@solidjs/meta": "0.29.3",
"@solidjs/router": "0.13.1",
"@tanstack/solid-virtual": "3.2.0",
"@types/async-lock": "1.4.2",
"ansi-to-html": "0.7.2",
"async-lock": "1.4.1",
"chart.js": "4.4.2",
"fuse.js": "7.0.0",
"solid-chartjs": "1.3.9",
Expand Down
14 changes: 13 additions & 1 deletion dashboard/src/api/neoshowcase/protobuf/gateway_connect.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
// @ts-nocheck

import { Empty, MethodIdempotency, MethodKind } from "@bufbuild/protobuf";
import { Application, ApplicationEnvVars, ApplicationIdRequest, ApplicationMetrics, ApplicationOutput, ApplicationOutputs, ArtifactContent, ArtifactIdRequest, AvailableMetrics, Build, BuildIdRequest, BuildLog, CreateApplicationRequest, CreateRepositoryRequest, CreateUserKeyRequest, DeleteApplicationEnvVarRequest, DeleteUserKeyRequest, GenerateKeyPairResponse, GetAllBuildsRequest, GetApplicationMetricsRequest, GetApplicationsRequest, GetApplicationsResponse, GetBuildsResponse, GetOutputRequest, GetOutputStreamRequest, GetRepositoriesRequest, GetRepositoriesResponse, GetRepositoryRefsResponse, GetUserKeysResponse, GetUsersResponse, Repository, RepositoryIdRequest, RetryCommitBuildRequest, SetApplicationEnvVarRequest, SystemInfo, UpdateApplicationRequest, UpdateRepositoryRequest, User, UserKey } from "./gateway_pb.js";
import { Application, ApplicationEnvVars, ApplicationIdRequest, ApplicationMetrics, ApplicationOutput, ApplicationOutputs, ArtifactContent, ArtifactIdRequest, AvailableMetrics, Build, BuildIdRequest, BuildLog, CreateApplicationRequest, CreateRepositoryRequest, CreateUserKeyRequest, DeleteApplicationEnvVarRequest, DeleteUserKeyRequest, GenerateKeyPairResponse, GetAllBuildsRequest, GetApplicationMetricsRequest, GetApplicationsRequest, GetApplicationsResponse, GetBuildsResponse, GetOutputRequest, GetOutputStreamRequest, GetRepositoriesRequest, GetRepositoriesResponse, GetRepositoryCommitsRequest, GetRepositoryCommitsResponse, GetRepositoryRefsResponse, GetUserKeysResponse, GetUsersResponse, Repository, RepositoryIdRequest, RetryCommitBuildRequest, SetApplicationEnvVarRequest, SystemInfo, UpdateApplicationRequest, UpdateRepositoryRequest, User, UserKey } from "./gateway_pb.js";

/**
* General / System
Expand Down Expand Up @@ -118,6 +118,18 @@ export const APIService = {
kind: MethodKind.Unary,
idempotency: MethodIdempotency.NoSideEffects,
},
/**
* GetRepositoryCommits コミットのメタ情報を取得します
*
* @generated from rpc neoshowcase.protobuf.APIService.GetRepositoryCommits
*/
getRepositoryCommits: {
name: "GetRepositoryCommits",
I: GetRepositoryCommitsRequest,
O: GetRepositoryCommitsResponse,
kind: MethodKind.Unary,
idempotency: MethodIdempotency.NoSideEffects,
},
/**
* GetRepository リポジトリを取得します
*
Expand Down
129 changes: 129 additions & 0 deletions dashboard/src/api/neoshowcase/protobuf/gateway_pb.ts
Original file line number Diff line number Diff line change
Expand Up @@ -546,6 +546,61 @@ proto3.util.setEnumType(Repository_AuthMethod, "neoshowcase.protobuf.Repository.
{ no: 2, name: "SSH" },
]);

/**
* @generated from message neoshowcase.protobuf.SimpleCommit
*/
export class SimpleCommit extends Message<SimpleCommit> {
/**
* @generated from field: string hash = 1;
*/
hash = "";

/**
* @generated from field: string author_name = 2;
*/
authorName = "";

/**
* @generated from field: google.protobuf.Timestamp commit_date = 3;
*/
commitDate?: Timestamp;

/**
* @generated from field: string message = 4;
*/
message = "";

constructor(data?: PartialMessage<SimpleCommit>) {
super();
proto3.util.initPartial(data, this);
}

static readonly runtime: typeof proto3 = proto3;
static readonly typeName = "neoshowcase.protobuf.SimpleCommit";
static readonly fields: FieldList = proto3.util.newFieldList(() => [
{ no: 1, name: "hash", kind: "scalar", T: 9 /* ScalarType.STRING */ },
{ no: 2, name: "author_name", kind: "scalar", T: 9 /* ScalarType.STRING */ },
{ no: 3, name: "commit_date", kind: "message", T: Timestamp },
{ no: 4, name: "message", kind: "scalar", T: 9 /* ScalarType.STRING */ },
]);

static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): SimpleCommit {
return new SimpleCommit().fromBinary(bytes, options);
}

static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): SimpleCommit {
return new SimpleCommit().fromJson(jsonValue, options);
}

static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): SimpleCommit {
return new SimpleCommit().fromJsonString(jsonString, options);
}

static equals(a: SimpleCommit | PlainMessage<SimpleCommit> | undefined, b: SimpleCommit | PlainMessage<SimpleCommit> | undefined): boolean {
return proto3.util.equals(SimpleCommit, a, b);
}
}

/**
* @generated from message neoshowcase.protobuf.RuntimeConfig
*/
Expand Down Expand Up @@ -2468,6 +2523,80 @@ export class RepositoryIdRequest extends Message<RepositoryIdRequest> {
}
}

/**
* @generated from message neoshowcase.protobuf.GetRepositoryCommitsRequest
*/
export class GetRepositoryCommitsRequest extends Message<GetRepositoryCommitsRequest> {
/**
* @generated from field: repeated string hashes = 1;
*/
hashes: string[] = [];

constructor(data?: PartialMessage<GetRepositoryCommitsRequest>) {
super();
proto3.util.initPartial(data, this);
}

static readonly runtime: typeof proto3 = proto3;
static readonly typeName = "neoshowcase.protobuf.GetRepositoryCommitsRequest";
static readonly fields: FieldList = proto3.util.newFieldList(() => [
{ no: 1, name: "hashes", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true },
]);

static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetRepositoryCommitsRequest {
return new GetRepositoryCommitsRequest().fromBinary(bytes, options);
}

static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetRepositoryCommitsRequest {
return new GetRepositoryCommitsRequest().fromJson(jsonValue, options);
}

static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetRepositoryCommitsRequest {
return new GetRepositoryCommitsRequest().fromJsonString(jsonString, options);
}

static equals(a: GetRepositoryCommitsRequest | PlainMessage<GetRepositoryCommitsRequest> | undefined, b: GetRepositoryCommitsRequest | PlainMessage<GetRepositoryCommitsRequest> | undefined): boolean {
return proto3.util.equals(GetRepositoryCommitsRequest, a, b);
}
}

/**
* @generated from message neoshowcase.protobuf.GetRepositoryCommitsResponse
*/
export class GetRepositoryCommitsResponse extends Message<GetRepositoryCommitsResponse> {
/**
* @generated from field: repeated neoshowcase.protobuf.SimpleCommit commits = 1;
*/
commits: SimpleCommit[] = [];

constructor(data?: PartialMessage<GetRepositoryCommitsResponse>) {
super();
proto3.util.initPartial(data, this);
}

static readonly runtime: typeof proto3 = proto3;
static readonly typeName = "neoshowcase.protobuf.GetRepositoryCommitsResponse";
static readonly fields: FieldList = proto3.util.newFieldList(() => [
{ no: 1, name: "commits", kind: "message", T: SimpleCommit, repeated: true },
]);

static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetRepositoryCommitsResponse {
return new GetRepositoryCommitsResponse().fromBinary(bytes, options);
}

static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetRepositoryCommitsResponse {
return new GetRepositoryCommitsResponse().fromJson(jsonValue, options);
}

static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetRepositoryCommitsResponse {
return new GetRepositoryCommitsResponse().fromJsonString(jsonString, options);
}

static equals(a: GetRepositoryCommitsResponse | PlainMessage<GetRepositoryCommitsResponse> | undefined, b: GetRepositoryCommitsResponse | PlainMessage<GetRepositoryCommitsResponse> | undefined): boolean {
return proto3.util.equals(GetRepositoryCommitsResponse, a, b);
}
}

/**
* @generated from message neoshowcase.protobuf.CreateWebsiteRequest
*/
Expand Down
1 change: 1 addition & 0 deletions dashboard/src/components/UI/Badge.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ const Badge = styled('div', {
height: '1.43em', // 20px
padding: '0 8px',
borderRadius: '9999px',
whiteSpace: 'nowrap',

...textVars.caption.regular,
},
Expand Down
1 change: 1 addition & 0 deletions dashboard/src/components/UI/ToolTip.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ export const ToolTip: FlowComponent<TooltipProps> = (props) => {
tippy(child, () => ({
...tippyProps,
props: {
...tippyProps.props,
content: (
<TooltipContainer align={addedProps.style}>{propsWithDefaults.props?.content}</TooltipContainer>
) as Element,
Expand Down
Loading

0 comments on commit 9c4c8c7

Please sign in to comment.